Compare commits

..

32 Commits

Author SHA1 Message Date
e9abcf80e6 Update kimai stack. 2025-11-20 11:26:43 +00:00
a693bca887 Update well known routes. 2025-11-20 11:22:20 +00:00
4d0adf3a00 Update paperless stack. 2025-09-08 13:47:50 +00:00
3768ff4c44 Add new configuration to work with new samba release. 2025-09-08 13:16:52 +00:00
03173938ad Use external domain for semaphore. 2025-05-16 12:00:14 +00:00
84a4fff86f Add pihole header rules to access from homer. 2025-05-16 11:52:09 +00:00
918a70a708 Fix typo in watchtower environment. 2025-05-09 10:14:44 +00:00
707172471c Update cadvisor. 2025-05-09 10:10:25 +00:00
1bbe8228c2 Move duplicati to stable channel use public domain. 2025-05-08 10:29:32 +00:00
cf36d49339 Fine tune samba and document user creation. 2025-05-07 12:45:47 +00:00
734d15407e Reactivate samba in docker. 2025-05-07 14:09:21 +02:00
2d4393a451 Change images for paperless. 2025-05-07 06:42:54 +00:00
e7b6f7245d Change gateway for ipv6. 2025-05-07 06:41:24 +00:00
d7b433609e Reenable ipv6 netzwork and change runner configuration. 2025-05-07 06:40:34 +00:00
020c423707 Remove named volume for consume. 2025-05-07 06:39:25 +00:00
23ff2b80fe Update paperless stack. 2025-05-07 06:37:50 +00:00
8ed1bc894d Adjust watchtower config to new registry url. 2025-05-05 07:52:39 +00:00
b4e20ec389 Change gitea web address. 2025-05-03 14:24:15 +00:00
edc9321abd Use new web address for vaultwarden. 2025-05-03 10:28:48 +00:00
ea5b945211 Remove speedtest from monitoring stack. Remove watchtower notifications. 2025-05-03 10:28:15 +00:00
b2babba054 Change giteas web address. 2025-05-03 10:26:34 +00:00
202c2adfca Use new traefik version. 2025-05-03 10:25:53 +00:00
3b3e5bddd1 Change semaphores web address. 2025-05-03 10:22:23 +00:00
1cb3dbe620 Remove obsolete dvb volume and register new gitea runner. 2025-04-28 13:09:05 +00:00
42e03e31f7 Remove deprecated .gitignore and glances setup. Change watchtower message for minisforum. 2025-04-18 13:38:19 +00:00
13fec90ac3 Change MAC addresses for minisforum. 2025-04-18 13:34:51 +00:00
af4de50a48 Use apache image for kimai for easier updating. 2025-04-18 09:09:43 +00:00
c4101fface Move volkszaehler to docker. 2025-04-18 08:46:42 +00:00
fa58473ac4 Use MAC address for unbound. 2025-04-18 10:33:19 +02:00
03dca4c7eb Merge branch 'master' of https://cs-git.ddnss.de/home/docker 2025-04-09 12:44:50 +02:00
1c9487cfe5 Change glances configuration. 2025-04-09 12:38:47 +02:00
82a394a0d4 Limit duplicati ressources. 2025-04-09 12:33:48 +02:00
19 changed files with 248 additions and 131 deletions

View File

@@ -38,9 +38,15 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.routers.semaphore.entrypoints=web"
- "traefik.http.routers.semaphore.rule=Host(`semaphore.lan`)"
- "traefik.http.routers.semaphore.service=semaphore"
- "traefik.http.services.semaphore.loadbalancer.server.port=3000"
- "traefik.http.routers.semaphore.rule=Host(`ansible.fam-steinle.de`)"
- "traefik.http.routers.semaphore.middlewares=semaphore"
- "traefik.http.middlewares.semaphore.redirectscheme.scheme=https"
- "traefik.http.routers.semaphore-secure.entrypoints=websecure"
- "traefik.http.routers.semaphore-secure.rule=Host(`ansible.fam-steinle.de`)"
- "traefik.http.routers.semaphore-secure.service=semaphore-secure"
- "traefik.http.routers.semaphore-secure.tls=true"
- "traefik.http.routers.semaphore-secure.tls.certresolver=myresolver"
- "traefik.http.services.semaphore-secure.loadbalancer.server.port=3000"
- "com.centurylinklabs.watchtower.monitor-only=true"
semaphore-db:

