203 lines
4.9 KiB
YAML
203 lines
4.9 KiB
YAML
services:
|
|
mariadb:
|
|
image: mariadb:11.4
|
|
container_name: seltd-mariadb
|
|
restart: unless-stopped
|
|
environment:
|
|
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-SE3112}
|
|
MARIADB_ROOT_HOST: mariadb
|
|
MARIADB_DATABASE: wago
|
|
MARIADB_USER: wago
|
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD:-3112}
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mariadb_data:/var/lib/mysql
|
|
- ./docker/mariadb/init:/docker-entrypoint-initdb.d:ro
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 15s
|
|
timeout: 10s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: redis:7.4-alpine
|
|
container_name: seltd-redis
|
|
restart: unless-stopped
|
|
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
- ./docker/redis/redis.conf:/usr/local/etc/redis/redis.conf:ro
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
api:
|
|
build:
|
|
context: ./api
|
|
container_name: seltd-api
|
|
restart: unless-stopped
|
|
environment:
|
|
PORT: 8080
|
|
DB_HOST: mariadb
|
|
DB_PORT: 3306
|
|
DB_NAME: wago
|
|
DB_USER: root
|
|
DB_PASSWORD: ${MARIADB_ROOT_PASSWORD:-SE3112}
|
|
DB_PASSWORD_FALLBACK: ${DB_PASSWORD_FALLBACK:-root}
|
|
REDIS_URL: redis://redis:6379
|
|
JWT_SECRET: ${JWT_SECRET:-change-me}
|
|
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
|
|
ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@example.com}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-ChangeMe123!}
|
|
ADMIN_NAME: ${ADMIN_NAME:-System Admin}
|
|
CORS_ORIGIN: ${CORS_ORIGIN:-*}
|
|
ports:
|
|
- "18080:8080"
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
web:
|
|
build:
|
|
context: ./web
|
|
container_name: seltd-web
|
|
restart: unless-stopped
|
|
environment:
|
|
VITE_API_PORT: ${VITE_API_PORT:-18080}
|
|
ports:
|
|
- "5173:5173"
|
|
depends_on:
|
|
- api
|
|
|
|
collector:
|
|
build:
|
|
context: ./collector
|
|
container_name: seltd-collector
|
|
restart: unless-stopped
|
|
environment:
|
|
PORT: 18110
|
|
DB_HOST: mariadb
|
|
DB_PORT: 3306
|
|
DB_NAME: wago
|
|
DB_USER: root
|
|
DB_PASSWORD: ${MARIADB_ROOT_PASSWORD:-SE3112}
|
|
POLL_TICK_MS: ${POLL_TICK_MS:-1000}
|
|
BACNET_COLLECTOR_URL: ${BACNET_COLLECTOR_URL:-http://172.17.0.1:18111}
|
|
ports:
|
|
- "18110:18110"
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
volumes:
|
|
- collector_data:/app/data
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
bacnet-collector:
|
|
condition: service_started
|
|
|
|
symcon-collector:
|
|
build:
|
|
context: ./symcon-collector
|
|
container_name: seltd-symcon-collector
|
|
restart: unless-stopped
|
|
environment:
|
|
DB_HOST: mariadb
|
|
DB_PORT: 3306
|
|
DB_NAME: wago
|
|
DB_USER: root
|
|
DB_PASSWORD: ${MARIADB_ROOT_PASSWORD:-SE3112}
|
|
SOURCES_FILE: /app/collector-data/sources.json
|
|
SYMCON_POLL_TICK_MS: ${SYMCON_POLL_TICK_MS:-1000}
|
|
SYMCON_MAX_CONCURRENCY: ${SYMCON_MAX_CONCURRENCY:-4}
|
|
volumes:
|
|
- collector_data:/app/collector-data:ro
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
collector:
|
|
condition: service_started
|
|
|
|
bacnet-collector:
|
|
build:
|
|
context: ./bacnet-collector
|
|
container_name: seltd-bacnet-collector
|
|
restart: unless-stopped
|
|
environment:
|
|
PORT: 18111
|
|
BACNET_SCAN_TIMEOUT: ${BACNET_SCAN_TIMEOUT:-12000}
|
|
BACNET_POINT_LIMIT: ${BACNET_POINT_LIMIT:-2000}
|
|
BACNET_BROADCAST_FALLBACKS: ${BACNET_BROADCAST_FALLBACKS:-}
|
|
BACNET_UNICAST_DELAY_MS: ${BACNET_UNICAST_DELAY_MS:-120}
|
|
network_mode: "host"
|
|
|
|
runner:
|
|
build:
|
|
context: ./runner
|
|
container_name: seltd-runner
|
|
restart: unless-stopped
|
|
environment:
|
|
REDIS_URL: redis://redis:6379
|
|
DB_HOST: mariadb
|
|
DB_PORT: 3306
|
|
DB_NAME: wago
|
|
DB_USER: root
|
|
DB_PASSWORD: ${MARIADB_ROOT_PASSWORD:-SE3112}
|
|
EXPORT_DIR: /exports
|
|
RUNNER_TICK_MS: ${RUNNER_TICK_MS:-1000}
|
|
RUNNER_TIMEZONE: ${RUNNER_TIMEZONE:-Europe/Berlin}
|
|
volumes:
|
|
- runner_exports:/exports
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
dockhand:
|
|
image: fnsys/dockhand:latest
|
|
container_name: seltd-dockhand
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3008:3000"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- dockhand_data:/app/data
|
|
cadvisor:
|
|
image: ghcr.io/google/cadvisor:v0.60.2
|
|
container_name: seltd-cadvisor
|
|
restart: unless-stopped
|
|
privileged: true
|
|
|
|
ports:
|
|
- "9090:8080"
|
|
|
|
volumes:
|
|
- /:/rootfs:ro
|
|
- /var/run:/var/run:ro
|
|
- /sys:/sys:ro
|
|
- /var/lib/docker/:/var/lib/docker:ro
|
|
- /dev/disk/:/dev/disk:ro
|
|
|
|
devices:
|
|
- /dev/kmsg:/dev/kmsg
|
|
|
|
volumes:
|
|
mariadb_data:
|
|
redis_data:
|
|
collector_data:
|
|
runner_exports:
|
|
dockhand_data:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|