Dedicated Platform Package Manager - an easy way to install and manage server applications.
- Choice among dozens of applications
- Unified interface for easy install, backup and modification of configurations
- Support a wide range of systems (UN*Xes, x86, ARM) - distribution agnostic
- Can use systemd or OpenRC system services with dedicated users/groups
- Independent of the OS package manager - self-contained, statically linked binaries
- Standalone installations bundled with all dependencies - DPPM can be safely removed
- Compatible with manual system administration (like editions "by hand" on the file system)
There are 3 methods:
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
The binary is
bin/dppm in the directory.
Get the pre-compiled binary called
dppm-static_*, and extract it.
- Clone the repository and compile the project
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
To show the help:
To list available packages (applications, built and available packages):
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.
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
sudo dppm app uninstall
Supported architectures are
arm64 (thanks to @jirutka).
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
You will need a Crystal development environment
You may also find useful this variables
Install dependencies and build
For more informations, see the official docs
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:
Copyright (c) 2018-2020 Julien Reichardt - ISC License