Files
homelab/prometheus-stack/compose.yaml
T
2026-06-16 12:36:31 +02:00

67 lines
2.0 KiB
YAML

services:
grafana:
image: grafana/grafana:11.6.0
container_name: prometheus-grafana
restart: unless-stopped
env_file:
- .env
environment:
GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-admin}
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD:?grafana admin password required}
volumes:
- grafana-data:/var/lib/grafana
labels:
- "traefik.enable=true"
- "traefik.http.services.prometheus-grafana.loadbalancer.server.port=3000"
# Prod Router
- "traefik.http.routers.grafana.rule=Host(`grafana.forust.xyz`)"
- "traefik.http.routers.grafana.entrypoints=websecure"
- "traefik.http.routers.grafana.tls=true"
# Local Router
- "traefik.http.routers.grafana-local.rule=Host(`grafana.workstation.internal`)"
- "traefik.http.routers.grafana-local.entrypoints=websecure"
- "traefik.http.routers.grafana-local.tls=true"
# Dev Router
- "traefik.http.routers.grafana-dev.rule=Host(`grafana.gigaforust.internal`)"
- "traefik.http.routers.grafana-dev.entrypoints=websecure"
- "traefik.http.routers.grafana-dev.tls=true"
networks:
- proxy
prometheus:
image: prom/prometheus:v3.2.1
container_name: prometheus-prometheus
restart: unless-stopped
command:
- "--config.file=/etc/prometheus/prometheus.yaml"
- "--storage.tsdb.path=/prometheus"
- "--storage.tsdb.retention.time=90d"
volumes:
- prometheus-data:/prometheus
- ./prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
networks:
- proxy
alertmanager:
image: prom/alertmanager:v0.28.1
container_name: prometheus-alertmanager
restart: unless-stopped
command:
- "--config.file=/etc/alertmanager/alertmanager.yaml"
- "--storage.path=/alertmanager"
volumes:
- alertmanager-data:/alertmanager
- ./alertmanager.yaml:/etc/alertmanager/alertmanager.yaml:ro
networks:
- proxy
volumes:
grafana-data:
prometheus-data:
alertmanager-data:
networks:
proxy:
external: true