View File

@@ -7,27 +7,37 @@ volumes:
name: duplicati-conf
nextcloud-data:
external: true
gitea:
external: true
services:
duplicati:
image: duplicati/duplicati:beta
image: duplicati/duplicati:stable
restart: unless-stopped
container_name: duplicati
hostname: duplicati
ports:
- "8200:8200"
volumes:
- duplicati-conf:/data
- nextcloud-data:/nextcloud:ro
- gitea:/gitea:ro
- /media/backup:/backup
networks:
- proxy
environment:
DUPLICATI__DISABLE_DB_ENCRYPTION: true
DUPLICATI__WEBSERVICE_ALLOWEDHOSTNAMES: backup.fam-steinle.de
networks:
- proxy
ports:
- "8200:8200"
labels:
- "traefik.enable=true"
- "traefik.http.routers.duplicati.entrypoints=web"
- "traefik.http.routers.duplicati.rule=Host(`duplicati.lan`)"
- "traefik.http.services.duplicati.loadbalancer.server.port=8200"
- "traefik.http.routers.duplicati.rule=Host(`backup.fam-steinle.de`)"
- "traefik.http.routers.duplicati.middlewares=duplicati"
- "traefik.http.middlewares.duplicati.redirectscheme.scheme=https"
- "traefik.http.routers.duplicati-secure.entrypoints=websecure"
- "traefik.http.routers.duplicati-secure.rule=Host(`backup.fam-steinle.de`)"
- "traefik.http.routers.duplicati-secure.service=duplicati-secure"
- "traefik.http.routers.duplicati-secure.tls=true"
- "traefik.http.routers.duplicati-secure.tls.certresolver=myresolver"
- "traefik.http.services.duplicati-secure.loadbalancer.server.port=8200"

View File

@@ -2,6 +2,7 @@ networks:
proxy:
external: false
name: proxy
enable_ipv6: true
volumes:
letsencrypt:
@@ -11,7 +12,7 @@ volumes:
services:
traefik:
image: traefik:v2.11
image: traefik:v3
container_name: traefik
restart: unless-stopped
command:
@@ -20,7 +21,6 @@ services:
- --providers.docker=true
- --providers.docker.network=proxy
- --providers.docker.exposedByDefault=false
- --providers.docker.swarmMode=false
- --entryPoints.web.address=:80
- --entryPoints.websecure.address=:443
- --entryPoints.ssh.address=:222/tcp

View File

@@ -1,8 +1,6 @@
volumes:
tv-data:
name: tv-data
tv-recordings:
name: tv-recordings
jellyfin-config:
name: jellyfin-config
jellyfin-cache:

View File

@@ -4,6 +4,7 @@ networks:
gitea:
name: gitea
external: false
enable_ipv6: true
volumes:
gitea:
@@ -42,15 +43,14 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.routers.git.entrypoints=web"
- "traefik.http.routers.git.rule=Host(`cs-git.ddnss.de`)"
- "traefik.http.routers.git.rule=Host(`gitea.fam-steinle.de`)"
- "traefik.http.routers.git.middlewares=git"
- "traefik.http.middlewares.git.redirectscheme.scheme=https"
- "traefik.http.routers.git-secure.entrypoints=websecure"
- "traefik.http.routers.git-secure.rule=Host(`cs-git.ddnss.de`)"
- "traefik.http.routers.git-secure.rule=Host(`gitea.fam-steinle.de`)"
- "traefik.http.routers.git-secure.service=git-secure"
- "traefik.http.routers.git-secure.tls=true"
- "traefik.http.routers.git-secure.tls.certresolver=myresolver"
- "traefik.http.routers.git-secure.tls.domains[0].main=cs-git.ddnss.de"
- "traefik.http.services.git-secure.loadbalancer.server.port=3000"
- "traefik.tcp.routers.git-ssh.entrypoints=ssh"
- "traefik.tcp.routers.git-ssh.rule=HostSNI(`*`)"
@@ -76,13 +76,14 @@ services:
runner:
image: gitea/act_runner
restart: always
privileged: true
depends_on:
- gitea
volumes:
- gitea-runner:/data
- /var/run/docker.sock:/var/run/docker.sock
environment:
- GITEA_INSTANCE_URL=https://cs-git.ddnss.de
- GITEA_RUNNER_REGISTRATION_TOKEN=flpCcwO0Dw6u4jtWT2wMBrBWuFZ8HDdS4qV277tH
networks:
- gitea
environment:
- GITEA_INSTANCE_URL=https://gitea.fam-steinle.de
- GITEA_RUNNER_REGISTRATION_TOKEN=FQDt05qG37BLO0OBl6eX94aNNVE9Ni5nFdeVFoKm

View File

@@ -6,14 +6,16 @@ networks:
external: false
volumes:
kimai:
name: kimai
kimai-db:
name: kimai-db
kimai-data:
name: kimai-data
kimai-plugins:
name: kimai-plugins
services:
kimai:
image: kimai/kimai2:fpm
image: kimai/kimai2:apache
container_name: kimai
hostname: kimai
restart: unless-stopped
@@ -21,33 +23,20 @@ services:
ADMINMAIL: ${ADMIN_USER}
ADMINPASS: ${ADMIN_PASS}
DATABASE_URL: mysql://${DB_USER}:${DB_PASS}@kimai-db/${DB_NAME}?charset=utf8&serverVersion=8.1.0
TRUSTED_HOSTS: kimai.lan,kimai-web,localhost,127.0.0.1
APP_SECRET: ${APP_SECRET}
depends_on:
- kimai-db
networks:
- proxy
- kimai
volumes:
- kimai:/opt/kimai/public
kimai-web:
image: nginx:alpine
container_name: kimai-web
hostname: kimai-web
restart: unless-stopped
- kimai-data:/opt/kimai/var/data
- kimai-plugins:/opt/kimai/var/plugins
labels:
- "traefik.enable=true"
- "traefik.http.routers.kimai.entrypoints=web"
- "traefik.http.routers.kimai.rule=Host(`kimai.lan`)"
- "traefik.http.services.kimai.loadbalancer.server.port=80"
depends_on:
- kimai
networks:
- proxy
- kimai
volumes:
- kimai:/opt/kimai/public:ro
- ${PWD}/kimai.conf:/etc/nginx/conf.d/default.conf
- "traefik.http.services.kimai.loadbalancer.server.port=8001"
kimai-db:
image: mysql:8

View File

@@ -1,25 +0,0 @@
server {
listen 80;
index index.php;
server_name kimai.lan;
root /opt/kimai/public;
# cache static asset files
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass kimai:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
}

View File

@@ -1 +0,0 @@
speedtest.csv

View File

@@ -13,7 +13,7 @@ volumes:
services:
prometheus:
image: cs-git.ddnss.de/home/prometheus
image: gitea.fam-steinle.de/home/prometheus
container_name: prometheus
hostname: prometheus
restart: unless-stopped
@@ -28,43 +28,8 @@ services:
- "traefik.http.routers.prometheus.service=prometheus"
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
glances:
image: cs-git.ddnss.de/home/glances
container_name: glances
restart: unless-stopped
pid: host
networks:
- proxy
- monitoring
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/os-release:/etc/os-release:ro
environment:
GLANCES_OPT: "-w"
labels:
- "traefik.enable=true"
- "traefik.http.routers.glances.rule=Host(`glances.lan`)"
- "traefik.http.routers.glances.entrypoints=web"
- "traefik.http.routers.glances.service=glances"
- "traefik.http.services.glances.loadbalancer.server.port=61208"
speedtest:
image: cs-git.ddnss.de/home/speedtest-web
container_name: speedtest-web
restart: unless-stopped
volumes:
- /media/backup/speedtest.csv:/var/www/html/speedtest.csv
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.speedtest.rule=Host(`speedtest.fam-steinle.de`)"
- "traefik.http.routers.speedtest.entrypoints=web"
- "traefik.http.routers.speedtest.service=speedtest"
- "traefik.http.services.speedtest.loadbalancer.server.port=8080"
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.51.0
image: gcr.io/cadvisor/cadvisor:v0.52.1
container_name: cadvisor
hostname: cadvisor
restart: unless-stopped
@@ -133,11 +98,8 @@ services:
environment:
WATCHTOWER_INCLUDE_STOPPED: true
WATCHTOWER_MONITOR_ONLY: false
WATCHWOWER_CLEANUP: true
WATCHTOWER_CLEANUP: true
WATCHTOWER_REMOVE_VOLUMES: true
WATCHTOWER_WARN_ON_HEAD_FAILURE: "never"
WATCHTOWER_SCHEDULE: "0 20 4 * * *"
WATCHTOWER_NOTIFICATIONS: "shoutrrr"
WATCHTOWER_NOTIFICATION_URL: "mattermost://watchtower@cs-mm.ddnss.de/og4ckuqet7fafb8kjuaigzuh7c"
WATCHTOWER_NOTIFICATION_TEMPLATE: "{{range .}} Homeserver - {{.Time.Format \"2006-01-02 15:04:05\"}} ({{.Level}}): {{.Message}}{{println}}{{end}}"

View File

@@ -3,7 +3,7 @@
"https://index.docker.io/v1/": {
"auth": "Y3MyMjExOkU2U2Njc3ViRFJrYUppMlNMVSUh"
},
"cs-git.ddnss.de": {
"gitea.fam-steinle.de": {
"auth": "Y2hyaXM6cScsXEgoT2Q6RzMpLlh2PCMhNVA="
}
}

View File

@@ -12,10 +12,10 @@ networks:
config:
- subnet: 192.168.178.0/24
gateway: 192.168.178.1
ip_range: 192.168.178.2/29 # 2 - 6
ip_range: 192.168.178.0/29
- subnet: fd00::/64
gateway: fd00::de15:c8ff:feec:9960
ip_range: fd00::1/80
gateway: fd00::4a5d:35ff:fed9:b94f
ip_range: fd00::0/80
name: home
proxy:
external: true
@@ -43,11 +43,12 @@ services:
PIHOLE_DNS_: 192.168.178.3;192.168.178.3
VIRTUAL_HOST: pihole.fam-steinle.de
CORS_HOSTS: homer.fam-steinle.de
mac_address: d0:ca:ab:cd:ef:01
mac_address: d0:ca:ab:cd:ef:02
networks:
home:
ipv4_address: 192.168.178.2
ipv6_address: fd00::2
proxy:
ports:
- "80:80"
- "443:443"
@@ -68,6 +69,8 @@ services:
- "traefik.http.routers.pihole-secure.middlewares=pihole-secure"
- "traefik.http.middlewares.pihole-secure.headers.addvaryheader=true"
- "traefik.http.middlewares.pihole-secure.headers.accesscontrolalloworiginlist=https://homer.fam-steinle.de"
- "traefik.http.middlewares.pihole-secure.headers.accesscontrolallowheaders=*"
- "traefik.http.middlewares.pihole-secure.headers.accesscontrolallowmethods=GET,POST,OPTIONS"
- "traefik.http.routers.pihole-secure.service=pihole-secure"
- "traefik.http.routers.pihole-secure.tls=true"
- "traefik.http.routers.pihole-secure.tls.certresolver=myresolver"
@@ -77,6 +80,7 @@ services:
image: mvance/unbound
container_name: unbound
hostname: unbound
mac_address: 02:42:c0:a8:b2:04
networks:
home:
ipv4_address: 192.168.178.3
@@ -101,11 +105,36 @@ services:
environment:
NFS_DIR: /nfs-share
NFS_DOMAIN: 192.168.178.0/24
NFS_OPTION: rw,sync,no_subtree_check,nohide,no_root_squash
NFS_OPTION: rw,sync,no_subtree_check,nohide,no_root_squash,fsid=0
volumes:
- /media/backup:/nfs-share
restart: unless-stopped
# Exec into container at first start
# and create the user and the samba password:
# adduser USER
# smbpasswd -a USER
samba:
image: gists/samba-server
container_name: samba
hostname: samba
networks:
- networking
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
environment:
PUID: 1000
GUID: 1000
TZ: Europe/Berlin
PASSWORD: lmaa,dw.
restart: unless-stopped
volumes:
- ./smb.conf:/etc/samba/smb.conf:ro
- /media/backup:/mnt
sftp:
image: drakkan/sftpgo:alpine-slim
container_name: sftp

View File

@@ -5,6 +5,7 @@
security = user
guest account = nobody
map to guest = Bad User
host msdfs = no
name resolve order = bcast host lmhosts wins
load printers = no

View File

@@ -60,12 +60,15 @@ services:
- "traefik.http.routers.nextcloud-secure.tls=true"
- "traefik.http.routers.nextcloud-secure.tls.certresolver=myresolver"
- "traefik.http.services.nextcloud-secure.loadbalancer.server.port=80"
- "traefik.http.routers.nextcloud-secure.middlewares=nextcloud-secure,nextcloud-redirect"
- "traefik.http.routers.nextcloud-secure.middlewares=nextcloud-secure,nextcloud-redirect-1,nextcloud-redirect-2"
- "traefik.http.middlewares.nextcloud-secure.headers.stsSeconds=15552000"
- "traefik.http.middlewares.nextcloud-secure.headers.stsPreload=true"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.permanent=true"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.replacement=https://$${1}/remote.php/dav/"
- "traefik.http.middlewares.nextcloud-redirect-1.redirectregex.permanent=true"
- "traefik.http.middlewares.nextcloud-redirect-1.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav"
- "traefik.http.middlewares.nextcloud-redirect-1.redirectregex.replacement=https://$${1}/remote.php/dav/"
- "traefik.http.middlewares.nextcloud-redirect-2.redirectregex.permanent=true"
- "traefik.http.middlewares.nextcloud-redirect-2.redirectregex.regex=^https://(.*)(/.well-known[^#]*)"
- "traefik.http.middlewares.nextcloud-redirect-2.redirectregex.replacement=https://$${1}/index.php$${2}"
depends_on:
- nextcloud
networks:

View File

@@ -11,11 +11,10 @@ volumes:
paperless-data:
paperless-media:
paperless-export:
paperless-consume:
services:
broker:
image: docker.io/library/redis:7
image: redis:8
restart: unless-stopped
volumes:
- paperless-redis:/data
@@ -23,7 +22,7 @@ services:
- paperless
db:
image: docker.io/library/postgres:17
image: postgres:17
restart: unless-stopped
volumes:
- paperless-db:/var/lib/postgresql/data
@@ -42,11 +41,6 @@ services:
- broker
- gotenberg
- tika
healthcheck:
test: [ "CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000" ]
interval: 30s
timeout: 10s
retries: 5
volumes:
- paperless-data:/usr/src/paperless/data
- paperless-media:/usr/src/paperless/media
@@ -81,7 +75,7 @@ services:
gotenberg:
image: docker.io/gotenberg/gotenberg:8.7
image: gotenberg/gotenberg:8.22
restart: unless-stopped
command:
- "gotenberg"
@@ -91,7 +85,7 @@ services:
- paperless
tika:
image: ghcr.io/paperless-ngx/tika:latest
image: apache/tika:latest
restart: unless-stopped
networks:
- paperless

View File

@@ -11,7 +11,7 @@ volumes:
services:
power-consumption:
image: cs-git.ddnss.de/home/power-consumption:latest
image: gitea.fam-steinle.de/home/power-consumption:latest
container_name: power-consumption
depends_on:
- power-consumption-db

View File

