trails/openspec/changes/local-dev-stack/proposal.md
Ullrich Schäfer 0a330e4466
Break up route-features into focused specs, add new changes
Archive the monolithic route-features spec and replace with 9 focused
OpenSpec changes: multi-day-routes, waypoint-notes (with POI snapping),
undo-redo, local-dev-stack, route-sharing, route-discovery,
activity-photos, osm-overlays, plus the existing changelog and
komoot-import.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:53:41 +02:00

2 KiB

Why

There is no staging environment — production is the only deployed instance. Infra changes (Prometheus alerts, Caddy config, Grafana dashboards) go straight to prod with no way to validate them locally first. Meanwhile, CI E2E tests skip ~15 of 20 tests because there is no PostgreSQL service in the workflow, and BRouter was only recently added to CI with manual setup instead of reusing the dev compose file. The existing docker-compose.dev.yml covers PostgreSQL and BRouter but nothing else from the production stack.

What Changes

  • Extend docker-compose.dev.yml with an optional monitoring profile (Prometheus, Grafana, Loki) so developers can test observability changes locally before deploying to production
  • Add pg_stat_statements and initialization scripts to the dev PostgreSQL to match production config
  • Improve scripts/dev.sh with proper health checks and better error output
  • Simplify CI by using the same compose file instead of ad-hoc docker run commands
  • Add a database seed script for consistent test data
  • Add a pnpm dev:reset command to tear down and recreate the local stack

Capabilities

New Capabilities

  • local-monitoring: Optional local Prometheus + Grafana + Loki stack via --profile monitoring, matching production monitoring configuration
  • dev-reset: One command to wipe and recreate the local dev environment

Modified Capabilities

  • local-dev-environment: PostgreSQL config aligned with production (pg_stat_statements, init scripts), improved health checks, seed data

Impact

  • docker-compose.dev.yml: Add monitoring services behind a profile, update postgres config to match production
  • .github/workflows/ci.yml: Replace manual docker run with compose-based service startup
  • scripts/dev.sh: Better health checks, error messages, optional monitoring
  • scripts/reset-dev.sh: New script to wipe volumes and restart
  • scripts/seed.ts: Test data for local development and E2E tests
  • Dependencies: None new (all Docker images already used in production)