Move volkszaehler to docker.

This commit is contained in:
2025-04-18 08:46:42 +00:00
parent fa58473ac4
commit c4101fface
3 changed files with 150 additions and 0 deletions

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: cs-git.ddnss.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: cs-git.ddnss.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"