services: jarvis-main: image: alpine/openclaw:latest command: ["gateway", "run", "--bind", "lan", "--auth", "token"] env_file: - ./openclaw-instances/jarvis-main.env environment: OPENCLAW_CONFIG_PATH: /config/openclaw.json volumes: - jarvis-main-config:/config/openclaw.json:ro - jarvis-main-state:/home/node/.openclaw networks: - mosaic-stack_internal healthcheck: test: ["CMD", "openclaw", "gateway", "health"] interval: 30s timeout: 10s retries: 3 start_period: 20s deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: memory: 2G reservations: memory: 512M labels: - com.mosaic.agent=jarvis-main - com.mosaic.role=orchestrator jarvis-projects: image: alpine/openclaw:latest command: ["gateway", "run", "--bind", "lan", "--auth", "token"] env_file: - ./openclaw-instances/jarvis-projects.env environment: OPENCLAW_CONFIG_PATH: /config/openclaw.json volumes: - jarvis-projects-config:/config/openclaw.json:ro - jarvis-projects-state:/home/node/.openclaw networks: - mosaic-stack_internal healthcheck: test: ["CMD", "openclaw", "gateway", "health"] interval: 30s timeout: 10s retries: 3 start_period: 20s deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: memory: 4G reservations: memory: 1G labels: - com.mosaic.agent=jarvis-projects - com.mosaic.role=development jarvis-research: image: alpine/openclaw:latest command: ["gateway", "run", "--bind", "lan", "--auth", "token"] env_file: - ./openclaw-instances/jarvis-research.env environment: OPENCLAW_CONFIG_PATH: /config/openclaw.json volumes: - jarvis-research-config:/config/openclaw.json:ro - jarvis-research-state:/home/node/.openclaw networks: - mosaic-stack_internal healthcheck: test: ["CMD", "openclaw", "gateway", "health"] interval: 30s timeout: 10s retries: 3 start_period: 20s deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: memory: 1G reservations: memory: 256M labels: - com.mosaic.agent=jarvis-research - com.mosaic.role=research jarvis-operations: image: alpine/openclaw:latest command: ["gateway", "run", "--bind", "lan", "--auth", "token"] env_file: - ./openclaw-instances/jarvis-operations.env environment: OPENCLAW_CONFIG_PATH: /config/openclaw.json volumes: - jarvis-operations-config:/config/openclaw.json:ro - jarvis-operations-state:/home/node/.openclaw networks: - mosaic-stack_internal healthcheck: test: ["CMD", "openclaw", "gateway", "health"] interval: 30s timeout: 10s retries: 3 start_period: 20s deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: memory: 1G reservations: memory: 256M labels: - com.mosaic.agent=jarvis-operations - com.mosaic.role=operations networks: mosaic-stack_internal: external: true volumes: jarvis-main-config: driver: local driver_opts: type: none o: bind device: ${PWD}/docker/openclaw-instances/jarvis-main.json jarvis-projects-config: driver: local driver_opts: type: none o: bind device: ${PWD}/docker/openclaw-instances/jarvis-projects.json jarvis-research-config: driver: local driver_opts: type: none o: bind device: ${PWD}/docker/openclaw-instances/jarvis-research.json jarvis-operations-config: driver: local driver_opts: type: none o: bind device: ${PWD}/docker/openclaw-instances/jarvis-operations.json jarvis-main-state: jarvis-projects-state: jarvis-research-state: jarvis-operations-state: