Dedicated Platform Package Manager
In development - the API is stabilizing, but expect breaking changes.
- choice among dozens of applications
- easy install, backup and modification of configurations
- support a wide range of systems (UN*Xes, x86, ARM) - distribution agnostic
- can use systemd or OpenRC for system services
- independent of your system's package manager - self-contained, statically linked binaries
- standalone installations bundled with all dependencies - DPPM can be safely removed
- compatible with classic system administration (like modifications "by hand" on the file system)
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
.
Download dppm
with the helper:
sh -c "APP=dppm-static $(wget -qO- https://raw.githubusercontent.com/DFabric/apps-static/master/helper.sh)"
The binary is bin/dppm
on the directory. Place it wherever you want (e.g. /usr/local/bin
)
wget -qO-
can be replaced by curl -s
Get the pre-compiled binary called dppm-static_*
, and extract it.
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
dppm app add [application]
# start the service and auto start the service at boot
dppm service start [application]
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:
dppm logs [application] -f
You will need a Crystal development environment
You can either install it or use a Docker image
Install dependencies and build dppm
:
shards build
Run it
./bin/dppm --help
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: crystal spec
Copyright (c) 2018-2019 Julien Reichardt - ISC License