fix(docker): generic naming (mosaic-*), env-var-only config, no hardcoded values
All checks were successful
ci/woodpecker/push/infra Pipeline was successful

- Renamed all jarvis-* to mosaic-* (generic for any deployment)
- Config files are .json.template with ${VAR} placeholders
- entrypoint.sh renders templates via envsubst at startup
- Ollama is optional: set OLLAMA_BASE_URL to auto-inject provider
- Model is configurable via OPENCLAW_MODEL env var
- No hardcoded IPs, keys, model names, or user preferences
- Updated README with full env var reference
This commit is contained in:
2026-03-01 08:02:31 -06:00
parent 50f0dc6018
commit 89767e26ef
20 changed files with 327 additions and 279 deletions

View File

@@ -6,10 +6,10 @@ OpenClaw multi-agent deployment for Mosaic Stack using Docker Swarm and Portaine
| Agent | Service | Primary Model | Role |
| ----------------- | ------------------- | --------------- | ---------------------------------- |
| jarvis-main | `jarvis-main` | `zai/glm-5` | Orchestrator / user-facing gateway |
| jarvis-projects | `jarvis-projects` | `zai/glm-5` | Development and coding tasks |
| jarvis-research | `jarvis-research` | `zai/glm-5` | Research and web search |
| jarvis-operations | `jarvis-operations` | `ollama/cogito` | Monitoring, health checks, alerts |
| mosaic-main | `mosaic-main` | `zai/glm-5` | Orchestrator / user-facing gateway |
| mosaic-projects | `mosaic-projects` | `zai/glm-5` | Development and coding tasks |
| mosaic-research | `mosaic-research` | `zai/glm-5` | Research and web search |
| mosaic-operations | `mosaic-operations` | `ollama/cogito` | Monitoring, health checks, alerts |
## Prerequisites
@@ -24,10 +24,10 @@ OpenClaw multi-agent deployment for Mosaic Stack using Docker Swarm and Portaine
Set values in:
- `docker/openclaw-instances/jarvis-main.env`
- `docker/openclaw-instances/jarvis-projects.env`
- `docker/openclaw-instances/jarvis-research.env`
- `docker/openclaw-instances/jarvis-operations.env`
- `docker/openclaw-instances/mosaic-main.env`
- `docker/openclaw-instances/mosaic-projects.env`
- `docker/openclaw-instances/mosaic-research.env`
- `docker/openclaw-instances/mosaic-operations.env`
Required variables:
@@ -48,17 +48,17 @@ openssl rand -hex 32
From repo root:
```bash
docker stack deploy -c docker/openclaw-compose.yml jarvis
docker stack deploy -c docker/openclaw-compose.yml mosaic
```
### 4. Verify service status
```bash
docker stack services jarvis
docker service logs jarvis-jarvis-main --tail 100
docker service logs jarvis-jarvis-projects --tail 100
docker service logs jarvis-jarvis-research --tail 100
docker service logs jarvis-jarvis-operations --tail 100
docker stack services mosaic
docker service logs mosaic-mosaic-main --tail 100
docker service logs mosaic-mosaic-projects --tail 100
docker service logs mosaic-mosaic-research --tail 100
docker service logs mosaic-mosaic-operations --tail 100
```
### 5. First-time auth (if required)
@@ -66,7 +66,7 @@ docker service logs jarvis-jarvis-operations --tail 100
Exec into a container and run OpenClaw auth device flow:
```bash
docker exec -it $(docker ps -q -f name=jarvis-jarvis-main) sh
docker exec -it $(docker ps -q -f name=mosaic-mosaic-main) sh
openclaw auth
```
@@ -76,12 +76,12 @@ You can also complete this in the Mosaic WebUI terminal (xterm.js).
| Command | Description |
| ----------------------------------------------------------- | ---------------------- |
| `docker stack deploy -c docker/openclaw-compose.yml jarvis` | Deploy/update fleet |
| `docker stack services jarvis` | List services in stack |
| `docker service logs jarvis-<service>` | View service logs |
| `docker service update --force jarvis-<service>` | Restart rolling update |
| `docker service scale jarvis-<service>=N` | Scale a service |
| `docker stack rm jarvis` | Remove fleet |
| `docker stack deploy -c docker/openclaw-compose.yml mosaic` | Deploy/update fleet |
| `docker stack services mosaic` | List services in stack |
| `docker service logs mosaic-<service>` | View service logs |
| `docker service update --force mosaic-<service>` | Restart rolling update |
| `docker service scale mosaic-<service>=N` | Scale a service |
| `docker stack rm mosaic` | Remove fleet |
## Notes