services:
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-party}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB:-partydb}
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
  kratos:
    image: oryd/kratos:v1.1
    environment:
      - DSN=${DSN:-memory}
      - LOG_LEVEL=${LOG_LEVEL:-debug}
    ports:
      - "4433:4433"

  hydra:
    image: oryd/hydra:v1.10.6
    environment:
      - SYSTEM_SECRET=${HYDRA_SYSTEM_SECRET}
    ports:
      - "4444:4444"

  app:
    build: .
    command: ./server
    depends_on:
      - db
    ports:
      - "8080:8080"
    environment:
      - DATABASE_URL=${DATABASE_URL}
      - KRATOS_PUBLIC=${KRATOS_PUBLIC:-http://kratos:4433}
volumes:
  pgdata:
