# dd0c/route — Local Development

services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: dd0c
      POSTGRES_PASSWORD: dd0c
      POSTGRES_DB: dd0c
    ports:
      - "5432:5432"
    volumes:
      - pg_data:/var/lib/postgresql/data
      - ./migrations/001_init.sql:/docker-entrypoint-initdb.d/001_init.sql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dd0c"]
      interval: 5s
      timeout: 3s
      retries: 5

  timescaledb:
    image: timescale/timescaledb:latest-pg16
    environment:
      POSTGRES_USER: dd0c
      POSTGRES_PASSWORD: dd0c
      POSTGRES_DB: dd0c_telemetry
    ports:
      - "5433:5432"
    volumes:
      - ts_data:/var/lib/postgresql/data
      - ./migrations/002_timescale.sql:/docker-entrypoint-initdb.d/002_timescale.sql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dd0c"]
      interval: 5s
      timeout: 3s
      retries: 5

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 3s
      retries: 5

volumes:
  pg_data:
  ts_data:
