DP logo

DPPM

Build Status Gitter ISC

Dedicated Platform Package Manager - an easy way to install and manage server applications.

Features

Documentation

https://dfabric.github.io/dppm

Install

1. Get the dppm binary

There are 3 methods:

Download dppm with the helper:

sh -c "APP=dppm-static $(wget -qO- https://raw.githubusercontent.com/DFabric/apps-static/master/helper.sh)"

(wget -qO- can be replaced by curl -s)

The binary is bin/dppm in the directory.

Get the pre-compiled binary called dppm-static_*, and extract it.

See the Development section

2. Run the installation command

sudo bin/dppm app install

You don't need to install it as root, but no system services nor dedicated users will be available. You will have to rely on sudo dppm app exec

Usage

To show the help:

dppm --help

To list available packages (applications, built and available packages):

dppm list

A typical installation can be:

# add a new application to the system
sudo dppm app add [application]

# start the service and auto start the service at boot
sudo dppm service start [application]
sudo dppm service boot [application] true

If not specified, an user, group and application name will be created.

Note that add will build the missing required packages.

Root execution is needed to add a system service (systemd or OpenRC)

To show the services status:

dppm service status

To follow last application logs:

sudo dppm logs [application] output

Uninstall

sudo dppm app uninstall

Supported environments

Supported architectures are x86-64 and arm64 (thanks to @jirutka).

32-bit architectures are partially supported, but discouraged since nowadays more and more applications are designed for 64-bit, particularly databases (TiDB, MongoDB...)

For Rapberry Pi 3, a 64-bit OS like Armbian is recommended, and needed to run DPPM, instead of a 32-bit Raspbian.

Still, an issue is open for armhf.

Development

You will need a Crystal development environment

You can either install it or use a Docker image

You may also find useful this variables config=./config.con and source=../packages-source

How to build

Install dependencies and build dppm:

shards build

Run it

bin/dppm --help

For more informations, see the official docs

Run tests

Integration tests are stateful and need to be runned all in a batch sequentially.

To run them: crystal spec spec/integration_spec.cr

Other tests are stateless and can be runned independently to each other

To run all tests: crystal spec

License

Copyright (c) 2018-2020 Julien Reichardt - ISC License