Files
server-monitoring/docker-compose.yaml

86 lines
2.0 KiB
YAML

services:
# System Monitoring
netdata:
image: netdata/netdata:latest
container_name: netdata
ports:
- "7001:19999"
volumes:
- netdata_config:/etc/netdata
- netdata_lib:/var/lib/netdata
- netdata_cache:/var/cache/netdata
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /:/host/root:ro,rslave
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /etc/os-release:/host/etc/os-release:ro
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
environment:
- NETDATA_CLAIM_TOKEN=${NETDATA_CLAIM_TOKEN:-}
- NETDATA_CLAIM_URL=https://app.netdata.cloud
networks:
- monitoring-net
restart: unless-stopped
# Container Management
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
ports:
- "7002:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- portainer_data:/data
networks:
- monitoring-net
restart: unless-stopped
extra_hosts:
- "server-pi:192.168.1.35"
- "private-pi:192.168.1.111"
security_opt:
- no-new-privileges:true
# # Web-based SSH Terminal
# webssh:
# image: kuaifan/webssh:arm64
# container_name: webssh
# ports:
# - "7003:5032"
# environment:
# - TZ=${TZ:-UTC}
# # Restrict to internal network for security
# - WEBSSH_ORIGIN_LIST=*
# - WEBSSH_POLICY=reject
# networks:
# - monitoring-net
# restart: unless-stopped
#
# # Log Management (Optional but useful)
# dozzle:
# image: amir20/dozzle:latest
# container_name: dozzle
# ports:
# - "7004:8080"
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock:ro
# networks:
# - monitoring-net
# restart: unless-stopped
# environment:
# - DOZZLE_NO_ANALYTICS=true
volumes:
portainer_data:
netdata_config:
netdata_lib:
netdata_cache:
networks:
monitoring-net:
driver: bridge