# # Copyright 2016-present the IoT DC3 original author or authors. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # x-logging: &default-logging driver: json-file options: max-size: ${DC3_LOG_MAX_SIZE:-10M} max-file: "${DC3_LOG_MAX_FILE:-20}" x-app-runtime-env: &app-runtime-env NODE_ENV: test APM_AGENT_ENABLE: ${APM_AGENT_ENABLE:-false} DC3_SECURITY_KEY: ${DC3_SECURITY_KEY:-dc3.security.key.2026.io.github.pnoker} # dev-only default; never reuse in pre/pro # Internal async-plane broker selection (docs/mq-brokers.md); rabbitmq is the default DC3_MQ_TYPE: "${DC3_MQ_TYPE:-rabbitmq}" # Relational dialect selection (docs/db-dialects.md); postgres is the default # Non-rabbitmq adapter connection settings (only used when DC3_MQ_TYPE matches) DC3_MQ_KAFKA_BOOTSTRAP: "${DC3_MQ_KAFKA_BOOTSTRAP:-kafka:9092}" DC3_MQ_PULSAR_URL: "${DC3_MQ_PULSAR_URL:-pulsar://pulsar:6650}" DC3_MQ_MQTT_HOST: "${DC3_MQ_MQTT_HOST:-dc3-rabbitmq}" DC3_MQ_MQTT_PORT: "${DC3_MQ_MQTT_PORT:-1883}" AUTH_HMAC_SECRET: ${AUTH_HMAC_SECRET:-io.github.pnoker.dc3} # dev-only default; never reuse in pre/pro POSTGRES_HOST: dc3-postgres POSTGRES_PORT: "5432" POSTGRES_USERNAME: ${POSTGRES_USERNAME:-dc3} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-dc3dc3dc3} POSTGRES_DB: ${POSTGRES_DB:-dc3} DC3_R2DBC_URL: "${DC3_R2DBC_URL:-r2dbc:postgresql://dc3-postgres:5432/dc3}" DC3_SCHEMA_FINGERPRINT: "${DC3_SCHEMA_FINGERPRINT:-713c2637af52d8e1e16d3d42ae8f85f48bc9e0f35d3f316509799f6a4490e136}" DC3_SCHEMA_CONTRACT: "${DC3_SCHEMA_CONTRACT:-r2dbc-flag-day-v1}" RABBITMQ_VIRTUAL_HOST: ${RABBITMQ_VIRTUAL_HOST:-dc3} RABBITMQ_HOST: dc3-rabbitmq RABBITMQ_PORT: "${RABBITMQ_CONTAINER_PORT:-5672}" RABBITMQ_USERNAME: ${RABBITMQ_USERNAME:-dc3} RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD:-dc3dc3dc3} RABBITMQ_SSL_ENABLED: "${RABBITMQ_SSL_ENABLED:-false}" RABBITMQ_SSL_ALGORITHM: "${RABBITMQ_SSL_ALGORITHM:-TLS}" RABBITMQ_SSL_VALIDATE_SERVER_CERTIFICATE: "${RABBITMQ_SSL_VALIDATE_SERVER_CERTIFICATE:-false}" RABBITMQ_SSL_VERIFY_HOSTNAME: "${RABBITMQ_SSL_VERIFY_HOSTNAME:-false}" MQTT_BROKER_HOST: dc3-rabbitmq MQTT_BROKER_PORT: "1883" MQTT_USERNAME: ${MQTT_USERNAME:-dc3} MQTT_PASSWORD: ${MQTT_PASSWORD:-dc3dc3dc3} POINT_BATCH_SIZE: "${POINT_BATCH_SIZE:-500}" POINT_BATCH_RECEIVE_TIMEOUT_MILLIS: "${POINT_BATCH_RECEIVE_TIMEOUT_MILLIS:-100}" POINT_CONCURRENT_CONSUMERS: "${POINT_CONCURRENT_CONSUMERS:-4}" POINT_MAX_CONCURRENT_CONSUMERS: "${POINT_MAX_CONCURRENT_CONSUMERS:-16}" POINT_PREFETCH_COUNT: "${POINT_PREFETCH_COUNT:-1000}" POINT_RETRY_MAX_RETRIES: "${POINT_RETRY_MAX_RETRIES:-3}" POINT_RETRY_INITIAL_INTERVAL_MILLIS: "${POINT_RETRY_INITIAL_INTERVAL_MILLIS:-1000}" POINT_RETRY_MULTIPLIER: "${POINT_RETRY_MULTIPLIER:-2}" POINT_RETRY_MAX_INTERVAL_MILLIS: "${POINT_RETRY_MAX_INTERVAL_MILLIS:-10000}" DC3_DRIVER_LEASE_SECONDS: "${DC3_DRIVER_LEASE_SECONDS:-30}" DC3_DRIVER_LEASE_RENEW_CRON: "${DC3_DRIVER_LEASE_RENEW_CRON:-0/10 * * * * ?}" DC3_DRIVER_LEASE_QUEUE_EXPIRES_MILLIS: "${DC3_DRIVER_LEASE_QUEUE_EXPIRES_MILLIS:-300000}" services: gateway: build: context: .. dockerfile: Dockerfile target: dc3-gateway image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-gateway:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: auth: condition: service_healthy manager: condition: service_healthy data: condition: service_healthy agentic: condition: service_healthy ports: - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_GATEWAY_PORT:-8000}:8000" environment: <<: *app-runtime-env # RS256 ticket verification on API routes (token-unification-mcp-first-cli.md) DC3_GATEWAY_OAUTH_ENABLED: ${DC3_GATEWAY_OAUTH_ENABLED:-false} DC3_GATEWAY_OAUTH_JWKS_URL: ${DC3_GATEWAY_OAUTH_JWKS_URL:-http://dc3-center-auth:8300/auth/oauth2/jwks} container_name: dc3-gateway hostname: dc3-gateway volumes: - logs:/dc3-gateway/dc3/logs healthcheck: test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:8000/actuator/health/readiness >/dev/null || exit 1" ] interval: 15s timeout: 5s retries: 10 start_period: 30s logging: *default-logging networks: dc3net: aliases: - dc3-gateway auth: build: context: .. dockerfile: Dockerfile target: dc3-center-auth image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-center-auth:${DC3_IMAGE_TAG:-2026.6} restart: always ports: - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_AUTH_PORT:-8300}:8300" - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_AUTH_GRPC_PORT:-9300}:9300" environment: <<: *app-runtime-env container_name: dc3-center-auth hostname: dc3-center-auth volumes: - logs:/dc3-center/dc3-center-auth/dc3/logs healthcheck: test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:8300/auth/actuator/health/readiness >/dev/null || exit 1" ] interval: 15s timeout: 5s retries: 10 start_period: 40s logging: *default-logging networks: dc3net: aliases: - dc3-center-auth manager: build: context: .. dockerfile: Dockerfile target: dc3-center-manager image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-center-manager:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: auth: condition: service_healthy ports: - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_MANAGER_PORT:-8400}:8400" - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_MANAGER_GRPC_PORT:-9400}:9400" environment: <<: *app-runtime-env container_name: dc3-center-manager hostname: dc3-center-manager volumes: - logs:/dc3-center/dc3-center-manager/dc3/logs healthcheck: test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:8400/manager/actuator/health/readiness >/dev/null || exit 1" ] interval: 15s timeout: 5s retries: 10 start_period: 40s logging: *default-logging networks: dc3net: aliases: - dc3-center-manager data: build: context: .. dockerfile: Dockerfile target: dc3-center-data image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-center-data:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: auth: condition: service_healthy manager: condition: service_healthy ports: - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_DATA_PORT:-8500}:8500" - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_DATA_GRPC_PORT:-9500}:9500" environment: <<: *app-runtime-env container_name: dc3-center-data hostname: dc3-center-data volumes: - logs:/dc3-center/dc3-center-data/dc3/logs healthcheck: test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:8500/data/actuator/health/readiness >/dev/null || exit 1" ] interval: 15s timeout: 5s retries: 10 start_period: 40s logging: *default-logging networks: dc3net: aliases: - dc3-center-data agentic: build: context: .. dockerfile: Dockerfile target: dc3-center-agentic image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-center-agentic:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: auth: condition: service_healthy manager: condition: service_healthy data: condition: service_healthy ports: - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_AGENTIC_PORT:-8600}:8600" environment: <<: *app-runtime-env AGENTIC_FALLBACK_OPENAI_BASE_URL: ${AGENTIC_FALLBACK_OPENAI_BASE_URL:-https://api.openai.com} AGENTIC_FALLBACK_OPENAI_API_KEY: ${AGENTIC_FALLBACK_OPENAI_API_KEY:-} AGENTIC_FALLBACK_OPENAI_MODEL: ${AGENTIC_FALLBACK_OPENAI_MODEL:-gpt-4o} AGENTIC_FALLBACK_OPENAI_TEMPERATURE: ${AGENTIC_FALLBACK_OPENAI_TEMPERATURE:-0.7} AGENTIC_FALLBACK_OPENAI_MAX_TOKENS: ${AGENTIC_FALLBACK_OPENAI_MAX_TOKENS:-2048} AGENTIC_MEMORY_SCHEMA_INIT: ${AGENTIC_MEMORY_SCHEMA_INIT:-never} AGENTIC_MEMORY_ENABLED: ${AGENTIC_MEMORY_ENABLED:-false} AGENTIC_TOOL_CALLING_ENABLED: ${AGENTIC_TOOL_CALLING_ENABLED:-true} AGENTIC_MEMORY_MAX_MESSAGES: ${AGENTIC_MEMORY_MAX_MESSAGES:-50} AGENTIC_ATTACHMENT_STORAGE_PATH: ${AGENTIC_ATTACHMENT_STORAGE_PATH:-dc3/data/agentic/attachments} container_name: dc3-center-agentic hostname: dc3-center-agentic volumes: - logs:/dc3-center/dc3-center-agentic/dc3/logs healthcheck: test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:8600/agentic/actuator/health/readiness >/dev/null || exit 1" ] interval: 15s timeout: 5s retries: 10 start_period: 40s logging: *default-logging networks: dc3net: aliases: - dc3-center-agentic listening-virtual: build: context: .. dockerfile: Dockerfile target: dc3-driver-listening-virtual image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-listening-virtual:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy ports: - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_LISTENING_VIRTUAL_TCP_PORT:-6270}:6270" - "${DC3_BIND_HOST:-127.0.0.1}:${DC3_LISTENING_VIRTUAL_UDP_PORT:-6271}:6271" environment: <<: *app-runtime-env container_name: dc3-driver-listening-virtual hostname: dc3-driver-listening-virtual volumes: - logs:/dc3-driver/dc3-driver-listening-virtual/dc3/logs - driver_data:/dc3-driver/dc3-driver-listening-virtual/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-listening-virtual modbus-tcp: build: context: .. dockerfile: Dockerfile target: dc3-driver-modbus-tcp image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-modbus-tcp:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-modbus-tcp hostname: dc3-driver-modbus-tcp volumes: - logs:/dc3-driver/dc3-driver-modbus-tcp/dc3/logs - driver_data:/dc3-driver/dc3-driver-modbus-tcp/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-modbus-tcp modbus-rtu: build: context: .. dockerfile: Dockerfile target: dc3-driver-modbus-rtu image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-modbus-rtu:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-modbus-rtu hostname: dc3-driver-modbus-rtu volumes: - logs:/dc3-driver/dc3-driver-modbus-rtu/dc3/logs - driver_data:/dc3-driver/dc3-driver-modbus-rtu/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-modbus-rtu mqtt: build: context: .. dockerfile: Dockerfile target: dc3-driver-mqtt image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-mqtt:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-mqtt hostname: dc3-driver-mqtt volumes: - logs:/dc3-driver/dc3-driver-mqtt/dc3/logs - driver_data:/dc3-driver/dc3-driver-mqtt/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-mqtt dc3-driver-bacnet-ip: build: context: . dockerfile: Dockerfile target: dc3-driver-bacnet-ip image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-bacnet-ip:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-bacnet-ip hostname: dc3-driver-bacnet-ip volumes: - logs:/dc3-driver/dc3-driver-bacnet-ip/dc3/logs - driver_data:/dc3-driver/dc3-driver-bacnet-ip/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-bacnet-ip dc3-driver-ble: build: context: . dockerfile: Dockerfile target: dc3-driver-ble image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-ble:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-ble hostname: dc3-driver-ble volumes: - logs:/dc3-driver/dc3-driver-ble/dc3/logs - driver_data:/dc3-driver/dc3-driver-ble/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-ble dc3-driver-can: build: context: . dockerfile: Dockerfile target: dc3-driver-can image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-can:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-can hostname: dc3-driver-can volumes: - logs:/dc3-driver/dc3-driver-can/dc3/logs - driver_data:/dc3-driver/dc3-driver-can/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-can dc3-driver-coap: build: context: . dockerfile: Dockerfile target: dc3-driver-coap image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-coap:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-coap hostname: dc3-driver-coap volumes: - logs:/dc3-driver/dc3-driver-coap/dc3/logs - driver_data:/dc3-driver/dc3-driver-coap/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-coap dc3-driver-dlms: build: context: . dockerfile: Dockerfile target: dc3-driver-dlms image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-dlms:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-dlms hostname: dc3-driver-dlms volumes: - logs:/dc3-driver/dc3-driver-dlms/dc3/logs - driver_data:/dc3-driver/dc3-driver-dlms/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-dlms dc3-driver-ethernet-ip: build: context: . dockerfile: Dockerfile target: dc3-driver-ethernet-ip image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-ethernet-ip:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-ethernet-ip hostname: dc3-driver-ethernet-ip volumes: - logs:/dc3-driver/dc3-driver-ethernet-ip/dc3/logs - driver_data:/dc3-driver/dc3-driver-ethernet-ip/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-ethernet-ip dc3-driver-fins: build: context: . dockerfile: Dockerfile target: dc3-driver-fins image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-fins:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-fins hostname: dc3-driver-fins volumes: - logs:/dc3-driver/dc3-driver-fins/dc3/logs - driver_data:/dc3-driver/dc3-driver-fins/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-fins dc3-driver-http: build: context: . dockerfile: Dockerfile target: dc3-driver-http image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-http:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-http hostname: dc3-driver-http volumes: - logs:/dc3-driver/dc3-driver-http/dc3/logs - driver_data:/dc3-driver/dc3-driver-http/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-http dc3-driver-iec104: build: context: . dockerfile: Dockerfile target: dc3-driver-iec104 image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-iec104:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-iec104 hostname: dc3-driver-iec104 volumes: - logs:/dc3-driver/dc3-driver-iec104/dc3/logs - driver_data:/dc3-driver/dc3-driver-iec104/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-iec104 dc3-driver-lwm2m: build: context: . dockerfile: Dockerfile target: dc3-driver-lwm2m image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-lwm2m:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-lwm2m hostname: dc3-driver-lwm2m volumes: - logs:/dc3-driver/dc3-driver-lwm2m/dc3/logs - driver_data:/dc3-driver/dc3-driver-lwm2m/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-lwm2m dc3-driver-melsec: build: context: . dockerfile: Dockerfile target: dc3-driver-melsec image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-melsec:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-melsec hostname: dc3-driver-melsec volumes: - logs:/dc3-driver/dc3-driver-melsec/dc3/logs - driver_data:/dc3-driver/dc3-driver-melsec/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-melsec dc3-driver-mysql: build: context: . dockerfile: Dockerfile target: dc3-driver-mysql image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-mysql:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-mysql hostname: dc3-driver-mysql volumes: - logs:/dc3-driver/dc3-driver-mysql/dc3/logs - driver_data:/dc3-driver/dc3-driver-mysql/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-mysql dc3-driver-oracle: build: context: . dockerfile: Dockerfile target: dc3-driver-oracle image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-oracle:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-oracle hostname: dc3-driver-oracle volumes: - logs:/dc3-driver/dc3-driver-oracle/dc3/logs - driver_data:/dc3-driver/dc3-driver-oracle/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-oracle dc3-driver-postgresql: build: context: . dockerfile: Dockerfile target: dc3-driver-postgresql image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-postgresql:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-postgresql hostname: dc3-driver-postgresql volumes: - logs:/dc3-driver/dc3-driver-postgresql/dc3/logs - driver_data:/dc3-driver/dc3-driver-postgresql/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-postgresql dc3-driver-serial: build: context: . dockerfile: Dockerfile target: dc3-driver-serial image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-serial:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-serial hostname: dc3-driver-serial volumes: - logs:/dc3-driver/dc3-driver-serial/dc3/logs - driver_data:/dc3-driver/dc3-driver-serial/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-serial dc3-driver-dlt645: build: context: . dockerfile: Dockerfile target: dc3-driver-dlt645 image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-dlt645:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-dlt645 hostname: dc3-driver-dlt645 volumes: - logs:/dc3-driver/dc3-driver-dlt645/dc3/logs - driver_data:/dc3-driver/dc3-driver-dlt645/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-dlt645 dc3-driver-dnp3: build: context: . dockerfile: Dockerfile target: dc3-driver-dnp3 image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-dnp3:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-dnp3 hostname: dc3-driver-dnp3 volumes: - logs:/dc3-driver/dc3-driver-dnp3/dc3/logs - driver_data:/dc3-driver/dc3-driver-dnp3/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-dnp3 dc3-driver-iec61850: build: context: . dockerfile: Dockerfile target: dc3-driver-iec61850 image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-iec61850:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-iec61850 hostname: dc3-driver-iec61850 volumes: - logs:/dc3-driver/dc3-driver-iec61850/dc3/logs - driver_data:/dc3-driver/dc3-driver-iec61850/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-iec61850 dc3-driver-kafka: build: context: . dockerfile: Dockerfile target: dc3-driver-kafka image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-kafka:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-kafka hostname: dc3-driver-kafka volumes: - logs:/dc3-driver/dc3-driver-kafka/dc3/logs - driver_data:/dc3-driver/dc3-driver-kafka/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-kafka dc3-driver-knx: build: context: . dockerfile: Dockerfile target: dc3-driver-knx image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-knx:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-knx hostname: dc3-driver-knx volumes: - logs:/dc3-driver/dc3-driver-knx/dc3/logs - driver_data:/dc3-driver/dc3-driver-knx/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-knx dc3-driver-lorawan: build: context: . dockerfile: Dockerfile target: dc3-driver-lorawan image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-lorawan:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-lorawan hostname: dc3-driver-lorawan volumes: - logs:/dc3-driver/dc3-driver-lorawan/dc3/logs - driver_data:/dc3-driver/dc3-driver-lorawan/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-lorawan dc3-driver-mbus: build: context: . dockerfile: Dockerfile target: dc3-driver-mbus image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-mbus:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-mbus hostname: dc3-driver-mbus volumes: - logs:/dc3-driver/dc3-driver-mbus/dc3/logs - driver_data:/dc3-driver/dc3-driver-mbus/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-mbus dc3-driver-redis: build: context: . dockerfile: Dockerfile target: dc3-driver-redis image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-redis:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-redis hostname: dc3-driver-redis volumes: - logs:/dc3-driver/dc3-driver-redis/dc3/logs - driver_data:/dc3-driver/dc3-driver-redis/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-redis dc3-driver-sl651: build: context: . dockerfile: Dockerfile target: dc3-driver-sl651 image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-sl651:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-sl651 hostname: dc3-driver-sl651 volumes: - logs:/dc3-driver/dc3-driver-sl651/dc3/logs - driver_data:/dc3-driver/dc3-driver-sl651/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-sl651 dc3-driver-snmp: build: context: . dockerfile: Dockerfile target: dc3-driver-snmp image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-snmp:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-snmp hostname: dc3-driver-snmp volumes: - logs:/dc3-driver/dc3-driver-snmp/dc3/logs - driver_data:/dc3-driver/dc3-driver-snmp/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-snmp dc3-driver-sqlserver: build: context: . dockerfile: Dockerfile target: dc3-driver-sqlserver image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-sqlserver:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-sqlserver hostname: dc3-driver-sqlserver volumes: - logs:/dc3-driver/dc3-driver-sqlserver/dc3/logs - driver_data:/dc3-driver/dc3-driver-sqlserver/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-sqlserver dc3-driver-tcp-udp: build: context: . dockerfile: Dockerfile target: dc3-driver-tcp-udp image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-tcp-udp:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-tcp-udp hostname: dc3-driver-tcp-udp volumes: - logs:/dc3-driver/dc3-driver-tcp-udp/dc3/logs - driver_data:/dc3-driver/dc3-driver-tcp-udp/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-tcp-udp dc3-driver-zigbee: build: context: . dockerfile: Dockerfile target: dc3-driver-zigbee image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-zigbee:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-zigbee hostname: dc3-driver-zigbee volumes: - logs:/dc3-driver/dc3-driver-zigbee/dc3/logs - driver_data:/dc3-driver/dc3-driver-zigbee/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-zigbee opc-da: build: context: .. dockerfile: Dockerfile target: dc3-driver-opc-da image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-opc-da:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-opc-da hostname: dc3-driver-opc-da volumes: - logs:/dc3-driver/dc3-driver-opc-da/dc3/logs - driver_data:/dc3-driver/dc3-driver-opc-da/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-opc-da opc-ua: build: context: .. dockerfile: Dockerfile target: dc3-driver-opc-ua image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-opc-ua:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-opc-ua hostname: dc3-driver-opc-ua volumes: - logs:/dc3-driver/dc3-driver-opc-ua/dc3/logs - driver_data:/dc3-driver/dc3-driver-opc-ua/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-opc-ua plcs7: build: context: .. dockerfile: Dockerfile target: dc3-driver-plcs7 image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-plcs7:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-plcs7 hostname: dc3-driver-plcs7 volumes: - logs:/dc3-driver/dc3-driver-plcs7/dc3/logs - driver_data:/dc3-driver/dc3-driver-plcs7/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-plcs7 virtual: build: context: .. dockerfile: Dockerfile target: dc3-driver-virtual image: ${DC3_IMAGE_REGISTRY:-pnoker}/dc3-driver-virtual:${DC3_IMAGE_TAG:-2026.6} restart: always depends_on: manager: condition: service_healthy environment: <<: *app-runtime-env container_name: dc3-driver-virtual hostname: dc3-driver-virtual volumes: - logs:/dc3-driver/dc3-driver-virtual/dc3/logs - driver_data:/dc3-driver/dc3-driver-virtual/dc3/data logging: *default-logging networks: dc3net: aliases: - dc3-driver-virtual volumes: logs: driver_data: networks: dc3net: driver: bridge