GC
4 min read·Updated 2026-04-12

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.

Mounting workspace and sandbox volumes
bash
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:latest

Two 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.

What to do next