services: #/* ----------------------------- Message Broker ----------------------------- */ msg_broker: image: "nats:latest" container_name: nats ports: - 4222:4222 - 8222:8222 command: -c /tmp/nats/config/nats.cfg env_file: - .env.nats volumes: - ./nats_data:/tmp/nats/jetstream - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.2 profiles: [nats] #/* -------------------------------------------------------------------------- */ #/* ------------------------ API REST / USP Controller ----------------------- */ controller: image: "oktopusp/controller" container_name: controller ports: - 8000:8000 depends_on: - mongo_usp env_file: - .env.controller volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.3 profiles: [controller] #/* -------------------------------------------------------------------------- */ #/* ---------------------------- Databases / Cache --------------------------- */ mongo_usp: image: mongo container_name: mongo_usp ports: - 27017:27017 networks: usp_network: ipv4_address: 172.16.235.4 volumes: - ./mongo_data:/data/db profiles: [controller, adapter] #/* -------------------------------------------------------------------------- */ #/* ----------------------- Message Transfer Protocols ----------------------- */ mqtt: image: "oktopusp/mqtt" container_name: mqtt ports: - 1883:1883 - 8883:8883 env_file: - .env.mqtt volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.6 profiles: [mqtt] ws: image: "oktopusp/ws" container_name: websockets ports: - 8080:8080 - 8081:8081 env_file: - .env.ws volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.7 profiles: [ws] stomp: image: "oktopusp/stomp" container_name: stomp ports: - 61613:61613 networks: usp_network: ipv4_address: 172.16.235.8 profiles: [stomp] #/* -------------------------------------------------------------------------- */ #/* --------------- Message transfer Protocols Adapters to NATS -------------- */ mqtt-adapter: image: "oktopusp/mqtt-adapter" container_name: mqtt-adapter depends_on: - mqtt env_file: - .env.mqtt-adapter volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.9 profiles: [mqtt] ws-adapter: image: "oktopusp/ws-adapter" container_name: ws-adapter depends_on: - ws env_file: - .env.ws-adapter volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.10 profiles: [ws] stomp-adapter: image: "oktopusp/stomp-adapter" container_name: stomp-adapter depends_on: - stomp env_file: - .env.stomp-adapter volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.11 profiles: [stomp] adapter: image: "oktopusp/adapter" container_name: adapter depends_on: - mongo_usp env_file: - .env.adapter volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.12 profiles: [adapter] #/* -------------------------------------------------------------------------- */ #/* ------------- SocketIO Real Time Communication With Frontend ------------- */ socketio: image: "oktopusp/socketio" container_name: socketio ports: - 5000:5000 env_file: - .env.socketio volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.13 profiles: [frontend] #/* -------------------------------------------------------------------------- */ #/* -------------------------------- Frontend -------------------------------- */ frontend: image: "oktopusp/frontend" container_name: frontend ports: - 3000:3000 networks: usp_network: ipv4_address: 172.16.235.14 profiles: [frontend] #/* -------------------------------------------------------------------------- */ portainer: image: portainer/portainer-ce:latest container_name: portainer ports: - 9443:9443 networks: usp_network: ipv4_address: 172.16.235.15 profiles: [portainer] volumes: - /var/run/docker.sock:/var/run/docker.sock - ./portainer_data:/data acs: image: "oktopusp/acs" container_name: acs ports: - 9292:9292 env_file: - .env.acs volumes: - ./nats_config:/tmp/nats/config networks: usp_network: ipv4_address: 172.16.235.16 profiles: [cwmp] nginx: image: nginx:latest container_name: nginx ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf extra_hosts: - "host.docker.internal:host-gateway" networks: usp_network: ipv4_address: 172.16.235.17 file-server: image: oktopusp/file-server container_name: file-server ports: - 8004:8004 volumes: - ./firmwares:/app/firmwares - ./images:/app/images env_file: - .env.file-server networks: usp_network: ipv4_address: 172.16.235.18 networks: usp_network: driver: bridge ipam: driver: default config: - subnet: 172.16.235.0/24 gateway: 172.16.235.1