Skip to content
Back to site

Requirements

The installer stops without Docker, Compose, 2 GiB of RAM or a free port, and warns when memory or disk is below the recommendation. On an existing installation, ./railhook doctor checks Docker, Compose and the configuration on disk.

Resource Requirement
Docker Docker Engine 20.10 or newer, with the daemon running and reachable by your user
Compose Compose v2, as docker compose or the standalone docker-compose
Memory About 4 GiB. Between 2 and 4 GiB the installer warns you to expect swapping; below 2 GiB it stops
Disk At least 5 GiB free for the images, plus room for the database. The installer warns below 5 GiB
Tools curl and openssl, which the installer uses to download files and generate secrets

The stack runs two JVMs, a database and a cache. The default memory limits per container, each set in .env, add up to about 3.1 GiB:

Service Limit Variable
api 768m API_MEMORY_LIMIT
worker 768m WORKER_MEMORY_LIMIT
postgres 1G POSTGRES_MEMORY_LIMIT
redis 512m REDIS_MEMORY_LIMIT
ui 128m UI_MEMORY_LIMIT
Port When
80 Without a domain. Change it with --port if something else already holds it
80 and 443 With --domain. Both must be free, because the TLS terminator takes them
8080 on 127.0.0.1 With --domain --behind-proxy. Your proxy keeps 80 and 443. Change it with --port

Nothing else is published to the host.

  • Inbound: the one port above, from wherever your users and your webhook providers are.
  • Outbound, to install and upgrade: raw.githubusercontent.com and api.github.com for the release files, and ghcr.io for the images.
  • Outbound, to deliver: HTTP and HTTPS to your endpoints and destinations, on whatever ports they use.

The Helm chart needs Kubernetes 1.24+ and Helm 3.8+, plus PostgreSQL 16+ and Redis 7+ that you supply. See Kubernetes.