All Projects → DFabric → dppm

DFabric / dppm

Licence: ISC license
An easy way to install and manage server applications

Programming Languages

crystal
512 projects

Projects that are alternatives of or similar to dppm

gitpack
Git-based package manager written in POSIX shell
Stars: ✭ 72 (-32.71%)
Mutual labels:  package-manager, installer
Qdd
Download JavaScript Dependencies, really fast
Stars: ✭ 47 (-56.07%)
Mutual labels:  package-manager, installer
hermit
Hermit manages isolated, self-bootstrapping sets of tools in software projects.
Stars: ✭ 312 (+191.59%)
Mutual labels:  package-manager, installer
zap
⚡ Delightful AppImage package manager
Stars: ✭ 354 (+230.84%)
Mutual labels:  package-manager, installer
Mint
A package manager that installs and runs executable Swift packages
Stars: ✭ 1,750 (+1535.51%)
Mutual labels:  package-manager, installer
scoop-directory
A searchable directory of buckets for the scoop package manager for Windows
Stars: ✭ 721 (+573.83%)
Mutual labels:  package-manager, installer
Fdroidclient
Android client application.
Stars: ✭ 477 (+345.79%)
Mutual labels:  package-manager, installer
scoop-viewer
A gui client for scoop.
Stars: ✭ 76 (-28.97%)
Mutual labels:  package-manager, installer
Bpkg
Lightweight bash package manager
Stars: ✭ 1,601 (+1396.26%)
Mutual labels:  package-manager, installer
Biddle
Self-hosted application distribution
Stars: ✭ 66 (-38.32%)
Mutual labels:  package-manager, installer
Chocolater
Chocolater is simply a PowerShell code generator and it was conceived in order to facilitate the selection and installation of your favorite applications in one go.
Stars: ✭ 26 (-75.7%)
Mutual labels:  application, installer
squashmount
Init and management script for mounting rewritable squashfs-compressed data
Stars: ✭ 40 (-62.62%)
Mutual labels:  systemd, openrc
Dplatform Shell
Deploy self-hosted apps easily: simple, bloat-free, independent installation
Stars: ✭ 245 (+128.97%)
Mutual labels:  systemd, self-hosted
gruntwork-installer
A script to make it easy to install Gruntwork Modules
Stars: ✭ 72 (-32.71%)
Mutual labels:  package-manager, installer
Github
a module for building, searching, installing, managing, and mining Stata packages from GitHub
Stars: ✭ 56 (-47.66%)
Mutual labels:  package-manager, installer
Laravel Paket
Composer GUI. Manage Laravel dependencies from web interface without switching to command line!
Stars: ✭ 143 (+33.64%)
Mutual labels:  package-manager, installer
dex
docker executables - run applications without installing them or their dependencies
Stars: ✭ 31 (-71.03%)
Mutual labels:  package-manager, installer
uptime-kuma
A fancy self-hosted monitoring tool
Stars: ✭ 27,425 (+25530.84%)
Mutual labels:  self-hosted
aspen
Passerine's package manager.
Stars: ✭ 22 (-79.44%)
Mutual labels:  package-manager
bin
highly opinionated, minimal pastebin
Stars: ✭ 97 (-9.35%)
Mutual labels:  self-hosted

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].