Compare commits
43 Commits
dfe6ad409e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| e9abcf80e6 | |||
| a693bca887 | |||
| 4d0adf3a00 | |||
| 3768ff4c44 | |||
| 03173938ad | |||
| 84a4fff86f | |||
| 918a70a708 | |||
| 707172471c | |||
| 1bbe8228c2 | |||
| cf36d49339 | |||
| 734d15407e | |||
| 2d4393a451 | |||
| e7b6f7245d | |||
| d7b433609e | |||
| 020c423707 | |||
| 23ff2b80fe | |||
| 8ed1bc894d | |||
| b4e20ec389 | |||
| edc9321abd | |||
| ea5b945211 | |||
| b2babba054 | |||
| 202c2adfca | |||
| 3b3e5bddd1 | |||
| 1cb3dbe620 | |||
| 42e03e31f7 | |||
| 13fec90ac3 | |||
| af4de50a48 | |||
| c4101fface | |||
| fa58473ac4 | |||
| 03dca4c7eb | |||
| 1c9487cfe5 | |||
| 82a394a0d4 | |||
| 674db6d97d | |||
| f36fe8d63d | |||
| 1fd352b5fe | |||
| f49fd31b66 | |||
| 9819f9086e | |||
| 4429a8a07b | |||
| 0862ba0faf | |||
| 003e2ce92b | |||
| 88ad23f8b3 | |||
| 858be09f58 | |||
| 0b01c8422d |
@@ -38,9 +38,16 @@ 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:
|
||||
image: mysql:8
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
volumes:
|
||||
tv-data:
|
||||
name: tv-data
|
||||
tv-recordings:
|
||||
name: tv-recordings
|
||||
jellyfin-config:
|
||||
name: jellyfin-config
|
||||
jellyfin-cache:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -12,29 +12,8 @@ volumes:
|
||||
name: grafana
|
||||
|
||||
services:
|
||||
apc:
|
||||
image: cs-registry.ddnss.de/home/apc
|
||||
container_name: apc
|
||||
hostname: apc
|
||||
tty: true
|
||||
devices:
|
||||
- /dev/usb/hiddev0
|
||||
networks:
|
||||
- proxy
|
||||
- monitoring
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.apc.rule=Host(`apc.lan`)"
|
||||
- "traefik.http.routers.apc.entrypoints=web"
|
||||
- "traefik.http.routers.apc.service=apc"
|
||||
- "traefik.http.services.apc.loadbalancer.server.port=9162"
|
||||
ports:
|
||||
- "3551:3551/tcp"
|
||||
- "3551:3551/udp"
|
||||
restart: unless-stopped
|
||||
|
||||
prometheus:
|
||||
image: cs-registry.ddnss.de/home/prometheus
|
||||
image: gitea.fam-steinle.de/home/prometheus
|
||||
container_name: prometheus
|
||||
hostname: prometheus
|
||||
restart: unless-stopped
|
||||
@@ -50,7 +29,7 @@ services:
|
||||
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
|
||||
|
||||
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
|
||||
@@ -118,10 +97,9 @@ services:
|
||||
- ./watchtower-config.json:/config.json
|
||||
environment:
|
||||
WATCHTOWER_INCLUDE_STOPPED: true
|
||||
WATCHTOWER_MONITOR_ONLY: true
|
||||
WATCHTOWER_MONITOR_ONLY: false
|
||||
WATCHTOWER_CLEANUP: true
|
||||
WATCHTOWER_REMOVE_VOLUMES: true
|
||||
WATCHTOWER_WARN_ON_HEAD_FAILURE: "never"
|
||||
WATCHTOWER_SCHEDULE: "0 20 8 * * *"
|
||||
WATCHTOWER_NOTIFICATIONS: "shoutrrr"
|
||||
WATCHTOWER_NOTIFICATION_URL: "mattermost://watchtower@cs-mm.ddnss.de/og4ckuqet7fafb8kjuaigzuh7c"
|
||||
WATCHTOWER_NOTIFICATION_TEMPLATE: "{{range .}}{{.Time.Format \"2006-01-02 15:04:05\"}} ({{.Level}}): {{.Message}}{{println}}{{end}}"
|
||||
WATCHTOWER_SCHEDULE: "0 20 4 * * *"
|
||||
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
{
|
||||
"auths": {
|
||||
"cs-registry.ddnss.de": {
|
||||
"auth": "Y2hyaXM6U2VjcmV0MTI="
|
||||
},
|
||||
"https://index.docker.io/v1/": {
|
||||
"auth": "Y3MyMjExOkU2U2Njc3ViRFJrYUppMlNMVSUh"
|
||||
},
|
||||
"cs-git.ddnss.de": {
|
||||
"gitea.fam-steinle.de": {
|
||||
"auth": "Y2hyaXM6cScsXEgoT2Q6RzMpLlh2PCMhNVA="
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -26,7 +26,7 @@ services:
|
||||
- "traefik.http.routers.power-consumption.entrypoints=web"
|
||||
- "traefik.http.routers.power-consumption.rule=Host(`power-consumption.lan`)"
|
||||
- "traefik.http.routers.power-consumption.service=power-consumption"
|
||||
- "traefik.http.services.power-consumption.loadbalancer.server.port=80"
|
||||
- "traefik.http.services.power-consumption.loadbalancer.server.port=8080"
|
||||
|
||||
power-consumption-db:
|
||||
image: mysql:8
|
||||
|
||||
@@ -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
13
vz/config.php
Normal 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
44
vz/config.yaml
Normal 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
93
vz/docker-compose.yaml
Normal 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"
|
||||
|
||||
Reference in New Issue
Block a user