111 lines
3.1 KiB
YAML
111 lines
3.1 KiB
YAML
services:
|
|
whoami:
|
|
restart: unless-stopped
|
|
image: traefik/whoami
|
|
command:
|
|
- --port=2001
|
|
traefik:
|
|
restart: unless-stopped
|
|
image: "traefik:1.7.10"
|
|
volumes:
|
|
- ${REPO_DIR}/configurations/traefik/traefik.1.7.10.toml:/etc/traefik/traefik.toml
|
|
- ${STORAGE_DIR}/certificates:/var/lib/certificates
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
db:
|
|
image: mariadb:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- 3306:3306
|
|
env_file:
|
|
- envs/local.env
|
|
- envs/production.env
|
|
volumes:
|
|
- ${STORAGE_DIR}/mariadb:/var/lib/mysql
|
|
homeassistant:
|
|
image: "ghcr.io/home-assistant/home-assistant:stable"
|
|
volumes:
|
|
- ${STORAGE_DIR}/homeassistant:/config
|
|
restart: unless-stopped
|
|
env_file:
|
|
- envs/local.env
|
|
- envs/production.env
|
|
syncthing:
|
|
image: lscr.io/linuxserver/syncthing:latest
|
|
container_name: syncthing
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/London
|
|
volumes:
|
|
- ${STORAGE_DIR}/syncthing:/data1
|
|
ports:
|
|
- 22000:22000/tcp
|
|
- 22000:22000/udp
|
|
- 21027:21027/udp
|
|
restart: unless-stopped
|
|
node-exporter:
|
|
image: prom/node-exporter:latest
|
|
container_name: node-exporter
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /proc:/host/proc:ro
|
|
- /sys:/host/sys:ro
|
|
- /:/rootfs:ro
|
|
command:
|
|
- '--path.procfs=/host/proc'
|
|
- '--path.rootfs=/rootfs'
|
|
- '--path.sysfs=/host/sys'
|
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
|
ports:
|
|
- 9100:9100
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
container_name: prometheus
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ${REPO_DIR}/configurations/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
|
|
- ${STORAGE_DIR}/prometheus:/prometheus
|
|
command:
|
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
- '--storage.tsdb.path=/prometheus'
|
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
|
- '--web.console.templates=/etc/prometheus/consoles'
|
|
- '--web.enable-lifecycle'
|
|
ports:
|
|
- 9090:9090
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
volumes:
|
|
- ${STORAGE_DIR}/grafana:/var/lib/grafana
|
|
env_file:
|
|
- envs/local.env
|
|
- envs/production.env
|
|
influxdb:
|
|
container_name: influxdb
|
|
image: influxdb
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Brussels
|
|
- DOCKER_INFLUXDB_INIT_MODE=setup
|
|
env_file:
|
|
- envs/local.env
|
|
- envs/production.env
|
|
volumes:
|
|
- ${STORAGE_DIR}/influxdb/data:/var/lib/influxdb2
|
|
- ${STORAGE_DIR}/influxdb/config/:/etc/influxdb2
|
|
ulimits:
|
|
nofile:
|
|
soft: 32768
|
|
hard: 32768
|
|
otel-collector:
|
|
container_name: otel-collector
|
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ${REPO_DIR}/configurations/otel/collector-config.yaml:/etc/otelcol-contrib/config.yaml
|
|
# Only enable if external services present
|
|
# ports:
|
|
# - 4317:4317 # OTLP gRPC receiver
|