@@ -18,11 +18,11 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.routers.vault.entrypoints=web"
- "traefik.http.routers.vault.rule=Host(`cs-vault.ddnss.de`)"
- "traefik.http.routers.vault.rule=Host(`vault.fam-steinle.de`)"
- "traefik.http.routers.vault.middlewares=vault"
- "traefik.http.middlewares.vault.redirectscheme.scheme=https"
- "traefik.http.routers.vault-secure.entrypoints=websecure"
- "traefik.http.routers.vault-secure.rule=Host(`cs-vault.ddnss.de`)"
- "traefik.http.routers.vault-secure.rule=Host(`vault.fam-steinle.de`)"
- "traefik.http.routers.vault-secure.service=vault-secure"
- "traefik.http.routers.vault-secure.tls=true"
- "traefik.http.routers.vault-secure.tls.certresolver=myresolver"

13
vz/config.php Normal file
View File

@@ -0,0 +1,13 @@
<?php
$config['remote']['db_host'] = 'vz-db';
$config['remote']['db_name'] = 'vz';
$config['remote']['db_user'] = 'vz';
$config['remote']['db_pass'] = 'kd09234jdf';
$config['local']['db_host'] = 'consumption-db';
$config['local']['db_name'] = 'consumption';
$config['local']['db_user'] = 'consumption';
$config['local']['db_pass'] = 'kd09234jdf';
return $config;

44
vz/config.yaml Normal file
View File

@@ -0,0 +1,44 @@
# general settings overriding php configuration
php:
timezone: Europe/Berlin
locale: ['de_DE', 'en_US', 'C']
# Doctrine database configuration
# http://www.doctrine-project.org/projects/doctrine-dbal/en/2.6
db:
driver: pdo_mysql
host: vz-db
# port: 3306
user: vz
password: kd09234jdf
charset: utf8
dbname: vz
path: volkszaehler # only used for sqlite
# db admin credentials (used by doctrine cli and setup script)
admin:
user: vz-admin
password: volkszaehler
# database optimizer - leave empty for automatic
# optimizer: Volkszaehler\Interpreter\SQL\MySQLOptimizer # provides additional group=15m setting for demo purposes
# push server for realtime frontend updates
push:
server: 5582
broadcast: 8082
# routes for wamp access
wamp:
- /
- /ws
# routes for plain web socket access
websocket:
- /socket
network:
# limit maximum POST body size, e.g. 4096
postlimit: false
# enable debug messages by default if true
debug: false

93
vz/docker-compose.yaml Normal file
View File

@@ -0,0 +1,93 @@
networks:
proxy:
name: proxy
external: true
vz:
name: vz
external: false
volumes:
vz-db:
name: vz-db
consumption-db:
name: consumption-db
services:
consumption:
image: gitea.fam-steinle.de/home/power-consumption
container_name: consumption
depends_on:
- consumption-db
- vz-db
restart: unless-stopped
networks:
- proxy
- vz
volumes:
- ./config.php:/var/www/html/config/config_local.php
labels:
- "traefik.enable=true"
- "traefik.http.routers.consumption.entrypoints=web"
- "traefik.http.routers.consumption.rule=Host(`consumption.lan`)"
- "traefik.http.services.consumnption.loadbalancer.server.port=8080"
consumption-db:
image: mysql:8
container_name: consumption-db
networks:
- vz
volumes:
- consumption-db:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: kd09234jdf
MYSQL_USER: consumption
MYSQL_PASSWORD: kd09234jdf
MYSQL_DATABASE: consumption
healthcheck:
test: [ "CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)" ]
vz-logger:
image: gitea.fam-steinle.de/home/vzlogger
container_name: vz-logger
networks:
- vz
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
restart: unless-stopped
vz-db:
image: mysql:8
container_name: vz-db
networks:
- vz
volumes:
- vz-db:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: kd09234jdf
MYSQL_USER: vz
MYSQL_PASSWORD: kd09234jdf
MYSQL_DATABASE: vz
healthcheck:
test: [ "CMD-SHELL", "mysqladmin ping -u$${DB_USER} -p$$(DB_PASS)" ]
volkszaehler:
image: volkszaehler/volkszaehler
container_name: volkszaehler
volumes:
- ./config.yaml:/vz/etc/config.yaml
links:
- vz-db
depends_on:
- vz-db
networks:
- proxy
- vz
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.vz.entrypoints=web"
- "traefik.http.routers.vz.rule=Host(`vz.lan`)"
- "traefik.http.services.vz.loadbalancer.server.port=8080"