diff --git a/docker-compose.yml b/docker-compose.yml index c5172cb..cae1023 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,6 @@ volumes: traefik_letsencrypt: traefik_logs: portainer_data: - umami_db_data: prometheus_data: grafana_data: uptime_kuma_data: @@ -64,6 +63,11 @@ services: - --metrics.prometheus=true - --metrics.prometheus.addrouterslabels=true + # Global timeouts for slow backends + - --serversTransport.forwardingTimeouts.dialTimeout=30s + - --serversTransport.forwardingTimeouts.responseHeaderTimeout=60s + - --serversTransport.forwardingTimeouts.idleConnTimeout=180s + # Logs - --accesslog.filepath=/var/log/traefik/access.log - --accesslog.bufferingsize=100 @@ -110,45 +114,6 @@ services: - traefik.http.routers.portainer.middlewares=security-headers - traefik.http.services.portainer.loadbalancer.server.port=9000 - ## ───────────────────────────────────────────── - ## Umami + PostgreSQL — privacy analytics - ## ───────────────────────────────────────────── - - umami: - image: umamisoftware/umami:postgresql-latest - container_name: umami - restart: unless-stopped - depends_on: - - umami-db - environment: - DATABASE_URL: postgresql://umami:${UMAMI_DB_PASS}@umami-db:5432/umami - APP_SECRET: ${UMAMI_APP_SECRET} - TRACKER_SCRIPT_NAME: umami - HOSTNAME: "0.0.0.0" - PORT: "3000" - TZ: "${TZ}" - networks: [traefik_proxy, internal] - labels: - - traefik.enable=true - - traefik.http.routers.umami.rule=Host(`umami.gate.${DOMAIN}`) - - traefik.http.routers.umami.entrypoints=websecure - - traefik.http.routers.umami.tls.certresolver=le - - traefik.http.routers.umami.middlewares=security-headers - - traefik.http.services.umami.loadbalancer.server.port=3000 - - umami-db: - image: postgres:16-alpine - container_name: umami-db - restart: unless-stopped - environment: - POSTGRES_DB: umami - POSTGRES_USER: umami - POSTGRES_PASSWORD: ${UMAMI_DB_PASS} - TZ: "${TZ}" - networks: [internal] - volumes: - - umami_db_data:/var/lib/postgresql/data - ## ───────────────────────────────────────────── ## Uptime Kuma — status page / checks ## ─────────────────────────────────────────────