From d9596f2bc405a3e095f969339240e3d0ffd773be Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sat, 18 Apr 2026 15:27:35 -0400 Subject: [PATCH] feat(deploy): healthcheck on /health, compose uses GHCR image railway.toml: point Railway's healthcheck at /health. Fabro's server returns 200 for any unknown path (SPA fallback) so /healthz would have been a false-positive check that never catches failures. /health is the real endpoint exposed by fabro-server and documented in the OpenAPI spec. docker-compose.yaml: swap `build: Dockerfile` for `image: ghcr.io/fabro-sh/fabro:nightly`. A fresh clone's `docker compose up` previously failed because the Dockerfile expects pre-built binaries under `docker-context/` that only the release workflow populates. Pulling the published image gives new users a 5-second boot and mirrors the Railway deployment shape. Pin to linux/amd64 until the arm64 image variant is fixed. --- docker-compose.yaml | 6 ++---- railway.toml | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index cf4a2e22c..aa549d7bc 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,9 +1,7 @@ services: fabro: - image: fabro - build: - context: . - dockerfile: Dockerfile + image: ghcr.io/fabro-sh/fabro:nightly + platform: linux/amd64 ports: - "32276:32276" volumes: diff --git a/railway.toml b/railway.toml index a2fd17275..5e107cc2b 100644 --- a/railway.toml +++ b/railway.toml @@ -3,5 +3,6 @@ builder = "dockerfile" dockerfilePath = "Dockerfile.deploy" [deploy] +healthcheckPath = "/health" restartPolicyType = "on_failure" restartPolicyMaxRetries = 5