--- volumes: grafana-data: driver: local prometheus-data: driver: local networks: grafana-prometheus: external: true services: grafana: image: docker.io/grafana/grafana-oss:12.0.0 container_name: grafana environment: - GF_SECURITY_ADMIN_PASSWORD=admin # - GF_SERVER_DOMAIN=%(protocol)s://%(domain)s:%(http_port)s/ # - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/ - GF_SERVER_DOMAIN=grafana.phx-erp.de - GF_SERVER_PROTOCOL=https # - GF_SERVER_HTTP_PORT=3000 - GF_LOG_LEVEL=debug - GF_SMTP_ENABLED=true - GF_SMTP_FROM_ADDRESS=admin@phx-erp.de - GF_SMTP_FROM_NAME=Grafana - GF_SMTP_HOST=mail.phx-erp.de:465 - GF_SMTP_PASSWORD=0rB0@et68 - GF_SMTP_USER=yuri.lima@phx-erp.de - GF_SMTP_STARTTLS_POLICY=false - GF_SMTP_SKIP_VERIFY=true - GF_SMTP_ENABLE_TRACING=false volumes: - grafana-data:/var/lib/grafana restart: unless-stopped networks: - grafana-prometheus depends_on: - prometheus prometheus: image: docker.io/prom/prometheus:v3.1.0 container_name: prometheus user: "65534:65534" ports: - "9090:9090" command: - "--config.file=/etc/prometheus/prometheus.yaml" - "--web.config.file=/etc/prometheus/web-config.yaml" - "--web.external-url=https://prometheus.phx-erp.de" - "--web.enable-lifecycle" # 🔹 Enable dynamic config reload volumes: # - '--web.enable-lifecycle' # Enable reload of configuration automatically without restart !!! - ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro # RO Read-only - ./config/web-config.yaml:/etc/prometheus/web-config.yaml:ro # RO Read-only - ./https_portal/data/prometheus.phx-erp.de/production:/etc/prometheus/certs - ./config:/opt/phx/main/config # 🔹 Add this to mount the config folder - prometheus-data:/prometheus - ./https_portal/data/prometheus.phx-erp.de/production/signed.crt:/etc/prometheus/certs/signed.crt:ro - ./https_portal/data/prometheus.phx-erp.de/production/domain.key:/etc/prometheus/certs/domain.key:ro restart: unless-stopped networks: - grafana-prometheus https_portal: container_name: https_portal image: "steveltn/https-portal:1.21" restart: unless-stopped user: "root" networks: - grafana-prometheus ports: - "80:80" - "443:443" environment: STAGE: "production" # Use Let's Encrypt production server WEBSOCKET: "true" # Enable websocket support DEBUG: "true" RENEW_MARGIN_DAYS: 30 CLIENT_MAX_BODY_SIZE: 0 # FORCE_RENEW: 'true' DOMAINS: 'grafana.phx-erp.de -> https://grafana:3000, prometheus.phx-erp.de -> https://prometheus:9090' volumes: - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - ./https_portal/log:/var/log/nginx # nginx logs depends_on: - prometheus - grafana