services: postgres: image: postgis/postgis:16-3.4 container_name: vibe_postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-vibe} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-vibepass} POSTGRES_DB: ${POSTGRES_DB:-vibe_db} ports: - "5433:5432" volumes: - postgres_data:/var/lib/postgresql/data - ./packages/database/schema.sql:/docker-entrypoint-initdb.d/01_schema.sql - ./packages/database/seed.sql:/docker-entrypoint-initdb.d/02_seed.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U vibe -d vibe_db"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: vibe_redis restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --appendonly yes healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 osrm: image: osrm/osrm-backend:latest container_name: vibe_osrm restart: unless-stopped ports: - "5000:5000" volumes: - osrm_data:/data command: osrm-routed --algorithm mld /data/ontario-latest.osrm profiles: - routing pgadmin: image: dpage/pgadmin4:latest container_name: vibe_pgadmin restart: unless-stopped environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL:-admin@thevibe.ca} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD:-admin} ports: - "5050:80" depends_on: - postgres profiles: - dev volumes: postgres_data: redis_data: osrm_data: networks: default: name: vibe_network