dppm
Version, currently master branch1 version
- master branchlatestJul 9, 2020
github.com/DFabric/dppm
An easy way to install and manage applications as packages
Installation
# Add this to your shard.yml
dependencies:
dppm:
github: DFabric/dppm
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
- no constraint declared
- License
- ISC
- Author
- Julien Reichardt
- Target
dppmfrom src/dppm_cli.cr
Dependencies
Runtime Dependencies
- con*github: j8r/con
- exec*github: j8r/exec.cr
- tail*github: j8r/tail.cr
- clicr*github: j8r/clicr
- mysql*github: crystal-lang/crystal-mysql
- dynany*github: j8r/dynany
- libcrown*github: j8r/libcrown
- semantic_compare*github: j8r/semantic_compare
Development Dependencies
- ameba*github: crystal-ameba/amebadev
README
DPPM
Dedicated Platform Package Manager - an easy way to install and manage server applications.
Features
- 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)
Documentation
https://dfabric.github.io/dppm
Install
1. Get the dppm binary
There are 3 methods:
- Automatic
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.
- Manual
Get the pre-compiled binary called dppm-static_*, and extract it.
- Clone the repository and compile the project
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
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Jul 9, 2020
- Indexed
- yes
Dependents
Repository
github.com/DFabric/dppm
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 23, 2026
- Synced
- Sep 23, 2026
- Versions
- 1