monitoring/compose.yaml

210 lines
5.2 KiB
YAML

networks:
monitoring_network:
name: monitoring_network
services:
teslamate:
image: teslamate/teslamate:latest
container_name: teslamate
restart: always
depends_on:
- teslamate_database
environment:
- DATABASE_USER=${TM_DB_USER}
- DATABASE_PASS=${TM_DB_PASS}
- DATABASE_NAME=${TM_DB_NAME}
- DATABASE_HOST=teslamate_database
- MQTT_HOST=mosquitto
- VIRTUAL_HOST=${FQDN_TM}
- CHECK_ORIGIN=true
- TZ=${TM_TZ}
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
volumes:
- /app-config/teslamate_config:/opt/app/import
cap_drop:
- all
ports:
- "4000:4000"
networks:
- monitoring_network
# Database for TeslaMate
teslamate_database:
image: postgres:17
container_name: teslamate_database
restart: always
environment:
- POSTGRES_USER=${TM_DB_USER}
- POSTGRES_PASSWORD=${TM_DB_PASS}
- POSTGRES_DB=${TM_DB_NAME}
volumes:
- /app-config/teslamate_database:/var/lib/postgresql/data
networks:
monitoring_network:
# Grafana for TeslaMate
grafana:
image: teslamate/grafana:latest
container_name: grafana
restart: always
environment:
- DATABASE_USER=${TM_DB_USER}
- DATABASE_PASS=${TM_DB_PASS}
- DATABASE_NAME=${TM_DB_NAME}
- DATABASE_HOST=teslamate_database
- GRAFANA_PASSWD=${GRAFANA_PW}
- GF_SECURITY_ADMIN_USER=${GRAFANA_USER}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PW}
- GF_AUTH_ANONYMOUS_ENABLED=false
- GF_SERVER_DOMAIN=${FQDN_TM}
- GF_SERVER_ROOT_URL=%(protocol)s://grafana.sascha-lutz.de
- GF_SERVER_SERVE_FROM_SUB_PATH=true
volumes:
- /app-config/grafana_data:/var/lib/grafana
ports:
- "3000:3000"
networks:
- monitoring_network
# Mosquitto MQTT Broker
mosquitto:
image: eclipse-mosquitto:2
container_name: mosquitto
command: mosquitto -c /mosquitto-no-auth.conf
restart: always
volumes:
- /app-config/mosquitto_config:/mosquitto/config
- /app-config/mosquitto_data:/mosquitto/data
networks:
monitoring_network:
# Prometheus Monitoring
prometheus:
image: prom/prometheus
container_name: prometheus
restart: always
volumes:
- /app-config/prometheus_config:/config/
- /app-config/prometheus_data:/prometheus
command:
- '--config.file=/config/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention.time=5y'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--web.enable-lifecycle'
ports:
- 9090:9090
networks:
- monitoring_network
snmp-exporter:
image: quay.io/prometheus/snmp-exporter
container_name: snmp-exporter
ports:
- 9116:9116
- 116:116/udp
volumes:
- /app-config/snmp-exporter:/etc/snmp-exporter/
restart: always
command: --config.file=/etc/snmp-exporter/snmp.yml
networks:
- monitoring_network
# InfluxDB
influxdb:
image: influxdb:latest
restart: always
container_name: influxdb
environment:
- INFLUXDB_UDP_DATABASE=udp
- INFLUXDB_UDP_ENABLED=true
- INFLUXDB_UDP_BIND_ADDRESS=0.0.0.0:8086
volumes:
- /app-config/influxdb_data:/var/lib/influxdb2
ports:
- "8086:8086"
- "8086:8086/udp"
networks:
- monitoring_network
# Emby Exporter
embyexporter:
image: bagul/goemby_exporter:latest
container_name: embyexporter
environment:
- TZ=Europe/Berlin
- CONFIG_FILE=/emby/tv.sascha-lutz.de.yml
volumes:
- /app-config/embyexporter_data:/emby/
expose:
- 9210
restart: unless-stopped
networks:
- monitoring_network
loki:
image: grafana/loki:latest
container_name: loki
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
networks:
- monitoring_network
volumes:
- /app-config/loki/loki-config.yaml:/etc/loki/local-config.yaml
- /app-config/loki/data:/data
restart: unless-stopped
uptime-kuma:
image: louislam/uptime-kuma:1
volumes:
- /app-config/kuma:/app/data
ports:
# <Host Port>:<Container Port>
- 3001:3001
restart: unless-stopped
waha:
restart: always
image: devlikeapro/waha:latest
networks:
- monitoring_network
dns:
- 1.1.1.1
- 8.8.8.8
logging:
driver: 'json-file'
options:
max-size: '100m'
max-file: '10'
ports:
- '3333:3000/tcp'
volumes:
- '/app-config/waha/sessions:/app/.sessions'
- '/app-config/waha/media:/app/.media'
environment:
- WAHA_API_KEY=1c3fc7082a0142c78a532324ca1ab2ab
- WAHA_DASHBOARD_USERNAME=admin
- WAHA_DASHBOARD_PASSWORD=7e526001daf04c5387ed49f5d3574be4
- WHATSAPP_SWAGGER_USERNAME=admin
- WHATSAPP_SWAGGER_PASSWORD=7e526001daf04c5387ed49f5d3574be4
- WAHA_DASHBOARD_ENABLED=True
- WHATSAPP_SWAGGER_ENABLED=True
- WHATSAPP_DEFAULT_ENGINE=WEBJS
- WAHA_BASE_URL=http://localhost:3000
- WAHA_MEDIA_STORAGE=LOCAL
- WHATSAPP_FILES_LIFETIME=0
- WHATSAPP_FILES_FOLDER=/app/.media
- TZ=Europe/Berlin