services:
  backend:
    image: ghcr.io/hedgedoc/hedgedoc/backend:2.0.0-alpha.2
    volumes:
      - $PWD/.env:/usr/src/app/backend/.env
      - hedgedoc_uploads:/usr/src/app/backend/uploads

  frontend:
    image: ghcr.io/hedgedoc/hedgedoc/frontend:2.0.0-alpha.2
    environment:
      HD_BASE_URL: "${HD_BASE_URL}"
      HD_INTERNAL_API_URL: http://backend:3000

  db:
    image: postgres:16
    environment:
      POSTGRES_USER: "${HD_DATABASE_USER}"
      POSTGRES_PASSWORD: "${HD_DATABASE_PASS}"
      POSTGRES_DB: "${HD_DATABASE_NAME}"
    volumes:
      - hedgedoc_postgres:/var/lib/postgresql/data

  proxy:
    image: caddy:latest
    restart: unless-stopped
    environment:
      HD_BASE_URL: "${HD_BASE_URL}"
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - $PWD/Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data

volumes:
  caddy_data:
  hedgedoc_uploads:
  hedgedoc_postgres: