Hello everybody,
I’m the author of https://github.com/DFabric/dppm, a light self-hosting solution, available on Linux PCs and Raspberry-like boards. Services like Nextcloud, Gitea, Transmission and WordPress can be installed in a single command.
Before going deeper in the project details, I’ll explain what features remains to be developed:
- exposing a web API, to perform system tasks like app install/remove, configurations
- a web frontend, using this API, to manage the applications
Anyone interested is welcomed to help me on this, even more if you have experience with web technologies and APIs!
Update: Job offer posted in https://crystaljobs.org/
Goals
I’ve worked more than 1.5 years, approaching 4 000 LoC for the project, plus another 4 000 LoC including the libraries developed for the purpose.
Even if I might be able, I can’t do everything on my own in a reasonable amount of time - that’s why I’m writing this post here
I think it’s will be better to focus on my strength (system, back end), and cooperating with other people doing well on the web side.
I don’t live off it, yet, but that’s a goal. In order to earn money, here is a draft plan:
- (done) having a working CLI product
- exposing an API
- developing a web frontend
- -> Finally providing an on-premise solutions with a free basic, and paid ones (more, better apps, cloud backups, etc)
What’s done
Essentially, the CLI:
- building/cleaning packages
- installing and deleting applications
- configuration of apps through unified CLI vars and CLI commands
- handling of system services (creation, auto start at boot)
- dedicated system users for each apps
- handling of a MySQL-compatible database (auto creation/deletion of DB user)
- reverse proxy integration with Let’s encrypt (Caddy)
TL;DR the project is here: https://github.com/DFabric/dppm - try yourself
dppm app add caddy name=caddy -y
dppm app add nextcloud web_server=caddy name=test -y
dppm service start test
dppm service start caddy
You should be done, and access Nextcloud via http://[::1]/test
You can also try with gitea
(you don’t need a reverse proxy, and access it at http://[::1]:3000
).
Background
This is a project which can become really huge with lots of features: lots of various apps, system metrics, web apis, database and DNS handling etc.
We can say there are already a bunch of self-hosting solution like YunoHost, Cloudron, Cozy, and others.
No one is satisfying, for several of reasons:
- only runs on Linux x86 because of Docker (Cloudron)
- only runs on Debian (YunoHost)
- unnecessary complex (Cozy, that also use CouchDB)
- depends on a heavy installation (Nodejs/Python runtime, Docker, DB)
- all/most of them are blackboxes that must remained installed/running to use our services
- all/most “reinvents the wheel” (e.g they don’t use filesystem info, system services, UNIX users/groups, host network etc)
So I built a project, dppm, which is a single binary that acts like an installer. Everything is entirely automated, and still compatible with good-old hand-made sysadmin!
Sorry for the annoyance of this long post, thank you!
Julien ‘@j8r’