A web platform for running self-hosted apps on a Raspberry Pi or Linux server. Deploy Docker Compose apps, publish them through Cloudflare tunnels, watch resource use, and manage containers, across one or more machines, from one place.
- Apps: deploy and edit Compose files, with version history and rollback, updates and scheduled start and stop
- Several machines: add secondary nodes and manage all of them from one UI
- Access: create Cloudflare tunnels, routes and DNS records from the UI
- Insights: CPU, memory, disk and per-container usage, with warnings
Single-user design only. It is meant for personal use, such as a home server. It is not suitable for multi-user or multi-tenant setups.
Put it behind Cloudflare Zero Trust (recommended) or turn on GitHub sign-in with an allow list. See the security overview for the model and its known limits.
Docker 20.10+ with Compose, on Linux or macOS (Windows via WSL2), amd64 or arm64 (Raspberry Pi 4 and 5 work), and at least 1 GB of RAM. A Cloudflare account is optional and only needed for tunnels.
selfhostlyctl is the command line for installing and operating it. Install it, then run the guided setup:
curl -fsSL https://raw.githubusercontent.com/samsonnegedu/selfhostly/main/scripts/install.sh | sh
selfhostlyctl setup # checks the machine, writes .env, starts everything
# later: selfhostlyctl self-updateOr by hand:
git clone https://github.com/samsonnegedu/selfhostly.git && cd selfhostly
cp env.example .env # then edit it
make prodOpen http://localhost:8080. Every selfhostlyctl command explains itself with --help.
Everything else lives in docs/:
- Deploy and run: install (new server, extra machines), operate (ship a new version, restart, roll back, back up), troubleshooting, command reference
- Several machines: multi-node, how secondary nodes connect
- Settings:
env.examplelists every environment variable - Develop: development guide.
make helplists the commands. - Design: architecture, UI
Go, Gin, SQLite (modernc.org/sqlite, pure Go), the Docker API, gopsutil, and go-pkgz/auth on the backend. React, TypeScript, TanStack Query, Tailwind, Radix UI and CodeMirror on the frontend.
Pull requests are welcome. Read AGENTS.md first: it points to the project's rules and conventions.
MIT, see LICENSE.