docker-compose/peach/docker-compose.yml

368 lines
12 KiB
YAML

volumes:
conduit-db:
external: true
conduwuit-db:
external: true
ssl:
external: true
victoria-metrics:
external: true
postgres-17:
external: true
mysql-data:
external: true
lumieredesoy-ghost-data:
external: true
networks:
default:
name: yann_default
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 172.20.0.0/24
gateway: 172.20.0.1
- subnet: 2a01:e0a:cba:5f51::/64
gateway: 2a01:e0a:cba:5f51::1
services:
postgres:
image: postgres:17-alpine
volumes:
- postgres-17:/var/lib/postgresql/data
- ssl:/ssl:ro
environment:
- POSTGRES_PASSWORD=J5PdCv9ObVh5uZCJDpndzXoUumAKn52K
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::5432
restart: always
caddy:
image: caddy:alpine
volumes:
- ssl:/ssl:ro
- /etc/caddy:/etc/caddy
- /srv/www:/srv/www
- /srv/www/nfs/kiwi/Videos:/srv/www/nfs/kiwi/Videos:ro
restart: always
ports:
- 443:443
- 443:443/udp
- 80:80
mem_limit: 1G
command: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::443
ipv4_address: 172.20.0.250
redis:
image: valkey/valkey
restart: always
volumes:
- /srv/docker/volume/redis/data:/data
- /srv/docker/volume/redis/config/redis.conf:/usr/local/etc/redis/redis.conf:ro
command: redis-server /usr/local/etc/redis/redis.conf
mem_limit: 512M
dns: 192.168.3.2
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::6379
pdns:
image: powerdns/pdns-auth-51:latest
volumes:
- /srv/docker/volume/powerdns/pdns/pdns.conf:/etc/powerdns/pdns.conf:ro
- /srv/docker/volume/powerdns/pdns/custom.conf:/etc/powerdns/pdns.d/custom.conf:ro
- /srv/docker/volume/powerdns/pdns/data:/powerdns-lmdb:rw
ports:
- "192.168.3.10:53:53/udp"
- "192.168.3.10:53:53/tcp"
#command: /usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --log-timestamp=no --write-pid=no
restart: always
mem_limit: 128M
dns: 192.168.3.2
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::53
grafana:
image: grafana/grafana:main
volumes:
- /srv/docker/volume/grafana/grafana.ini:/etc/grafana/grafana.ini
restart: always
mem_limit: 1G
php:
image: php85-alpine
extra_hosts:
- "mail.verry.org:192.168.42.3"
dns: 192.168.3.2
command: php-fpm
volumes:
- /srv/www:/srv/www
restart: always
nextcloud-push:
image: alpine
extra_hosts:
- "mail.verry.org:192.168.42.3"
- "cloud.verry.org:172.20.0.250"
dns: 192.168.3.2
command: /srv/www/yann/owncloud/nextcloud/apps/notify_push/bin/x86_64/notify_push /srv/www/yann/owncloud/nextcloud/config/config.php
volumes:
- /srv/www/yann/owncloud/nextcloud:/srv/www/yann/owncloud/nextcloud
restart: always
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::beef
ipv4_address: 172.20.0.251
miniflux:
image: miniflux/miniflux:latest-distroless
env_file: env/miniflux
restart: always
mem_limit: 128M
pgbouncer:
image: pgbouncer-alpine
volumes:
- /srv/docker/volume/pgbouncer:/etc/pgbouncer:ro
dns: 192.168.3.2
restart: always
mem_limit: 128M
vmalert:
image: victoriametrics/vmalert
volumes:
- /srv/docker/volume/victoriametrics/vmalert/alert.rules:/alert.rules:ro
command: -rule=/alert.rules -datasource.url=http://victoria:8428 -notifier.url=http://prometheus-alertmanager:9093 -enableTCP6
restart: always
mem_limit: 512M
vmagent:
image: victoriametrics/vmagent
volumes:
- /srv/docker/volume/victoriametrics/vmagent/prometheus.yml:/prometheus.yml:ro
- /srv/docker/volume/victoriametrics/vmagent/blackbox:/blackbox:ro
extra_hosts:
- "peach.verry.org:172.17.0.1"
- "ns2.vpn6:fd00::42:2"
- "ns3.vpn6:fd00::42:3"
- "backup-01.dinoutoo.vpn6:fd00::42:9"
- "unbound-exporter:192.168.3.2"
- "quichante.vpn6:fd00::42:4"
- "click.vpn6:fd00::42:6"
- "quizz.vpn6:fd00::42:8"
- "kiwi.verry.org:2a01:e0a:cba:5f53::6"
- "banana.verry.org:2a01:e0a:cba:5f53::11"
- "backup-01.dinoutoo.vpn:192.168.42.9"
- "home.verry.org:2a01:e0a:cba:5f51::443"
- "mail.verry.org:192.168.3.5"
command: -enableTCP6 -promscrape.config=/prometheus.yml -remoteWrite.url=http://victoria:8428/api/v1/write -sortLabels -promscrape.config.strictParse=false
restart: always
mem_limit: 512M
prometheus-alertmanager:
image: prom/alertmanager
volumes:
- /srv/docker/volume/prometheus/config/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
- /srv/docker/volume/alertmanager/data:/alertmanager:rw
extra_hosts:
- "mail.verry.org:192.168.3.5"
restart: always
mem_limit: 128M
command:
- "--config.file=/etc/alertmanager/alertmanager.yml"
- "--storage.path=/alertmanager"
- "--web.external-url=https://alertmanager.verry.org/"
prometheus-blackbox:
image: prom/blackbox-exporter
volumes:
- /srv/docker/volume/prometheus/config/blackbox.yml:/etc/prometheus/blackbox.yml:ro
cap_add:
- NET_RAW
extra_hosts:
- "mail.verry.org:192.168.3.5"
restart: always
mem_limit: 128M
prometheus-postgres:
image: quay.io/prometheuscommunity/postgres-exporter
env_file: env/prometheus-postgres
restart: always
mem_limit: 128M
prometheus-redis:
image: oliver006/redis_exporter
env_file: env/prometheus-redis
restart: always
mem_limit: 128M
prometheus-hue:
image: alpine
volumes:
- /srv/docker/volume/hue_exporter:/hue_exporter:ro
command: '/hue_exporter/hue_exporter -metrics-file=/hue_exporter/hue_metrics.json -hue-url="192.168.0.3" -username="qR4H-LSFFPuMz607ALjz56GF9qE4mmmsx4qrmD7Q" -listen-address=0.0.0.0:9773'
restart: always
mem_limit: 128M
# secret:
# image: ghcr.io/openbao/openbao
# restart: always
# mem_limit: 128M
# volumes:
# - /srv/docker/volume/openbao:/openbao
promtail:
image: grafana/promtail
command: -config.file=/etc/promtail/promtail.yaml
restart: always
mem_limit: 128M
volumes:
- /srv/docker/volume/promtail:/etc/promtail:ro
victoria:
image: victoriametrics/victoria-metrics
volumes:
- victoria-metrics:/victoria
command: -storageDataPath /victoria -retentionPeriod 60 -enableTCP6
restart: always
cpus: 1
mem_limit: 8G
# dnsdist:
# image: powerdns/dnsdist-20
# volumes:
# - /srv/docker/volume/dnsdist/dnsdist.conf:/etc/dnsdist/dnsdist.conf:ro
# - ssl:/ssl
# restart: always
# mem_limit: 128M
# ports:
# - 853:853
# networks:
# default:
# ipv6_address: 2a01:e0a:cba:5f51::853
gitea:
image: codeberg.org/forgejo/forgejo:11
volumes:
- /srv/docker/volume/gitea/data:/data
restart: always
mem_limit: 512M
depends_on:
- postgres
conduit:
image: registry.gitlab.com/famedly/conduit/matrix-conduit:latest
env_file: env/conduit
volumes:
- ssl:/ssl:ro
- /srv/docker/volume/conduit/config:/config:ro
- /srv/docker/volume/conduit/db-backup:/db-backup:rw
- conduit-db:/db:rw
restart: always
mem_limit: 2G
cpus: 1
saic-mqtt-gateway:
image: "saicismartapi/saic-python-mqtt-gateway:latest"
env_file: env/saic-mqtt-gateway
volumes:
- /srv/docker/volume/saic/charging-stations.json:/usr/src/app/charging-stations.json
matrix-alertmanager:
image: jaywink/matrix-alertmanager:latest
env_file: env/matrix-alertmanager
restart: always
mem_limit: 1G
cpus: 1
authentik-server:
image: ghcr.io/goauthentik/server:2026.5
restart: unless-stopped
command: server
volumes:
- /srv/docker/volume/authentik/media:/media
- /srv/docker/volume/authentik/custom-templates:/templates
env_file:
- env/authentik-server
depends_on:
- postgres
- redis
authentik-worker:
image: ghcr.io/goauthentik/server:2026.5
restart: unless-stopped
command: worker
volumes:
- /srv/docker/volume/authentik/media:/media
- /srv/docker/volume/authentik/certs:/certs
- /srv/docker/volume/authentik/custom-templates:/templates
env_file:
- env/authentik-worker
depends_on:
- postgres
- redis
mosquitto:
image: eclipse-mosquitto
volumes:
- ssl:/ssl:ro
- /srv/docker/volume/mosquitto/config:/mosquitto/config
- /srv/docker/volume/mosquitto/data:/mosquitto/data
ports:
- 1883:1883 #mqtt
restart: always
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::1883
homeassistant:
image: ghcr.io/home-assistant/home-assistant:stable
environment:
- TZ='Europe/Paris'
volumes:
- /srv/docker/volume/homeassistant:/config
ports:
- 9000:9000 # OCPP
restart: always
uptime-kuma:
image: louislam/uptime-kuma:2
volumes:
- /srv/docker/volume/uptime-kuma/data:/app/data:rw
restart: always
mem_limit: 4G
cpus: 1
geoipupdate:
image: "maxmindinc/geoipupdate:latest"
volumes:
- "/srv/docker/volume/geoip:/usr/share/GeoIP"
env_file: env/geoipupdate
vector:
image: timberio/vector:latest-alpine
env_file:
- env/vector
volumes:
- /srv/docker/volume/vector/vector.yaml:/etc/vector/vector.yaml:ro
restart: unless-stopped
vikunja:
image: vikunja/vikunja
env_file:
- env/vikunja
volumes:
- /srv/docker/volume/vikunja:/app/vikunja/files
depends_on:
- postgres
restart: unless-stopped
ring-mqtt:
restart: unless-stopped
image: tsightler/ring-mqtt
ports:
- 8554:8554 # Enable RTSP port for external media player access
volumes:
- /srv/docker/volume/ring-mqtt:/data # Mapping of local folder to provide persistent storage
logging: #limit logs to 10m and 3 files
options:
max-size: 10m
max-file: "3"
garage:
hostname: peach-garage
image: dxflrs/garage:v2.3.0
volumes:
- /srv/docker/volume/garage/data:/var/lib/garage
- /srv/docker/volume/garage/garage.toml:/etc/garage.toml:ro
networks:
default:
ipv6_address: 2a01:e0a:cba:5f51::666
restart: always
mysql:
image: mysql:lts
volumes:
- mysql-data:/var/lib/mysql
- ssl:/ssl:ro
restart: always
lumieredesoy-ghost:
image: ghost:6-alpine
volumes:
- lumieredesoy-ghost-data:/var/lib/ghost/content
- /srv/docker/volume/lumieredesoy_ghost/config/config.production.json:/var/lib/ghost/config.production.json:ro
env_file: env/lumieredesoy-ghost
restart: always