{"id":13489319,"url":"https://github.com/DFabric/dppm","last_synced_at":"2025-03-28T04:31:03.665Z","repository":{"id":152031938,"uuid":"113611827","full_name":"DFabric/dppm","owner":"DFabric","description":"An easy way to install and manage server applications","archived":false,"fork":false,"pushed_at":"2020-07-09T20:56:54.000Z","size":739,"stargazers_count":115,"open_issues_count":0,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-12T11:51:20.026Z","etag":null,"topics":["application","crystal","installer","openrc","package-manager","self-hosted","systemd"],"latest_commit_sha":null,"homepage":"https://dfabric.github.io/dppm","language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DFabric.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-08T19:52:29.000Z","updated_at":"2025-03-04T12:49:44.000Z","dependencies_parsed_at":"2023-09-14T00:19:07.282Z","dependency_job_id":null,"html_url":"https://github.com/DFabric/dppm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFabric%2Fdppm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFabric%2Fdppm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFabric%2Fdppm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFabric%2Fdppm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DFabric","download_url":"https://codeload.github.com/DFabric/dppm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245970425,"owners_count":20702414,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application","crystal","installer","openrc","package-manager","self-hosted","systemd"],"created_at":"2024-07-31T19:00:22.802Z","updated_at":"2025-03-28T04:31:03.265Z","avatar_url":"https://github.com/DFabric.png","language":"Crystal","funding_links":[],"categories":["Crystal","DevOps"],"sub_categories":[],"readme":"![DP logo](https://avatars.githubusercontent.com/u/19499073)\n\n# DPPM\n\n[![Build Status](https://cloud.drone.io/api/badges/DFabric/dppm/status.svg)](https://cloud.drone.io/DFabric/dppm)\n[![Gitter](https://img.shields.io/badge/chat-on_gitter-red.svg?style=flat-square)](https://gitter.im/DFabric/Lobby)\n[![ISC](https://img.shields.io/badge/License-ISC-blue.svg?style=flat-square)](https://en.wikipedia.org/wiki/ISC_license)\n\nDedicated Platform Package Manager - an easy way to install and manage server applications.\n\n## Features\n\n- Choice among [dozens of applications](https://github.com/DFabric/packages-source)\n- Unified interface for easy install, backup and modification of configurations\n- Support a wide range of systems (UN*Xes, x86, ARM) - distribution agnostic\n- Can use systemd or OpenRC system services with dedicated users/groups\n- Independent of the OS package manager - self-contained, statically linked binaries\n- Standalone installations bundled with all dependencies - DPPM can be safely removed\n- Compatible with manual system administration (like editions \"by hand\" on the file system)\n\n## Documentation\n\nhttps://dfabric.github.io/dppm\n\n## Install\n\n### 1. Get the `dppm` binary\n\nThere are 3 methods:\n\n- Automatic\n\nDownload `dppm` with the helper:\n\n`sh -c \"APP=dppm-static $(wget -qO- https://raw.githubusercontent.com/DFabric/apps-static/master/helper.sh)\"`\n\n(`wget -qO-` can be replaced by `curl -s`)\n\nThe binary is `bin/dppm` in the directory.\n\n- Manual\n\nGet [the pre-compiled binary](https://bintray.com/dfabric/apps-static/builds#files) called `dppm-static_*`, and extract it.\n\n- Clone the repository and compile the project\n\nSee the `Development` section\n\n### 2. Run the installation command\n\n`sudo bin/dppm app install`\n\nYou 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`\n\n## Usage\n\nTo show the help:\n\n`dppm --help`\n\nTo list [available packages](https://github.com/DFabric/package-sources) (applications, built and available packages):\n\n`dppm list`\n\nA typical installation can be:\n\n```sh\n# add a new application to the system\nsudo dppm app add [application]\n\n# start the service and auto start the service at boot\nsudo dppm service start [application]\nsudo dppm service boot [application] true\n```\n\nIf not specified, an user, group and application name will be created.\n\nNote that `add` will `build` the missing required packages.\n\nRoot execution is needed to add a system service (systemd or OpenRC)\n\nTo show the services status:\n\n`dppm service status`\n\nTo follow last application logs:\n\n`sudo dppm logs [application] output`\n\n## Uninstall\n\n`sudo dppm app uninstall`\n\n## Supported environments\n\nSupported architectures are `x86-64` and `arm64` (thanks to [@jirutka](https://github.com/jirutka)).\n\n32-bit architectures are partially supported, but discouraged since nowadays more and more applications are designed for 64-bit, particularly databases ([TiDB](https://github.com/pingcap/tidb/issues/5224), [MongoDB](https://www.mongodb.com/blog/post/32-bit-limitations)...)\n\nFor Rapberry Pi 3, a 64-bit OS like [Armbian](https://www.armbian.com/) is recommended, and needed to run DPPM, instead of a 32-bit Raspbian.\n\nStill, [an issue is open](https://github.com/crystal-lang/crystal/issues/5467) for `armhf`.\n\n## Development\n\nYou will need a [Crystal](https://crystal-lang.org) development environment\n\nYou can either [install it](https://crystal-lang.org/docs/installation) or use a [Docker image](https://hub.docker.com/r/jrei/crystal-alpine)\n\nYou may also find useful this variables `config=./config.con` and `source=../packages-source`\n\n### How to build\n\nInstall dependencies and build `dppm`:\n\n`shards build`\n\nRun it\n\n`bin/dppm --help`\n\nFor more informations, see the [official docs](https://crystal-lang.org/docs/using_the_compiler/)\n\n### Run tests\n\nIntegration tests are stateful and need to be runned all in a batch sequentially.\n\nTo run them: `crystal spec spec/integration_spec.cr`\n\nOther tests are stateless and can be runned independently to each other\n\nTo run all tests: `crystal spec`\n\n## License                                                                                                 \n\nCopyright (c) 2018-2020 Julien Reichardt - ISC License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDFabric%2Fdppm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDFabric%2Fdppm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDFabric%2Fdppm/lists"}