services: prometheus: image: prom/prometheus:latest container_name: memento-prometheus restart: unless-stopped volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./alerts.yml:/etc/prometheus/alerts.yml:ro - prometheus-data:/prometheus ports: - "9090:9090" networks: - memento-monitoring - memento-net grafana: image: grafana/grafana:latest container_name: memento-grafana restart: unless-stopped environment: GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD:-memento-admin} GF_USERS_ALLOW_SIGN_UP: "false" GF_SERVER_ROOT_URL: "${GRAFANA_URL:-http://localhost:3001}" volumes: - grafana-data:/var/lib/grafana - ./grafana-provisioning:/etc/grafana/provisioning:ro - ./grafana-dashboards:/etc/grafana/dashboards:ro ports: - "3002:3000" networks: - memento-monitoring alertmanager: image: prom/alertmanager:latest container_name: memento-alertmanager restart: unless-stopped volumes: - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro ports: - "9093:9093" networks: - memento-monitoring node-exporter: image: prom/node-exporter:latest container_name: memento-node-exporter restart: unless-stopped volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--path.rootfs=/rootfs' ports: - "9100:9100" networks: - memento-monitoring postgres-exporter: image: prometheuscommunity/postgres-exporter:latest container_name: memento-postgres-exporter restart: unless-stopped environment: DATA_SOURCE_NAME: "postgresql://${POSTGRES_USER:-memento}:${POSTGRES_PASSWORD}@memento-postgres:5432/${POSTGRES_DB:-memento}?sslmode=disable" ports: - "9187:9187" networks: - memento-monitoring - memento-net redis-exporter: image: oliver006/redis_exporter:latest container_name: memento-redis-exporter restart: unless-stopped environment: REDIS_ADDR: "redis://memento-redis:6379" ports: - "9121:9121" networks: - memento-monitoring - memento-net cadvisor: image: gcr.io/cadvisor/cadvisor:latest container_name: memento-cadvisor restart: unless-stopped volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - "8081:8080" networks: - memento-monitoring alertmanager-bridge: image: alpine:latest container_name: memento-alertmanager-bridge restart: unless-stopped entrypoint: | sh -c ' apk add --no-cache curl while true; do echo "Bridge running - configure webhook to forward to Telegram" sleep 3600 done ' networks: - memento-monitoring volumes: prometheus-data: grafana-data: networks: memento-monitoring: driver: bridge memento-net: external: true name: memento_memento-network