deploy: replace stub docker-compose with working VPS stack#1
deploy: replace stub docker-compose with working VPS stack#1replicas-connector[bot] wants to merge 2 commits into
Conversation
The previous deploy/docker-compose.yml was a one-line stub pointing at file:///tmp/b2_freescout_compose.txt and could not be used to deploy anything. Replace it with a real production-shaped compose file plus an env template and a short README so Nomad can stand up FreeScout on a fresh VPS. - App container uses tiredofit/freescout (the widely used community image) - MariaDB 10.11 sidecar with healthcheck, named volumes for persistence - All secrets/URLs sourced from deploy/.env (template provided) - Bound to APP_PORT for an external reverse proxy to terminate TLS Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-Authored-By: itsablabla <itsablabla@users.noreply.github.com>
|
Capy auto-review is paused for this organization because the monthly auto-review limit has been reached. Increase the limit or turn it off in billing settings to resume automatic reviews. |
The previous compose used legacy `tiredofit/freescout` env vars (`SMTP_HOST`, `ENABLE_SMTP`, `DISPLAY_ERRORS`, `CONTAINER_ENABLE_MONITORING`, `SITE_URL`) and mounted `/www/html` for persistence. As of the May 2026 rebrand the canonical image is `nfrastack/freescout`, mail config moved to the `FREESCOUT_MAIL_*` prefix, and persistent state lives at `/data` (sessions, cache, modules, generated config). Without `/data` mounted the container loses state across restarts; without the new mail vars SMTP silently does not get written into FreeScout's `.env`. - switch image to `nfrastack/freescout` - mount `/data` (state) and `/logs` (logs); drop the source-tree mount - use `APP_URL` (canonical) instead of `SITE_URL` (legacy alias) - set `DB_TYPE=mariadb` so the entrypoint writes the right driver - move SMTP to `FREESCOUT_MAIL_*` and expose `SMTP_ENCRYPTION` - swap the curl-based healthcheck for a bash TCP probe (curl is not guaranteed to be present in the alpine base) and lift `start_period` so the first-boot schema migration has room to finish Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-Authored-By: itsablabla <itsablabla@users.noreply.github.com>
|
Pushed Why the original stack didn't work The
Also:
The unrelated Continuous AI: New Dev Agent check on this PR failed on the previous commit with no diagnostics surfaced through the GitHub API — it doesn't appear to gate anything. |
Summary
deploy/docker-compose.ymlondistwas a one-line stub:file:///tmp/b2_freescout_compose.txt. It cannot deploy anything.deploy/.env.example(passwords,APP_URL, SMTP) anddeploy/README.mdwith a 4-step bring-up.What's in the stack
tiredofit/freescout(tag pinned viaFREESCOUT_IMAGE_TAG), bound toAPP_PORTfor an upstream reverse proxy (Caddy/nginx/Traefik) to terminate TLS.mariadb:10.11with a healthcheck; app waits forservice_healthybefore starting.freescout_data,freescout_logs,freescout_db.deploy/.env— nothing baked into the compose file.Test plan
docker compose -f deploy/docker-compose.yml --env-file deploy/.env.example config -qvalidates cleanly (no warnings).cp deploy/.env.example deploy/.env, fill in real values,docker compose ... up -d, then complete the FreeScout web installer atAPP_URL.:443→APP_PORT.Workspace · Slack Thread