What is HostRails?
HostRails is a self-hosted deployment control plane: a single Node.js service plus a Caddy proxy and a BuildKit builder, running on a server you own. It gives you push-to-deploy from GitHub, managed databases with a built-in explorer, automatic HTTPS domains, encrypted environment variables, instant rollbacks, and an audit trail — without a hosted platform's bill or lock-in.
Architecture at a glance
| Piece | What it does |
|---|---|
| Control plane | Node.js + SQLite service (systemd). Serves the dashboard and API, orchestrates builds and containers. |
| Caddy | Reverse proxy on ports 80/443. Routes domains to app containers, issues HTTPS certificates on demand. |
| BuildKit + Railpack | Builds your repositories into images — framework auto-detection, no Dockerfile required (respected if present). |
| Agents (optional) | A small Go binary on additional VPSes. Connects outbound over WebSocket with signed commands — no inbound ports. |
Quickstart
On a fresh Ubuntu/Debian server (using the installer served by an existing panel — copy your exact command from System → Install HostRails on another server):
curl -fsSL https://panel.hostrails.xyz/get.sh | sudo bash -s -- --key <your-key>
Installing your first panel ever? See Install on a VPS for the from-scratch paths.
- Open
http://<server-ip>:3000and create your admin account (first visit only — there are no default credentials). - In Settings, click the suggested
<ip>.sslip.iowildcard root domain — it resolves with zero DNS setup. - Connect GitHub (guided OAuth app creation or a personal access token).
- Create a project, pick a repository, and press Create & deploy.
Full details in Install on a VPS.
Where things live
The default install keeps everything under /opt/hostrails-panel. Runtime state —
the SQLite database, encryption keys, cloned repositories, backups, and logs — lives in the
data/ directory inside it. Back that directory up and you can rebuild the rest.