From 6aa6a99bcfa73e02f3626cd47cf5924946d33c4c Mon Sep 17 00:00:00 2001 From: feldjaeger Date: Thu, 24 Apr 2025 14:05:25 +0200 Subject: [PATCH] first commit --- compose.yaml | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 compose.yaml diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..a9c34dc --- /dev/null +++ b/compose.yaml @@ -0,0 +1,139 @@ +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:13 + 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' + - '--web.console.libraries=/etc/prometheus/console_libraries' + - '--web.console.templates=/etc/prometheus/consoles' + - '--web.enable-lifecycle' + expose: + - 9090 + 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: