services:
  app:
    build: .
    container_name: kolaytercih
    restart: unless-stopped
    # Host'u korur: uygulama bu sınırın üstüne çıkamaz. OOM anında kernel'ın
    # önce build süreçlerini (skor 0) öldürmesi için negatif oom_score_adj.
    mem_limit: 1g
    mem_reservation: 256m
    oom_score_adj: -600
    volumes:
      - app-data:/app/data
    env_file:
      - .env.production
    environment:
      - APP_DB_URL=file:/app/data/app.db
    networks:
      - traefik
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - traefik.http.routers.kolaytercih.rule=Host(`kolaytercih.com`)
      - traefik.http.routers.kolaytercih.entrypoints=websecure
      - traefik.http.routers.kolaytercih.tls.certresolver=letsencrypt
      - traefik.http.services.kolaytercih.loadbalancer.server.port=3000

networks:
  traefik:
    external: true

volumes:
  app-data:
