An easy, universal way to install and manage applications as packages (mostly Linux)
Switch branches/tags
Nothing to show
Clone or download
Latest commit a5bd86c Oct 17, 2018

README.md

DP logo

Gitter ISC

DPPM

The DPlatform's Package Manager

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 - DDPM can be safely removed

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

A typical installation can be:

# add a new application to the system
dppm m 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 follow last application logs:

dppm logs -f [application]

How to build

You will need a Crystal development environment

You can either install it or use a Docker image

Install dependencies:

shards install

Build a dppm executable:

crystal build src/dppm.cr

Run it

./dppm --help

For more informations, see the official docs

License

Copyright (c) 2018 Julien Reichardt - ISC License