Configuration Reference

All configuration options for Gumm, organized by category.


Environment variables (.env)

Set these in the .env file at the root of the project before starting the container.

VariableRequiredDescriptionDefault
GUMM_ADMIN_PASSWORD✅Password for the dashboard login—
NUXT_SESSION_PASSWORD✅Secret used to sign/encrypt session cookies. Min 32 characters.—
TZ—Server timezoneEurope/Paris
GITHUB_TOKEN—GitHub Personal Access Token for installing private modules—
GUMM_PORT—Port to expose on the host3000
VPN_BIND_IP—IP to bind the Gumm port to (set to VPN IP to restrict access)0.0.0.0
REDIS_PORT—Redis port on the host (bound to localhost only)6379
CADDY_DOMAIN—Domain for Caddy reverse proxy (enables HTTPS)localhost
CADDY_HTTP_PORT—HTTP port for Caddy80
CADDY_HTTPS_PORT—HTTPS port for Caddy443

Generate NUXT_SESSION_PASSWORD

openssl rand -hex 32

Brain configuration keys

These are runtime settings stored in the SQLite database and managed through the Brain dashboard or CLI. Unlike env vars, they can be changed at any time without restarting the container.

Identity

KeyDescriptionExample
identity.nameAssistant’s nameGumm
identity.personalityBehavior descriptionA concise, technical assistant
identity.rulesHard behavioral constraintsAlways answer in English
identity.goalsHigh-level objectivesHelp manage my projects

Brain settings

KeyDescriptionDefault
brain.languageResponse languageen
brain.timezoneTimezone for time-aware responsesEurope/Paris
brain.autoMemoryAutomatically extract facts from conversationstrue

LLM settings

KeyDescriptionExample
llm.modelLLM model identifier (OpenRouter slug)anthropic/claude-3.5-sonnet
openrouter.apiKeyOpenRouter API keysk-or-...

Admin

KeyDescription
admin.passwordHashbcrypt hash of the admin password (managed automatically)
setup.completedWhether the setup wizard has been completed

Telegram

KeyDescription
telegram.botTokenTelegram bot token
telegram.webhookUrlPublic webhook URL (blank = polling mode)
telegram.allowedChatIdsComma-separated list of allowed Telegram chat IDs
telegram.enabledWhether Telegram integration is active

Updating configuration

Via the dashboard

Most settings are editable directly in the Brain page (/brain) or Settings page (/settings).

Via the CLI

gumm brain config-set <key> <value>

# Examples
gumm brain config-set brain.language fr
gumm brain config-set llm.model mistral/mistral-medium
gumm brain config-set brain.autoMemory false

Via the REST API

curl -X PUT http://localhost:3000/api/brain/config \
  -H 'Content-Type: application/json' \
  -H 'Cookie: <session-cookie>' \
  -d '{
    "entries": [
      { "key": "identity.name", "value": "Atlas" },
      { "key": "brain.language", "value": "en" }
    ]
  }'

Volumes and data directories

Path (inside container)Description
/app/.dataSQLite database, knowledge files, attachments
/app/modules/userUser-installed modules (hot-swapped)
/app/brainBrain personality/rules/goals markdown files
/var/lib/tailscaleTailscale state (persisted across restarts)
/var/lib/netbirdNetBird state (persisted across restarts)

All of these are declared as volumes in docker-compose.yml. Never delete the gumm-data volume unless you intend to wipe all data.


TLS / HTTPS

Gumm does not handle TLS itself. Recommended options:

MethodWhen to use
Caddy (profile proxy)Public domain or Tailscale .ts.net hostname
Tailscale HTTPSPrivate mesh — Tailscale issues a certificate for your node
Cloudflare TunnelExpose via Cloudflare without opening firewall ports
Host reverse proxyIf you manage your own Nginx/Apache on the host