services: app: build: . restart: unless-stopped environment: - APP_PIN=${APP_PIN} - JWT_SECRET=${JWT_SECRET} - JWT_EXPIRE_DAYS=${JWT_EXPIRE_DAYS:-90} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - OPENROUTER_MODEL=${OPENROUTER_MODEL:-google/gemini-2.5-flash} - YOUTUBE_PROXY=${YOUTUBE_PROXY:-} - YOUTUBE_PROXY_HOST=${YOUTUBE_PROXY_HOST:-} - YOUTUBE_PROXY_PORT=${YOUTUBE_PROXY_PORT:-0} - YOUTUBE_PROXY_USER=${YOUTUBE_PROXY_USER:-} - YOUTUBE_PROXY_PASSWORD=${YOUTUBE_PROXY_PASSWORD:-} - WEBSHARE_PROXY_USERNAME=${WEBSHARE_PROXY_USERNAME:-} - WEBSHARE_PROXY_PASSWORD=${WEBSHARE_PROXY_PASSWORD:-} - WEBSHARE_PROXY_LOCATIONS=${WEBSHARE_PROXY_LOCATIONS:-} - DB_PATH=/data/ytrecap.sqlite - APP_URL=https://ytrecap.schwenk.online - TZ=Europe/Berlin volumes: - ./data:/data networks: - traefik labels: - traefik.enable=true - traefik.docker.network=traefik - traefik.http.routers.ytrecap.rule=Host(`ytrecap.schwenk.online`) - traefik.http.routers.ytrecap.entrypoints=websecure - traefik.http.routers.ytrecap.tls.certresolver=myresolver - traefik.http.services.ytrecap.loadbalancer.server.port=8000 networks: traefik: external: true