dppm

Dedicated Platform Package Manager for server applications installer systemd openrc application package-manager self-hosted
HEAD Latest release released
DFabric/dppm
116 12
DFabric

DP logo

DPPM

Build Status Gitter ISC

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

dppm:
  github: DFabric/dppm
  
License ISC
Crystal none

Authors

Dependencies 8

Development Dependencies 1

  • ameba
    {'github' => 'crystal-ameba/ameba'}

Dependents 0

Last synced .
search fire star recently