Files
ansible/roles/docker/templates/aya01/compose.yaml

183 lines
4.4 KiB
YAML

version: '3'
services:
db:
container_name: zoneminder_db
image: mariadb
restart: always
networks:
- zoneminder
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "{{ zoneminder_config}}/db:/var/lib/mysql"
environment:
- "MYSQL_DATABASE=zm"
- "MYSQL_ROOT_PASSWORD={{ vault_mysql_root_password }}"
- "MYSQL_USER={{ mysql_user }}"
- "MYSQL_PASSWORD={{ vault_mysql_user_password }}"
- "MAX_LOG_SIZE_BYTES=1000000"
- "MAX_LOG_NUMBER=20"
- "TZ=Europe/Berlin"
zoneminder:
container_name: zoneminder
image: ghcr.io/zoneminder-containers/zoneminder-base:latest
restart: always
stop_grace_period: 45s
depends_on:
- db
networks:
- zoneminder
- net
ports:
- 80:80
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "{{ zoneminder_data }}:/data"
- "{{ zoneminder_config }}/config:/config"
- "{{ zoneminder_config }}/log:/log"
- type: tmpfs
target: /dev/shm
tmpfs:
size: 1000000000
environment:
- "MYSQL_DATABASE=zm"
- "MYSQL_ROOT_PASSWORD={{ vault_mysql_root_password }}"
- "MYSQL_USER={{ mysql_user }}"
- "MYSQL_PASSWORD={{ vault_mysql_user_password }}"
- "MAX_LOG_SIZE_BYTES=1000000"
- "MAX_LOG_NUMBER=20"
- "TZ=Europe/Berlin"
pihole:
container_name: pihole
image: pihole/pihole:latest
restart: unless-stopped
networks:
- net
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "8089:80/tcp"
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "{{ pihole_pihole }}:/etc/pihole/"
- "{{ pihole_dnsmasq }}:/etc/dnsmasq.d/"
environment:
- "WEBPASSWORD={{ vault_aya01_pihole_password }}"
- "ServerIP={{aya01_ip}}"
- "INTERFACE=eth0"
- "DNS1=1.1.1.1"
- "DNS1=1.0.0.1"
dns:
- 127.0.0.1
- 1.1.1.1
cap_add:
- NET_ADMIN
syncthing:
container_name: syncthing
image: syncthing/syncthing
restart: unless-stopped
networks:
- net
ports:
- 8384:8384 # Web UI
- 22000:22000/tcp # TCP file transfers
- 22000:22000/udp # QUIC file transfers
- 21027:21027/udp # Receive local discovery broadcasts
volumes:
- "{{syncthing_data}}:/var/syncthing"
environment:
- "PUID={{ puid }}"
- "PGID={{ pgid }}"
hostname: syncthing
grafana:
container_name: grafana
image: grafana/grafana-oss
restart: unless-stopped
user: "{{ puid }}:{{ pgid }}"
networks:
- net
ports:
- 3000:3000
volumes:
- "{{ grafana_data }}:/var/lib/grafana/"
- "{{ grafana_log }}:/var/log/grafana/"
environment:
- "GF_LOG_MODE=console file"
hostname: grafana
soft-serve:
container_name: soft-serve
image: charmcli/soft-serve:latest
restart: unless-stopped
networks:
- net
ports:
- 23231:23231
volumes:
- "{{ softserve_data }}:/soft-serve"
prometheus:
container_name: prometheus
image: prom/prometheus
restart: unless-stopped
networks:
- net
ports:
- "{{ prm_port }}:9090"
volumes:
- "{{ prm_config }}:/etc/prometheus"
exporter_mikrotik:
container_name: exporter_mikrotik
image: "nshttpd/mikrotik-exporter:{{ e_mikrotik_version }}"
restart: unless-stopped
user: "{{ puid }}:{{ pgid }}"
networks:
- net
ports:
- "{{ e_mikrotik_port }}:9436"
volumes:
- "{{ e_mikrotik_config }}:/config"
environment:
- "CONFIG_FILE=/config/config.yml"
netdata:
container_name: netdata
image: netdata/netdata
restart: unless-stopped
networks:
- net
ports:
- "{{netdata_port}}:19999"
volumes:
- "{{netdata_config}}:/etc/netdata"
- "{{netdata_lib}}:/var/lib/netdata"
- "{{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
environment:
- "DO_NOT_TRACK=1"
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
hostname: "{{ aya01_host }}"
networks:
zoneminder:
net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.69.0/24
ip_range: 172.28.69.0/24
gateway: 172.16.69.1