Files
dotfiles_serv/podman/monitoring/docker-compose.yml
2025-12-19 22:53:46 +00:00

224 lines
6.6 KiB
YAML
Executable File

#volumes:
# netdataconfig:
# netdatalib:
# netdatacache:
version: "3"
services:
beszel:
image: docker.io/henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
ports:
- 8090:8090
volumes:
- /mnt/flash1/podman/monitoring/beszel/data:/beszel_data
- ./beszel_socket:/beszel_socket
beszel-agent:
image: docker.io/henrygd/beszel-agent
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /mnt/flash1/podman/monitoring/beszel_agent/data:/var/lib/beszel-agent
# monitor other disks / partitions by mounting a folder in /extra-filesystems
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
environment:
LISTEN: 45876
KEY: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAUf2dTtQj9WJesH11kFD7/qzMIubcHzuZwN92XnHpfB'
TOKEN: 1ac0ad26-9c32-4c45-b02b-c4aa2f8eb40c
HUB_URL: https://beszel.liphlink.xyz
dozzle:
image: docker.io/amir20/dozzle:latest
container_name: dozzle
volumes:
- /run/podman/podman.sock:/var/run/docker.sock:ro
ports:
- "8078:8080"
environment:
- DOZZLE_LEVEL=info
- DOZZLE_TAILSIZE=300
restart: unless-stopped
pulse:
image: docker.io/rcourtman/pulse:latest
container_name: pulse
restart: unless-stopped
ports:
- "${PULSE_PORT:-7655}:7655"
volumes:
- pulse-data:/data
# Secure temperature monitoring via host-side proxy (requires setup - see docs)
# Uncomment after installing pulse-sensor-proxy on host with --standalone flag
# Mount is read-only (:ro) for security - proxy uses SO_PEERCRED for access control
# - /run/pulse-sensor-proxy:/run/pulse-sensor-proxy:ro
environment:
- TZ=${TZ:-UTC}
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:7655/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
netdata:
container_name: netdata
image: docker.io/netdata/netdata:latest
ports:
- '19999:19999'
volumes:
- /mnt/flash1/podman/monitoring/netdata/data:/etc/netdata
- /mnt/flash1/podman/monitoring/netdata/lib:/var/lib/netdata
- /mnt/flash1/podman/monitoring/netdata/cache:/var/cache/netdata
- '/etc/passwd:/host/etc/passwd:ro'
- '/etc/group:/host/etc/group:ro'
- '/proc:/host/proc:ro'
- '/sys:/host/sys:ro'
- '/etc/os-release:/host/etc/os-release:ro'
- '/etc/localtime:/etc/localtime:ro'
- '/var/log:/host/var/log:ro'
- '/var/run/docker.sock:/var/run/docker.sock:ro'
- '/run/dbus:/run/dbus:ro'
restart: unless-stopped
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor=unconfined
#networks: ["nginx_nginx_network"] #optional
uptime-kuma:
image: docker.io/louislam/uptime-kuma:latest
container_name: uptime-kuma
volumes:
- ./data/uptime-kuma:/app/data
ports:
- "3001:3001" # <Host Port>:<Container Port>
restart: always
volumes:
uptime-kuma:
netdataconfig:
netdatalib:
netdatacache:
pulse-data:
#
# loki:
# container_name: loki
# image: docker.io/grafana/loki:main
# networks:
# - grafana-monitoring
# volumes:
# - ./data/loki/:/etc/loki
# ports:
# - "3100:3100"
# restart: unless-stopped
# command: -config.file=./config/loki/loki-config.yml
#
# promtail:
# container_name: promtail
# image: docker.io/grafana/promtail:main
# networks:
# - grafana-monitoring
# volumes:
# - /var/log:/var/log
# - ./data/promtail/:/etc/promtail
# ports:
# - "1514:1514" # this is only needed if you are going to send syslogs
# restart: unless-stopped
# command: -config.file=./config/promtail/promtail-config.yml
#
# grafana:
# container_name: grafana
# image: docker.io/grafana/grafana-oss:main-ubuntu
# user: "0"
# networks:
# - grafana-monitoring
# - proxy
# volumes:
# - ./data/grafana/:/var/lib/grafana
# restart: unless-stopped
# ports:
# - 3000:3000
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.grafana.entrypoints=http"
# - "traefik.http.routers.grafana.rule=Host(`grafana.jimsgarage.co.uk`)"
# - "traefik.http.routers.grafana.middlewares=default-whitelist@file"
# - "traefik.http.middlewares.grafana-https-redirect.redirectscheme.scheme=https"
# - "traefik.http.routers.grafana.middlewares=grafana-https-redirect"
# - "traefik.http.routers.grafana-secure.entrypoints=https"
# - "traefik.http.routers.grafana-secure.rule=Host(`grafana.jimsgarage.co.uk`)"
# - "traefik.http.routers.grafana-secure.tls=true"
# - "traefik.http.routers.grafana-secure.service=grafana"
# - "traefik.http.services.grafana.loadbalancer.server.port=3000"
# - "traefik.docker.network=proxy"
#
# influxdb:
# container_name: influxdb
# image: docker.io/influxdb:latest
# restart: unless-stopped
# ports:
# - 8086:8086
# - 8089:8089/udp
# networks:
# - grafana-monitoring
# volumes:
# - ./data/influxdb/:/var/lib/influxdb2
#
# telegraf:
# container_name: docker.io/telegraf
# restart: unless-stopped
# user: 1000:1000 #you need to find the GID of Docker if not added to Sudo group changed from 995 to 1000
# networks:
# - grafana-monitoring
# volumes:
# - /run/user/1000/podman/podman.sock:/run/podman/podman.sock
# - './config/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro'
# - './data/telegraf/mibs/:/usr/share/snmp/mibs'
# environment:
# - HOST_ETC=/hostfs/etc
# - HOST_PROC=/hostfs/proc
# - HOST_SYS=/hostfs/sys
# - HOST_VAR=/hostfs/var
# - HOST_RUN=/hostfs/run
# - HOST_MOUNT_PREFIX=/hostfs
# image: docker.io/telegraf
#
# graphite:
# image: docker.io/graphiteapp/graphite-statsd
# container_name: graphite
# restart: unless-stopped
# ports:
# - 8050:80 # nginx
# - 2003-2004 # carbon receiver - plaintext & pickle
# - 2023-2024 # carbon aggregator - plaintext & pickle
# - 8125:8125/udp # statsd
# - 8126:8126 # statsd admin
# volumes:
# - ./config/graphite/configs/:/opt/graphite/conf
# - ./data/graphite/data/:/opt/graphite/storage
# - ./config/graphite/statsd_config/:/opt/statsd/config
# networks:
# - grafana-monitoring
#
# prometheus:
# image: docker.io/prom/prometheus
# container_name: prometheus
# restart: unless-stopped
# ports:
# - 9090:9090
# volumes:
# - ./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
# networks:
# - grafana-monitoring
#
#networks:
# grafana-monitoring:
# proxy:
# # external: true