Star Claustrum on GitHub

English document · Source: en/environment-variables.md

Environment Variables (Full Reference)

Purpose

.env.example is intentionally minimal for fast setup.

This page is the complete environment variable reference for:

  • apps/memory-core
  • apps/mcp-adapter
  • apps/admin-ui
  • Docker Compose deployment
  • Optional CI workflows
  • Optional repository scripts (scripts/)

Precedence Rules

  • memory-core database connection uses DATABASE_URL only.
  • POSTGRES_* values are only for local Compose Postgres bootstrap.
  • For integrations (Notion/Jira/Confluence/Linear/Slack/Audit reasoner):
    • values can be saved in DB from Admin UI, or
    • provided via env,
    • and MEMORY_CORE_INTEGRATION_LOCKED_PROVIDERS controls which source wins.

Quickstart Minimum

  • DATABASE_URL
  • MEMORY_CORE_API_KEY
  • MEMORY_CORE_URL
  • NEXT_PUBLIC_MEMORY_CORE_URL
  • Optional convenience: COMPOSE_PROFILES=localdb (auto-enable local postgres profile)
  • Local DB profile only: POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD

Memory Core (Required / Core)

VariableRequiredDefaultNotes
DATABASE_URLYesNonePostgres DSN. For RDS include SSL query (sslmode=require etc).
MEMORY_CORE_API_KEYRecommendedNoneRuntime bearer token for clients.
MEMORY_CORE_API_KEYSNoEmptyComma-separated additional runtime keys.
MEMORY_CORE_HOSTNo0.0.0.0HTTP bind host.
MEMORY_CORE_PORTNo8080HTTP bind port.
MEMORY_CORE_LOG_LEVELNoerrordebug, info, warn, error, silent.

Fail-fast validation:

  • memory-core validates core env values at startup (Zod-based).
  • invalid required values (for example empty DATABASE_URL or bad port range) fail fast before serving traffic.

Memory Core (Bootstrap / Auth / Security)

VariableRequiredDefaultNotes
MEMORY_CORE_ALLOW_BOOTSTRAP_ADMINNotrueIf DB has no users, create bootstrap admin@example.com once.
MEMORY_CORE_SEED_ADMIN_KEYNoFalls back to MEMORY_CORE_API_KEYUsed by pnpm db:seed only.
MEMORY_CORE_SECRETRecommendedDev fallbackShared base secret. Strongly recommended in production.
MEMORY_CORE_AUTH_SESSION_SECRETNoDerives from MEMORY_CORE_SECRET or dev fallbackSession signing secret override.
MEMORY_CORE_AUTH_SESSION_TTL_SECONDSNo43200Session TTL seconds (minimum clamp applied).
MEMORY_CORE_API_KEY_HASH_SECRETNoDerives from MEMORY_CORE_SECRET or dev fallbackAPI key hashing secret override.
MEMORY_CORE_ONE_TIME_TOKEN_SECRETNoDerives from shared secret/session secretOne-time link token secret override.
MEMORY_CORE_ONE_TIME_TOKEN_TTL_SECONDSNo900One-time token TTL seconds.
MEMORY_CORE_GITHUB_STATE_SECRETNoDerives from shared secret/session secretGitHub callback state signing secret.
MEMORY_CORE_PUBLIC_BASE_URLNoEmptyPublic base URL used for callback/link generation.
MEMORY_CORE_INVITE_BASE_URLNoEmptyInvite URL base override.

Memory Core (GitHub App)

VariableRequiredDefaultNotes
GITHUB_APP_IDOptionalEmptyGitHub App ID.
GITHUB_APP_PRIVATE_KEYOptionalEmptySupports raw PEM, escaped newlines, or base64 PEM.
GITHUB_APP_WEBHOOK_SECRETOptionalEmptyGitHub webhook signature verification secret.
GITHUB_APP_NAMEOptionalEmptyUI/metadata helper.
GITHUB_APP_URLOptionalEmptyUI/metadata helper.

Memory Core (Integration Source Control)

VariableRequiredDefaultNotes
MEMORY_CORE_INTEGRATION_LOCKED_PROVIDERSNoEmptyall, none, or provider list: notion,jira,confluence,linear,slack,audit_reasoner.

Behavior:

  • all: force ENV-only for all providers.
  • none: ignore ENV provider config and use DB/Admin UI config only.
  • CSV list: force ENV-only for listed providers.

Memory Core (Audit Slack)

VariableRequiredDefaultNotes
MEMORY_CORE_AUDIT_SLACK_WEBHOOK_URLOptionalEmptySlack webhook endpoint for audit forwarding.
MEMORY_CORE_AUDIT_SLACK_ACTION_PREFIXESOptionalEmptyCSV prefix filter (example: access.,auth.).
MEMORY_CORE_AUDIT_SLACK_DEFAULT_CHANNELOptionalEmptyOptional channel override.
MEMORY_CORE_AUDIT_SLACK_FORMATOptionaldetailedcompact or detailed.
MEMORY_CORE_AUDIT_SLACK_INCLUDE_TARGET_JSONOptionaltrueInclude target payload details.
MEMORY_CORE_AUDIT_SLACK_MASK_SECRETSOptionaltrueMask secret-like values.
MEMORY_CORE_ALLOW_PRIVATE_AUDIT_SINK_URLSOptionalfalseDev-only escape hatch for private sink URLs.

Memory Core (Notion / Jira / Confluence / Linear)

VariableRequiredDefaultNotes
MEMORY_CORE_NOTION_TOKENOptionalEmptyNotion API token.
MEMORY_CORE_NOTION_DEFAULT_PARENT_PAGE_IDOptionalEmptyDefault parent page for writes.
MEMORY_CORE_NOTION_WRITE_ENABLEDOptionalfalseEnables Notion write operations.
MEMORY_CORE_JIRA_BASE_URLOptionalEmptyJira base URL.
MEMORY_CORE_JIRA_EMAILOptionalEmptyJira user email.
MEMORY_CORE_JIRA_API_TOKENOptionalEmptyJira API token.
MEMORY_CORE_CONFLUENCE_BASE_URLOptionalEmptyConfluence base URL.
MEMORY_CORE_CONFLUENCE_EMAILOptionalEmptyConfluence user email.
MEMORY_CORE_CONFLUENCE_API_TOKENOptionalEmptyConfluence API token.
MEMORY_CORE_LINEAR_API_KEYOptionalEmptyLinear API key.
MEMORY_CORE_LINEAR_API_URLOptionalEmptyLinear API URL override.

Memory Core (Audit Reasoner / LLM)

VariableRequiredDefaultNotes
MEMORY_CORE_AUDIT_REASONER_ENABLEDOptionalAutoIf unset, auto-enables when provider key exists.
MEMORY_CORE_AUDIT_REASONER_PROVIDER_ORDEROptionalopenai,claude,geminiCSV fallback order.
MEMORY_CORE_AUDIT_REASONER_PROVIDEROptional (legacy)EmptyLegacy single-provider selector.
MEMORY_CORE_AUDIT_REASONER_MODELOptional (legacy)EmptyLegacy generic model (applies to first provider).
MEMORY_CORE_AUDIT_REASONER_API_KEYOptional (legacy)EmptyLegacy generic key (applies to first provider).
MEMORY_CORE_AUDIT_REASONER_BASE_URLOptional (legacy)EmptyLegacy generic base URL (applies to first provider).
MEMORY_CORE_AUDIT_REASONER_OPENAI_MODELOptionalEmptyOpenAI model override.
MEMORY_CORE_AUDIT_REASONER_OPENAI_API_KEYOptionalEmptyOpenAI API key.
MEMORY_CORE_AUDIT_REASONER_OPENAI_BASE_URLOptionalEmptyOpenAI base URL override.
MEMORY_CORE_AUDIT_REASONER_CLAUDE_MODELOptionalEmptyClaude model override.
MEMORY_CORE_AUDIT_REASONER_CLAUDE_API_KEYOptionalEmptyClaude API key.
MEMORY_CORE_AUDIT_REASONER_CLAUDE_BASE_URLOptionalEmptyClaude base URL override.
MEMORY_CORE_AUDIT_REASONER_GEMINI_MODELOptionalEmptyGemini model override.
MEMORY_CORE_AUDIT_REASONER_GEMINI_API_KEYOptionalEmptyGemini API key.
MEMORY_CORE_AUDIT_REASONER_GEMINI_BASE_URLOptionalEmptyGemini base URL override.
OPENAI_API_KEYOptional fallbackEmptyOpenAI fallback key.
ANTHROPIC_API_KEYOptional fallbackEmptyClaude fallback key.
CLAUDE_API_KEYOptional fallbackEmptyClaude fallback key alias.
GEMINI_API_KEYOptional fallbackEmptyGemini fallback key.
MEMORY_CORE_CLAUDE_API_KEYOptional fallbackEmptyLegacy Claude fallback key.

MCP Adapter

VariableRequiredDefaultNotes
MEMORY_CORE_URLYesNoneMust point to memory-core base URL.
MEMORY_CORE_API_KEYYesNoneBearer token for API calls.
MEMORY_CORE_WORKSPACE_KEYNopersonalDefault workspace when unset.
MCP_ADAPTER_LOG_LEVELNoAdapter defaultLogs go to stderr only.

Fail-fast validation:

  • mcp-adapter validates MEMORY_CORE_URL/MEMORY_CORE_API_KEY at startup (Zod-based).
  • invalid values fail immediately instead of failing later during tool calls.

Remote MCP Runtime (claustrum-mcp)

VariableRequiredDefaultNotes
CLAUSTRUM_BASE_URLYes (runtime mode)NoneRemote REST gateway; adapter posts JSON-RPC to /v1/mcp.
CLAUSTRUM_API_KEYConditionalEmptyBearer API key for upstream gateway.
CLAUSTRUM_AUTH_TOKENConditionalEmptyAlternate bearer token when API key is not used.
CLAUSTRUM_HOMENo~/.claustrumRuntime home (versions, logs, state, lock).
CLAUSTRUM_LOG_LEVELNoerrorFile+stderr log threshold.
CLAUSTRUM_AUTO_UPDATENotrueEnable GitHub release auto-update check.
CLAUSTRUM_UPDATE_CHANNELNostableUpdate channel (stable/beta).
CLAUSTRUM_UPDATE_REPONostephen-kim/claustrumAllowed update source repository.
CLAUSTRUM_REQUEST_TIMEOUT_MSNo15000Upstream request timeout per attempt.
CLAUSTRUM_REQUEST_RETRY_COUNTNo1Retry count on transient network failures.

Admin UI

VariableRequiredDefaultNotes
NEXT_PUBLIC_MEMORY_CORE_URLYesNoneBrowser-reachable memory-core URL.
ADMIN_UI_PORTNo (Compose)3000Host port mapping in compose.

Docker Compose Variables

VariableRequiredDefaultNotes
POSTGRES_DBLocaldb profile onlyclaustrumPostgres bootstrap DB name.
POSTGRES_USERLocaldb profile onlyclaustrumPostgres bootstrap user.
POSTGRES_PASSWORDLocaldb profile onlyclaustrumPostgres bootstrap password.
COMPOSE_PROFILESOptionalEmptySet localdb to auto-enable local postgres profile without --profile localdb.
MEMORY_CORE_IMAGEOptionalghcr.io/stephen-kim/claustrum-memory-core:latestImage override for deployment compose.
MCP_ADAPTER_IMAGEOptionalghcr.io/stephen-kim/claustrum-mcp-adapter:latestImage override for deployment compose.
ADMIN_UI_IMAGEOptionalghcr.io/stephen-kim/claustrum-admin-ui:latestImage override for deployment compose.

GitHub Actions Secrets (Optional Workflows)

These are GitHub repository/organization secrets, not local .env keys.

SecretUsed byNotes
MEMORY_CORE_URLclaustrum-ci-events, notion-merge-syncmemory-core endpoint reachable from Actions runner.
MEMORY_CORE_API_KEYclaustrum-ci-events, notion-merge-syncbearer token.
MEMORY_CORE_WORKSPACE_KEYclaustrum-ci-eventsworkspace for CI event ingest.
MEMORY_CORE_PROJECT_KEYclaustrum-ci-eventsoptional fixed project target.
NOTION_WORKSPACE_KEYnotion-merge-syncworkspace for Notion write operation.
NOTION_PAGE_IDnotion-merge-syncoptional target page.
NOTION_PARENT_PAGE_IDnotion-merge-syncoptional parent page target.

Notes

  • Keep .env.example minimal.
  • Put only active values in .env.
  • Prefer DB-stored integration settings from Admin UI unless you intentionally force ENV mode.

Last updated: 2026-02-19