Skip to content

DFabric/dppm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DP logo

Gitter ISC

DPPM

Dedicated Platform Package Manager

In development - the API is stabilizing, but expect breaking changes.

Features

  • 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)

Install

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.

Automatic

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

Manual

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

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
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

Development

You will need a Crystal development environment

You can either install it or use a Docker image

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-2019 Julien Reichardt - ISC License