Self-hosting overview
Railhook is MIT-licensed. A self-hosted instance has every feature and needs no licence key. Railhook Cloud runs the same product for you.
What you run
Section titled “What you run”| Service | Role |
|---|---|
ui |
nginx. Serves the dashboard and proxies the API, ingress and tunnel paths. The only service published to the host |
api |
Accepts events and incoming webhooks, and serves the REST API. Runs database migrations on startup |
worker |
Claims due work from Postgres and makes the attempts: signs, sends, retries |
postgres |
The system of record. The rows the API writes for each delivery are also the worker’s queue |
redis |
Rate limits, concurrency permits, circuit-breaker state |
caddy |
Optional. Terminates HTTPS when you install with a domain |
db-backup |
Optional. Takes a scheduled database dump |
Everything goes through one port: the dashboard, the API, the ingress URLs and the CLI tunnel. Postgres, Redis and the API itself are reachable only inside the Docker network, so you need one URL, one certificate and one firewall rule.
Ways to deploy
Section titled “Ways to deploy”| Method | When to use it |
|---|---|
| Installer | The default. One command on a Linux host with Docker. It generates secrets and leaves an ordinary Compose deployment |
| Docker Compose by hand | You manage the files with your own configuration tooling |
| Kubernetes with Helm | You already run Kubernetes and bring your own PostgreSQL and Redis |
| From a clone | You are developing Railhook itself |