trails/infrastructure
Ullrich Schäfer c8a7a0b253
Add staging + PR-preview environments on the flagship
Implements the staging-environments OpenSpec change. Persistent staging at
staging.trails.cool / planner.staging.trails.cool deploys from main; PR
opens get a journal-only preview at pr-<N>.staging.trails.cool that shares
the persistent planner. cd-staging.yml builds tagged images, manages
per-PR Postgres databases and Caddyfile snippets, evicts the oldest
preview at the cap of 3, and tears everything down on PR close.
staging-cleanup.yml runs weekly to sweep orphaned previews.

DNS records (staging + *.staging A/AAAA) already applied to production
via tofu.

Caddy approach: per-PR Caddyfile snippets imported from /etc/caddy/sites/
and reloaded on each PR event — no wildcard / on-demand TLS, no router
service. Production compose gains a trails-shared network for the staging
project to reach Postgres, and host.docker.internal on Caddy so it can
reverse-proxy staging containers published on the host loopback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 22:03:38 +02:00
..
brouter-host Stop BRouter contention kills under rapid editing 2026-04-24 17:43:15 +02:00
grafana Stop the caddy-502-rate alert firing on every deploy 2026-04-26 11:51:13 +02:00
loki Pass Grafana env vars to Caddy container, fix Loki compactor config 2026-03-27 13:53:56 +01:00
postgres Add pg-boss background job queue with session expiry 2026-04-13 21:17:24 +02:00
prometheus BRouter host observability + docs 2026-04-23 23:10:45 +02:00
promtail Fix journal health check and improve log collection 2026-04-12 15:00:00 +02:00
scripts Add infrastructure: Terraform, Docker Compose, BRouter, CD pipeline (#2) 2026-03-22 13:32:01 +01:00
terraform Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00
.env.example Failover across multiple Overpass upstreams 2026-04-21 07:36:10 +02:00
Caddyfile Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00
docker-compose.staging.yml Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00
docker-compose.yml Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00
secrets.app.env Cut Planner over to dedicated BRouter host 2026-04-24 17:17:18 +02:00
secrets.infra.env Provision Grafana Pushover contact point 2026-04-24 19:07:04 +02:00
staging.env.template Add staging + PR-preview environments on the flagship 2026-05-03 22:03:38 +02:00