41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
# Mosaic Docker (Core Services)
|
|
|
|
This folder includes the Compose stack for **core Mosaic services only**:
|
|
|
|
- `mosaic-api`
|
|
- `mosaic-web`
|
|
- `postgres`
|
|
|
|
User OpenClaw containers are **not** defined in Compose. They are created and managed dynamically by the API's `ContainerLifecycleService` through Docker socket access.
|
|
|
|
## Start the stack
|
|
|
|
```bash
|
|
docker compose -f docker/mosaic-compose.yml up -d
|
|
```
|
|
|
|
## Required environment variables
|
|
|
|
- `DATABASE_URL`
|
|
- `MOSAIC_SECRET_KEY`
|
|
- `DATABASE_PASSWORD`
|
|
|
|
Use [`docker/.env.example`](./.env.example) as a starting point.
|
|
|
|
## Architecture overview
|
|
|
|
See the design doc: [`docs/design/MS22-DB-CENTRIC-ARCHITECTURE.md`](../docs/design/MS22-DB-CENTRIC-ARCHITECTURE.md)
|
|
|
|
`mosaic-agents` is an internal-only bridge network reserved for dynamically created user containers.
|
|
|
|
## OpenClaw entrypoint behavior
|
|
|
|
`docker/openclaw-entrypoint.sh` is intended for dynamically created user OpenClaw containers:
|
|
|
|
1. Validates required env vars (`MOSAIC_API_URL`, `AGENT_TOKEN`, `AGENT_ID`).
|
|
2. Fetches agent-specific OpenClaw config from Mosaic API internal endpoint.
|
|
3. Writes the config to `/tmp/openclaw.json`.
|
|
4. Starts OpenClaw gateway with `OPENCLAW_CONFIG_PATH=/tmp/openclaw.json`.
|
|
|
|
`docker/openclaw-healthcheck.sh` probes `http://localhost:18789/health` for container health.
|