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_PASSWORDPassword for the dashboard login
NUXT_SESSION_PASSWORDSecret used to sign/encrypt session cookies. Min 32 characters.
TZServer timezoneEurope/Paris
GITHUB_TOKENGitHub Personal Access Token for installing private modules
GUMM_PORTPort to expose on the host3000
VPN_BIND_IPIP to bind the Gumm port to (set to VPN IP to restrict access)0.0.0.0
REDIS_PORTRedis port on the host (bound to localhost only)6379
CADDY_DOMAINDomain for Caddy reverse proxy (enables HTTPS)localhost
CADDY_HTTP_PORTHTTP port for Caddy80
CADDY_HTTPS_PORTHTTPS 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