Skip to content

Local Mounts

For a laptop deployment, keep the private workspace and large-data shelf as explicit bind mounts:

docker run \
  -p 18789:18789 \
  -p 8888:8888 \
  -p 8090:8090 \
  -v "$PWD/workspace:/workspace" \
  -v "$HOME/OpenClawData:/external_storage/local" \
  --env-file .env \
  openclaw-local

With Docker Compose, use:

WORKSPACE_DIR=./workspace
EXTERNAL_STORAGE_DIR=~/OpenClawData
SCIENCECLAW_CMS_PORT=8090

Then start the services:

docker compose up openclaw-local workspace-ui workspace-cms

Keep ./workspace and ./external_storage ignored. Do not mount your whole home directory into the container. Narrow mounts make the agent workspace easier to inspect and safer to reason about.

For project-specific local data, prefer:

/external_storage/local/<project-slug>

Then add the mount or folder to /workspace/projects/<project-slug>/EXTERNAL_LINKS.md and cite it from /workspace/projects/<project-slug>/DATA_MANIFEST.md.