From 0e54bee4b986d66356237247bef0e76ee6744a26 Mon Sep 17 00:00:00 2001 From: Yann Verry Date: Sun, 17 Apr 2022 23:08:43 +0200 Subject: [PATCH] initial commit --- README.md | 4 + peach/docker-compose.yml | 327 +++++++++++++++++++++++++++++++++++++++ peach/reload.sh | 6 + peach/update.sh | 8 + 4 files changed, 345 insertions(+) create mode 100644 README.md create mode 100644 peach/docker-compose.yml create mode 100755 peach/reload.sh create mode 100755 peach/update.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..b72aabe --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Docker-compose + +This repo contains docker compose on verry.org compute network ;-) + diff --git a/peach/docker-compose.yml b/peach/docker-compose.yml new file mode 100644 index 0000000..1722f09 --- /dev/null +++ b/peach/docker-compose.yml @@ -0,0 +1,327 @@ +version: "3.9" + +volumes: + ssl: + external: true + mariadb-data: + external: true + ghost-data: + external: true + lumieredesoy-ghost-data: + external: true + victoria-metrics: + external: true + postgres-13: + external: true + +networks: + default: + driver: bridge + enable_ipv6: true + ipam: + driver: default + config: + - subnet: 172.20.0.0/24 + gateway: 172.20.0.1 + - subnet: 2a01:e0a:49e:2b81::/64 + gateway: 2a01:e0a:49e:2b81::1 + +services: + openldap: + image: openldap-alpine + volumes: + - /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:13-alpine + volumes: + - postgres-13:/var/lib/postgresql/data + - ssl:/ssl:ro + dns: fd00::3:2 + networks: + default: + ipv6_address: 2a01:e0a:49e:2b81::5432 + restart: always + haproxy: + image: haproxy:alpine + volumes: + - ssl:/ssl:ro + - /etc/haproxy:/usr/local/etc/haproxy:ro + ports: + - 8443:443 + - 8443:443/udp + - 8000:80 + restart: always + mem_limit: 128M + dns: fd00::3:2 + networks: + default: + ipv6_address: 2a01:e0a:49e:2b81::8443 + caddy: + image: caddy:alpine + volumes: + - ssl:/etc/dehydrated:ro + - /etc/caddy:/etc/caddy + - /srv/www:/srv/www + ports: + - 443:443 + - 443:443/udp + - 80:80 + restart: always + mem_limit: 128M + dns: 192.168.3.2 + networks: + default: + ipv6_address: 2a01:e0a:49e:2b81::443 + redis: + image: redis:alpine + 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:49e:2b81::6379 + mariadb: + image: mariadb + volumes: + - mariadb-data:/var/lib/mysql + - ssl:/ssl:ro + ports: + - 3306:3306 + dns: 192.168.3.2 + networks: + default: + ipv6_address: 2a01:e0a:49e:2b81::3306 + restart: always + lumieredesoy-ghost: + image: ghost:4-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 + ghost: + image: ghost:4-alpine + volumes: + - ghost-data:/var/lib/ghost/content + - /srv/docker/volume/ghost/config.production.json:/var/lib/ghost/config.production.json:ro + env_file: env/yann-ghost + restart: always + mem_limit: 512M + pdns: + image: pdns-alpine + volumes: + - /srv/docker/volume/pdns.conf:/etc/pdns/pdns.conf:ro + ports: + - "53:53/udp" + - "53:53/tcp" + restart: always + mem_limit: 128M + dns: 192.168.3.2 + networks: + default: + ipv6_address: 2a01:e0a:49e:2b81::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 + volumes: + - /srv/docker/volume/grafana.ini:/etc/grafana/grafana.ini + restart: always + mem_limit: 128M + miniflux: + image: miniflux/miniflux + env_file: env/miniflux + restart: always + mem_limit: 128M + php80: + image: php-alpine + extra_hosts: + - "mail.verry.org:192.168.3.5" + volumes: + - /srv/www:/srv/www + extra_hosts: + - "quichante.vpn6:fd00::42:4" + - "mail.verry.org:192.168.3.5" + restart: always + dns: 192.168.3.2 + pgbouncer: + image: pgbouncer-alpine + volumes: + - /srv/docker/volume/pgbouncer:/etc/pgbouncer:ro + 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:fd00::3:2" + - "quichante.vpn6:fd00::42:4" + - "jetable.vpn6:fd00::42:5" + - "click.vpn6:fd00::42:6" + - "quizz.vpn6:fd00::42:8" + - "kiwi.verry.org:2a01:e0a:49e:2b83::6" + - "backup-01.dinoutoo.vpn:192.168.42.9" + - "rpizerow:192.168.0.85" + - "home.verry.org:2a01:e0a:49e:2b81::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 + extra_hosts: + - "mail.verry.org:192.168.3.5" + restart: always + mem_limit: 128M + prometheus-blackbox: + image: prom/blackbox-exporter + volumes: + - /srv/docker/volume/prometheus/config/blackbox.yml:/etc/prometheus/blackbox.yml + cap_add: + - NET_RAW + extra_hosts: + - "mail.verry.org:192.168.3.5" + restart: always + mem_limit: 128M + prometheus-mysqld: + image: prom/mysqld-exporter + env_file: env/prometheus-mysqld + restart: always + mem_limit: 512M + 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: mitchellrj/hue_exporter:latest + volumes: + - /srv/docker/volume/hue_exporter/home.yml:/etc/hue_exporter/config.yml:ro + restart: always + mem_limit: 128M + promtail: + image: grafana/promtail + command: -config.file=/etc/promtail/promtail.yaml + restart: always + 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:49e:2b81::514 + linky-exporter: + userns_mode: "host" + image: debian:bullseye-slim + volumes: + - /srv/docker/volume/teleinfo/linky-exporter:/linky + command: /linky/linky-exporter --device="/dev/ttyUSB0" -b 1200 --parity="E" + restart: always + mem_limit: 128M + devices: + - "/dev/ttyUSB0:/dev/ttyUSB0" + victoria: + image: victoriametrics/victoria-metrics + volumes: + - victoria-metrics:/victoria + command: -storageDataPath /victoria -retentionPeriod 36 -enableTCP6 + restart: always + happydns: + image: happydns/happydns + env_file: env/happydns + volumes: + - /srv/docker/volume/happydns:/data + restart: always + mem_limit: 128M + 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:49e:2b81::853 + gitea: + image: gitea/gitea:dev + volumes: + - /srv/docker/volume/gitea/data:/data + restart: always + mem_limit: 512M + depends_on: + - postgres + routeros-exporter: + image: python-routeros + restart: always + mem_limit: 128M + env_file: env/routeros-exporter + synapse: + image: matrixdotorg/synapse:latest + volumes: + - /srv/docker/volume/synapse/data:/data + restart: always + whoami: + image: traefik/whoami + restart: always + environment: + - WHOAMI_NAME=iamverry + bitwarden: + image: vaultwarden/server + volumes: + - /srv/docker/volume/bitwarden:/data + restart: always + mem_limit: 128M + env_file: env/vaultwarden + geoipupdate: + image: "maxmindinc/geoipupdate:latest" + volumes: + - "/srv/docker/volume/geoip:/usr/share/GeoIP" + env_file: env/geoipupdate diff --git a/peach/reload.sh b/peach/reload.sh new file mode 100755 index 0000000..719cfed --- /dev/null +++ b/peach/reload.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# This script just update + +cd "$(dirname "$0")" + +docker-compose up -d diff --git a/peach/update.sh b/peach/update.sh new file mode 100755 index 0000000..1a033ed --- /dev/null +++ b/peach/update.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +# fetch latest version +docker-compose pull --ignore-pull-failures +# reload if needed +docker-compose up -d