diff --git a/peach/docker-compose.yml b/peach/docker-compose.yml index 067c56b..21484b3 100644 --- a/peach/docker-compose.yml +++ b/peach/docker-compose.yml @@ -1,17 +1,9 @@ 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: + postgres-15: external: true networks: @@ -24,25 +16,45 @@ networks: config: - subnet: 172.20.0.0/24 gateway: 172.20.0.1 - - subnet: 2a01:e0a:cba:5f51::/64 - gateway: 2a01:e0a:cba:5f51::1 + - subnet: 2a01:e0a:5b7:35f1::/64 + gateway: 2a01:e0a:5b7:35f1::1 services: - postgres: - image: postgres:17-alpine + openldap: + image: openldap-alpine volumes: - - postgres-17:/var/lib/postgresql/data + - /srv/docker/volume/openldap/config/openldap:/etc/openldap + - /srv/docker/volume/openldap/mdb:/var/lib/openldap/openldap-data + - ssl:/ssl + ports: + - 389:389 + restart: always + postgres: + image: postgres:15-alpine + volumes: + - postgres-15:/var/lib/postgresql/data - ssl:/ssl:ro + dns: fd00::3:2 environment: - POSTGRES_PASSWORD=J5PdCv9ObVh5uZCJDpndzXoUumAKn52K networks: default: - ipv6_address: 2a01:e0a:cba:5f51::5432 + ipv6_address: 2a01:e0a:5b7:35f1::5432 restart: always - caddy: - image: caddy:alpine + vault: + image: hashicorp/vault volumes: - - ssl:/ssl:ro + - /srv/docker/volume/vault:/vault + restart: always + mem_limit: 128M + dns: 192.168.3.2 + cap_add: + - IPC_LOCK + command: vault server -config /vault/config + caddy: + image: caddy-alpine + volumes: + - ssl:/etc/dehydrated:ro - /etc/caddy:/etc/caddy - /srv/www:/srv/www - /srv/www/nfs/kiwi/Videos:/srv/www/nfs/kiwi/Videos:ro @@ -51,14 +63,13 @@ services: - 443:443 - 443:443/udp - 80:80 - mem_limit: 1G + mem_limit: 128M command: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile networks: default: - ipv6_address: 2a01:e0a:cba:5f51::443 - ipv4_address: 172.20.0.250 + ipv6_address: 2a01:e0a:5b7:35f1::443 redis: - image: valkey/valkey + image: redis:alpine restart: always volumes: - /srv/docker/volume/redis/data:/data @@ -68,31 +79,35 @@ services: dns: 192.168.3.2 networks: default: - ipv6_address: 2a01:e0a:cba:5f51::6379 + ipv6_address: 2a01:e0a:5b7:35f1::6379 pdns: - image: powerdns/pdns-auth-51:latest + image: pdns-alpine 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 + - /srv/docker/volume/pdns.conf:/etc/pdns/pdns.conf:ro 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 + - "53:53/udp" + - "53:53/tcp" restart: always mem_limit: 128M dns: 192.168.3.2 networks: default: - ipv6_address: 2a01:e0a:cba:5f51::53 + ipv6_address: 2a01:e0a:5b7:35f1::53 + pdns-exporter: + image: debian:bullseye-slim + volumes: + - /srv/docker/volume/prometheus/powerdns_exporter/powerdns_exporter:/run/powerdns_exporter:ro + restart: always + mem_limit: 128M + command: /run/powerdns_exporter -api-url http://pdns:8081/api/v1/ -api-key ${API_KEY} grafana: - image: grafana/grafana:main + image: grafana/grafana volumes: - /srv/docker/volume/grafana/grafana.ini:/etc/grafana/grafana.ini restart: always mem_limit: 1G php: - image: php85-alpine + image: php83-alpine extra_hosts: - "mail.verry.org:192.168.42.3" dns: 192.168.3.2 @@ -100,22 +115,15 @@ services: 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 + loki: + image: grafana/loki volumes: - - /srv/www/yann/owncloud/nextcloud:/srv/www/yann/owncloud/nextcloud + - /srv/docker/volume/loki/config/loki-docker-config.yaml:/etc/loki/local-config.yaml:ro + - /srv/docker/volume/loki/data:/loki:rw restart: always - networks: - default: - ipv6_address: 2a01:e0a:cba:5f51::beef - ipv4_address: 172.20.0.251 + mem_limit: 1G miniflux: - image: miniflux/miniflux:latest-distroless + image: miniflux/miniflux env_file: env/miniflux restart: always mem_limit: 128M @@ -147,10 +155,9 @@ services: - "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" + - "kiwi.verry.org:2a01:e0a:5b7:35f3::6" - "backup-01.dinoutoo.vpn:192.168.42.9" - - "home.verry.org:2a01:e0a:cba:5f51::443" + - "home.verry.org:2a01:e0a:5b7:35f1::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 @@ -195,12 +202,6 @@ services: 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 @@ -208,6 +209,20 @@ services: mem_limit: 128M volumes: - /srv/docker/volume/promtail:/etc/promtail:ro + rsyslog: + image: rsyslog-alpine + restart: always + volumes: + - /srv/docker/volume/rsyslog/config/rsyslog.conf:/etc/rsyslog.conf:ro + - /srv/docker/volume/rsyslog/data:/data + ports: + - 514:514/udp + - 514:514 + dns: 192.168.3.2 + mem_limit: 128M + networks: + default: + ipv6_address: 2a01:e0a:5b7:35f1::514 victoria: image: victoriametrics/victoria-metrics volumes: @@ -215,159 +230,103 @@ services: 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 + mem_limit: 2048M + dnsdist: + image: dnsdist + volumes: + - /srv/docker/volume/dnsdist/dnsdist.conf:/etc/dnsdist.conf:ro + - ssl:/ssl + restart: always + mem_limit: 128M + ports: + - 853:853 + command: /usr/bin/dnsdist -u nobody -g nobody -C /etc/dnsdist.conf --supervised -v + networks: + default: + ipv6_address: 2a01:e0a:5b7:35f1::853 gitea: - image: codeberg.org/forgejo/forgejo:11 + image: codeberg.org/forgejo/forgejo:7 volumes: - /srv/docker/volume/gitea/data:/data restart: always mem_limit: 512M depends_on: - postgres - tuwunel: - image: ghcr.io/matrix-construct/tuwunel:latest - env_file: env/tuwunel - volumes: - - ssl:/ssl:ro - - /srv/docker/volume/tuwunel/config:/config:ro - - /srv/docker/volume/tuwunel/db-backup:/db-backup:rw - - conduit-db:/db:rw + routeros-exporter: + image: python-routeros restart: always - mem_limit: 2G - cpus: 1 - saic-mqtt-gateway: - image: "saicismartapi/saic-python-mqtt-gateway:latest" - env_file: env/saic-mqtt-gateway + mem_limit: 128M + env_file: env/routeros-exporter + whoami: + image: traefik/whoami + restart: always + environment: + - WHOAMI_NAME=iamverry + linkding: + image: sissbruecker/linkding:latest volumes: - - /srv/docker/volume/saic/charging-stations.json:/usr/src/app/charging-stations.json + - /srv/docker/volume/linkding:/etc/linkding/data + restart: always + mem_limit: 1G + env_file: env/linkding + command: uwsgi --http [::]:9090 uwsgi.ini + drone: + image: drone/drone:2 + restart: always + env_file: env/drone + drone-runner-ssh: + image: drone/drone-runner-ssh + restart: always + env_file: env/drone-runner-ssh +# minio: +# image: minio/minio +# volumes: +# - /srv/docker/volume/minio/data:/data:rw +# env_file: env/minio +# restart: always +# command: minio server /data +# mem_limit: 1G +# cpus: 0.5 + matrixsyncv3: + image: alpine:3.18 + env_file: env/matrixsyncv3 + volumes: + - /srv/docker/volume/sliding-sync/bin/syncv3:/bin/syncv3 + restart: always + command: /bin/syncv3 + mem_limit: 1G + cpus: 1 + dendrite: + image: matrixdotorg/dendrite-monolith:latest + volumes: + - /srv/docker/volume/dendrite/dendrite.yaml:/etc/dendrite/dendrite.yaml:ro + - /srv/docker/volume/dendrite/cert:/cert:ro + - /srv/docker/volume/dendrite/media:/var/dendrite/media + - /srv/docker/volume/dendrite/logs:/var/dendrite/logs + - /srv/docker/volume/dendrite/jetstream:/var/dendrite/jetstream + restart: always + mem_limit: 1G + cpus: 1 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.8 - 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.8 - 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 + image: louislam/uptime-kuma volumes: - /srv/docker/volume/uptime-kuma/data:/app/data:rw restart: always - mem_limit: 4G + mem_limit: 2G cpus: 1 + openspeedtest: + environment: + - ENABLE_LETSENCRYPT=False + - DOMAIN_NAME=speedtest.verry.org + image: "openspeedtest/latest" 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" - whoami: - image: traefik/whoami - restart: always - environment: - - WHOAMI_NAME=iamverry - garage: - hostname: peach-garage - image: dxflrs/garage:v2.4.1 - 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 diff --git a/peach/reload.sh b/peach/reload.sh index 7872629..e38915e 100755 --- a/peach/reload.sh +++ b/peach/reload.sh @@ -4,4 +4,4 @@ cd "$(dirname "$0")" #docker-compose pull --ignore-pull-failures -docker-compose up -d --remove-orphans +docker-compose up -d