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: ../wk-data
      target: /app/data
      read_only: true
    - type: bind
      source: ../wk-logs
      target: /app/logs
      read_only: false
    - type: bind
      source: ../config
      target: /app/config
      read_only: true

  db:
    container_name: continuity-db
    image: postgres:16.1-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: