services:
  pocket-id:
    image: ghcr.io/pocket-id/pocket-id
    restart: unless-stopped
    env_file: .env
    ports:
      - 3000:80
    volumes:
      - "./data:/app/backend/data"
    # Optional healthcheck  
    healthcheck:
      test: "curl -f http://localhost/health"
      interval: 1m30s
      timeout: 5s
      retries: 2
      start_period: 10s
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pocket-id.entrypoints=http"
      - "traefik.http.routers.pocket-id.rule=Host(`pocket-id.jimsgarage.co.uk`)"
      - "traefik.http.middlewares.pocket-id-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.pocket-id.middlewares=pocket-id-https-redirect"
      - "traefik.http.routers.pocket-id-secure.entrypoints=https"
      - "traefik.http.routers.pocket-id-secure.rule=Host(`pocket-id.jimsgarage.co.uk`)"
      - "traefik.http.routers.pocket-id-secure.tls=true"
      - "traefik.http.routers.pocket-id-secure.service=pocket-id"
      - "traefik.http.services.pocket-id.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"

networks:
  proxy:
    external: true