services:
  server:
    container_name: continuity-server
    image: continuity:latest
    restart: always
    depends_on:
      - db
    environment:
      - ENVIRONMENT=Development
      - Testing:CreateAccountOnLogin=true
      - DB:Host=db
      - DB:Port=5432
      - DB:Username=continuity
      - DB:Password=continuity
      - Game:Data:Path=/app/data
    networks:
      - continuity
    ports:
      - "10001:10001"
    volumes:
      - type: bind
        source: game-data
        target: /app/data
        read_only: true

  db:
    container_name: continuity-db
    image: postgres:16.0-alpine
    restart: always
    environment:
      - POSTGRES_USER=continuity
      - POSTGRES_DB=continuity
      - POSTGRES_PASSWORD=continuity
    networks:
      - continuity
    ports:
      - "5432:5432"
    volumes:
      - db-data:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ]
      interval: 10s
      timeout: 3s
      retries: 3

networks:
  continuity:

volumes:
  db-data: