61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
# Loki Stack — Smart City Digital Twin Martinique
|
|
# Usage: docker compose -f docker-compose.yml -f docker-compose.loki.yml up -d
|
|
# Uses default Loki config (local-config.yaml inside image)
|
|
|
|
networks:
|
|
smartcity-shared:
|
|
external: true
|
|
traefik-public:
|
|
external: true
|
|
|
|
volumes:
|
|
loki_data:
|
|
external: false
|
|
name: smart-city_loki_data
|
|
promtail_data:
|
|
external: false
|
|
name: smart-city_promtail_data
|
|
|
|
services:
|
|
# Loki — Log storage and query engine (default config)
|
|
loki:
|
|
image: grafana/loki:latest
|
|
container_name: smart-city-loki
|
|
networks:
|
|
- smartcity-shared
|
|
- traefik-public
|
|
ports:
|
|
- "3100:3100"
|
|
command: -config.file=/etc/loki/local-config.yaml
|
|
volumes:
|
|
- loki_data:/loki
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.loki.rule=Host(`loki.digitribe.fr`)"
|
|
- "traefik.http.routers.loki.entrypoints=websecure"
|
|
- "traefik.http.routers.loki.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.loki.loadbalancer.server.port=3100"
|
|
|
|
# Promtail — Log collector (scrapes Docker logs)
|
|
promtail:
|
|
image: grafana/promtail:latest
|
|
container_name: smart-city-promtail
|
|
networks:
|
|
- smartcity-shared
|
|
- traefik-public
|
|
command: -config.file=/etc/promtail/config.yml
|
|
volumes:
|
|
- /var/log:/var/log:ro
|
|
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- ./promtail-config.yml:/etc/promtail/config.yml:ro
|
|
- promtail_data:/tmp/promtail
|
|
restart: unless-stopped
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.promtail.rule=Host(`promtail.digitribe.fr`)"
|
|
- "traefik.http.routers.promtail.entrypoints=websecure"
|
|
- "traefik.http.routers.promtail.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.promtail.loadbalancer.server.port=9080"
|