From fbd466b7f279b2226f638e9e3522985f0432cc44 Mon Sep 17 00:00:00 2001 From: ScreenTinker Date: Sun, 14 Jun 2026 20:32:30 -0500 Subject: [PATCH] fix(docker): copy docs/openapi.yaml into the image so /docs's spec resolves The /openapi.yaml route does res.sendFile(../docs/openapi.yaml) -> /app/docs/openapi.yaml in the container, but the Dockerfile copied server/, frontend/, VERSION, scripts/ and never docs/, so the spec 404'd in every deployed build (Redoc's /docs page loaded but couldn't fetch the spec). Served fine from a dev checkout only because the repo has docs/ on disk. Verified in a built image: /app/docs/openapi.yaml present, GET /openapi.yaml -> 200 text/yaml. Co-Authored-By: Claude Opus 4.8 (1M context) --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index af7558d..4d98af2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,6 +30,9 @@ COPY server/ /app/server/ COPY --from=builder /app/server/node_modules /app/server/node_modules COPY frontend/ /app/frontend/ COPY VERSION /app/VERSION +# the /openapi.yaml route serves ../docs/openapi.yaml (the spec Redoc on /docs fetches); +# without this it 404s in the image even though it serves fine from a dev checkout. +COPY docs/openapi.yaml /app/docs/openapi.yaml # database.js requires scripts/migrate-multitenancy at boot COPY scripts/ /app/scripts/ VOLUME ["/data"]