Self-hosting overview
Railhook is open source under the MIT licence. A self-hosted instance gets every feature, with no licence key and no locked modules. This section covers running it on your own infrastructure. If you would rather not run it yourself, 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 |
Makes the attempts: signs, sends, retries |
postgres |
The system of record |
kafka |
Carries work from the API to the worker. kafka-init creates the topics on first start |
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, Kafka, Redis and the API itself are reachable only inside the Docker network. That means one URL to hand out, 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, Kafka and Redis |
| From a clone | You are developing Railhook itself |
Next steps
Section titled “Next steps”RequirementsMemory, disk, ports and network access.
Install with DockerThe one-line installer and what it leaves behind.
Domain and HTTPSPut the instance on a domain with a certificate.