Configuration
Settings live on a persistent volume and are edited through the dashboard. Lose the volume and you lose everything.
How settings work
Every setting lives inside the bot's container on a single persistent volume. The dashboard edits these settings for you — most of the time you never need to look at raw files or restart the container after a change.
What matters as an operator: the volume must survive container restarts, and each setting has a dedicated page under Settings in the dashboard. If you lose the volume, you lose everything — provider keys, chat history, skills, memory.
Where to find each setting
All configuration is done through the dashboard under Settings. The settings pages are grouped by concern:
- LLM Providers — add and manage API keys for OpenAI, Anthropic, Google, and OpenAI-compatible services.
- Model Router — pick which model handles each tier.
- Plugins — browse the marketplace, install plugins, configure their credentials.
- Memory — enable memory, pick a preset, adjust how the bot remembers across sessions.
- MCP — enable MCP globally and set default timeouts.
- Webhooks — turn webhooks on, set the shared token, create custom hooks.
- Security — change the admin password.
- Skills — browse the marketplace and manage installed skills.
Most changes take effect immediately. When a change requires a restart, the dashboard tells you.
Why you need a persistent volume
Without a mounted volume, every container restart wipes sessions, settings, the admin password, skills, memory, and traces. Always mount a real volume in production.
docker run -d \
-e STORAGE_PATH=/app/workspace \
-e TOOLS_WORKSPACE=/app/sandbox \
-v golemcore-bot-data:/app/workspace \
-v golemcore-bot-sandbox:/app/sandbox \
-p 8080:8080 \
ghcr.io/alexk-dev/golemcore-bot:latestTwo volumes, two jobs
The workspace volume holds settings, sessions, memory, skills, and traces. The sandboxvolume is where file and shell tools do their work — it keeps tool output separate from the bot's own data.