initial commit

main
Yann Verry 2022-04-17 23:08:43 +07:00
commit 0e54bee4b9
4 changed files with 345 additions and 0 deletions

@ -0,0 +1,4 @@
# Docker-compose
This repo contains docker compose on verry.org compute network ;-)

@ -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

@ -0,0 +1,6 @@
#!/bin/bash
# This script just update
cd "$(dirname "$0")"
docker-compose up -d

@ -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