- Created package.json for the bacnet-collector project with necessary dependencies. - Implemented main server logic in src/index.js to handle BACnet device scanning and reading. - Added raw discovery functionality in src/raw-discover.js to facilitate device detection over the network. - Introduced utility functions for handling IP addresses, broadcasting, and BACnet packet construction. - Implemented JSON response handling for health checks and capabilities endpoints.
154 lines
3.7 KiB
YAML
154 lines
3.7 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://bacnet-collector:18111}
|
|
ports:
|
|
- "18110:18110"
|
|
volumes:
|
|
- collector_data:/app/data
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
bacnet-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:-7000}
|
|
BACNET_POINT_LIMIT: ${BACNET_POINT_LIMIT:-2000}
|
|
BACNET_BROADCAST_FALLBACKS: ${BACNET_BROADCAST_FALLBACKS:-}
|
|
network_mode: "host"
|
|
ports:
|
|
- "18111:18111"
|
|
- "47808:47808/udp"
|
|
|
|
dockhand:
|
|
image: fnsys/dockhand:latest
|
|
container_name: seltd-dockhand
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000: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:
|
|
dockhand_data:
|
|
|
|
|
|
|