10 KiB
📦 Usage
🍭 Requirements
These are the core requirements needed to build and run the application. Make sure to have these tools installed and properly configured in your development environment.
- JDK 21: Java Development Kit version 21 or higher
- Maven: Build automation and dependency management tool
- Podman or Docker: Container platform with Compose support for building and running applications
🍻 Quick Start
Choose one of the following container registries:
🦁 Docker Hub
Global access with standard Docker registry service
cd iot-dc3
make up-db
make up STACK=app
🐱 China Registry
Optimized registry service for users in mainland China
cd iot-dc3
make up-db-cn
make up STACK=app REGISTRY=cn
You can also start full workflows or other compose stacks with the same selector, for example:
make up-db && make up-optional && make up-dev
make up-db-cn && make up-optional-cn && make up-dev-cn
make up-db-cn && make up-optional-cn && make up-app-cn
make up STACK=optional
make up STACK=optional REGISTRY=cn
make logs STACK=dev REGISTRY=global
For frontend and API testing, use the service-level shortcuts to start only the modules under test:
make up-db-cn
make up SERVICES=agentic REGISTRY=cn
make up SERVICES="gateway agentic" REGISTRY=cn
make logs SERVICES="gateway agentic"
make up GROUP=core REGISTRY=cn
make up GROUP=drivers REGISTRY=cn
🐳 Container
⛳ Platform Support
All images are built for multiple platforms:
linux/amd64- For Intel/AMD 64-bit systemslinux/arm64- For ARM 64-bit systems (Apple Silicon, ARM servers)
🚥 Version Tags
${DC3_IMAGE_TAG}- Specific version (recommended for production)latest- Latest stable version (may change)
🍉 Images
| Description | Docker Hub | China Registry |
|---|---|---|
| Gateway | pnoker/dc3-gateway:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-gateway:${DC3_IMAGE_TAG} |
| Agentic Center | pnoker/dc3-center-agentic:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-center-agentic:${DC3_IMAGE_TAG} |
| Auth Center | pnoker/dc3-center-auth:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-center-auth:${DC3_IMAGE_TAG} |
| Data Center | pnoker/dc3-center-data:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-center-data:${DC3_IMAGE_TAG} |
| Manager Center | pnoker/dc3-center-manager:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-center-manager:${DC3_IMAGE_TAG} |
| Single Center | pnoker/dc3-center-single:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-center-single:${DC3_IMAGE_TAG} |
| Listening Virtual Driver | pnoker/dc3-driver-listening-virtual:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-listening-virtual:${DC3_IMAGE_TAG} |
| Modbus TCP Driver | pnoker/dc3-driver-modbus-tcp:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-modbus-tcp:${DC3_IMAGE_TAG} |
| Modbus RTU Driver | pnoker/dc3-driver-modbus-rtu:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-modbus-rtu:${DC3_IMAGE_TAG} |
| MQTT Driver | pnoker/dc3-driver-mqtt:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-mqtt:${DC3_IMAGE_TAG} |
| OPC DA Driver | pnoker/dc3-driver-opc-da:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-opc-da:${DC3_IMAGE_TAG} |
| OPC UA Driver | pnoker/dc3-driver-opc-ua:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-opc-ua:${DC3_IMAGE_TAG} |
| Siemens S7 Driver | pnoker/dc3-driver-plcs7:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-plcs7:${DC3_IMAGE_TAG} |
| Virtual Driver | pnoker/dc3-driver-virtual:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-virtual:${DC3_IMAGE_TAG} |
| BACnet/IP Driver | pnoker/dc3-driver-bacnet-ip:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-bacnet-ip:${DC3_IMAGE_TAG} |
| BLE Driver | pnoker/dc3-driver-ble:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-ble:${DC3_IMAGE_TAG} |
| CAN Driver | pnoker/dc3-driver-can:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-can:${DC3_IMAGE_TAG} |
| CoAP Driver | pnoker/dc3-driver-coap:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-coap:${DC3_IMAGE_TAG} |
| DLMS Driver | pnoker/dc3-driver-dlms:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-dlms:${DC3_IMAGE_TAG} |
| EtherNet/IP Driver | pnoker/dc3-driver-ethernet-ip:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-ethernet-ip:${DC3_IMAGE_TAG} |
| Omron FINS Driver | pnoker/dc3-driver-fins:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-fins:${DC3_IMAGE_TAG} |
| HTTP Driver | pnoker/dc3-driver-http:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-http:${DC3_IMAGE_TAG} |
| IEC 60870-5-104 Driver | pnoker/dc3-driver-iec104:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-iec104:${DC3_IMAGE_TAG} |
| LwM2M Driver | pnoker/dc3-driver-lwm2m:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-lwm2m:${DC3_IMAGE_TAG} |
| Mitsubishi MELSEC Driver | pnoker/dc3-driver-melsec:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-melsec:${DC3_IMAGE_TAG} |
| MySQL Driver | pnoker/dc3-driver-mysql:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-mysql:${DC3_IMAGE_TAG} |
| Oracle Driver | pnoker/dc3-driver-oracle:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-oracle:${DC3_IMAGE_TAG} |
| PostgreSQL Driver | pnoker/dc3-driver-postgresql:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-postgresql:${DC3_IMAGE_TAG} |
| Serial Driver | pnoker/dc3-driver-serial:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-serial:${DC3_IMAGE_TAG} |
| SL651 Driver | pnoker/dc3-driver-sl651:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-sl651:${DC3_IMAGE_TAG} |
| SNMP Driver | pnoker/dc3-driver-snmp:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-snmp:${DC3_IMAGE_TAG} |
| SQL Server Driver | pnoker/dc3-driver-sqlserver:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-sqlserver:${DC3_IMAGE_TAG} |
| TCP/UDP Driver | pnoker/dc3-driver-tcp-udp:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-tcp-udp:${DC3_IMAGE_TAG} |
| Zigbee Driver | pnoker/dc3-driver-zigbee:${DC3_IMAGE_TAG} |
registry.cn-beijing.aliyuncs.com/dc3/dc3-driver-zigbee:${DC3_IMAGE_TAG} |
🚢 Deployment
Single-host Compose is only the first of five deployment modes. The full runbook - every command, the scaling semantics, and the production hardening checklist - lives in
dc3/doc/DEPLOYMENT.md.
| Mode | Files | Use for |
|---|---|---|
| Single host | docker-compose-db.yml + docker-compose.yml |
evaluation, demo, small production |
| Compose scaling | docker-compose-db.yml + docker-compose-scale.yml |
replicated services on one host (--scale) |
| Docker Swarm | docker-compose-swarm.yml |
multi-node swarm (make stack-deploy) |
| Kubernetes | dc3/deploy/k8s/ |
production Kubernetes (make k8s-apply) |
| Helm | dc3/deploy/helm/dc3/ |
GitOps installs (make helm-install) |
Facts that hold in every mode:
- Dependency images (
dc3-postgres,dc3-rabbitmq) are built locally by thedbstack and are not published by the release CI. For swarm/k8s/helm, build and push them first (DC3_IMAGE_REGISTRY=my.registry/dc3 ./dc3/deploy/k8s/scripts/push-images.sh) or point the stack at managed services instead. dc3-webis taggedlatestand full release versions only - it has no series tag like2026.6. Backend images (gateway, centers, drivers) carrylatest, the series tag, and the full version. The deployment configs account for this; pin a full release version fordc3-webwhen you need reproducible rollouts.- DNS names are the contract. Keep the default service names (
dc3-postgres,dc3-rabbitmq,dc3-center-*,dc3-gateway,dc3-web) so the images resolve each other, or overridePOSTGRES_HOST,RABBITMQ_HOST,MQTT_BROKER_HOST,CENTER_*_HOST, andAPP_API_HOSTto point at services deployed differently. NODE_ENVselects the Spring profile at runtime:test(the default in every deployment config) orpro(hardened: OpenAPI/Swagger UI disabled, weak secrets rejected).
Mode-specific runbooks: dc3/deploy/k8s/README.md, dc3/deploy/helm/dc3/README.md, and the
stack-deploy / stack-rm / k8s-apply / k8s-delete / helm-install / helm-uninstall
targets in the root Makefile.