Skip to content

Environment variables ​

All configuration lives in .env (copied from .env.example via make setup). Every Docker service and host process reads from this file.

Required (set before make up) ​

VariablePurpose
NEXUS_WORKSPACE_ROOTAbsolute path to the parent dir of project workspaces. Composer fails fast if unset.
ROCKETCHAT_ADMIN_PASSWORDRC admin login. Replace the dev default.
POSTGRES_PASSWORDPostgres superuser. Replace the dev default.
DATABASE_URLFull connection URL — must include the password above.
NEXUS_WEBHOOK_TOKENRC → gateway webhook auth. Replace before any non-LAN deploy.
NEXUS_PUBLIC_URLExternally-reachable origin. Used to build join URLs (<NEXUS_PUBLIC_URL>/join/<code>) issued by make create-bridge / make issue-join-link. Defaults to http://localhost:4000; set to your real LAN IP / domain before sharing any URL.
NEXUS_JOIN_TTL_HOURSDefault lifetime (in hours) of a one-shot join code. Default 24. Lower = less leak window; higher = more flexibility.

Rocket.Chat ​

VariableDefaultPurpose
ROCKETCHAT_URLhttp://localhost:3000Public URL of the chat instance
ROCKETCHAT_ADMIN_USERNAMEadminAdmin login
ROCKETCHAT_ADMIN_PASSWORDnexus_admin_devAdmin password
ROCKETCHAT_ADMIN_EMAILadmin@nexus.localAdmin email (verification stub)

Postgres + pgvector ​

VariableDefault
POSTGRES_HOSTlocalhost
POSTGRES_PORT5433
POSTGRES_USERnexus
POSTGRES_PASSWORDnexus_dev_pass
POSTGRES_DBnexus
DATABASE_URLpostgresql://nexus:nexus_dev_pass@localhost:5433/nexus

Redis ​

VariableDefault
REDIS_HOSTlocalhost
REDIS_PORT6380
REDIS_URLredis://localhost:6380

Nexus services (host) ​

VariableDefaultPurpose
GATEWAY_PORT4000gateway listens here
COMPOSER_PORT4001composer health/admin endpoints
RUNTIME_PORT4002runtime health endpoint
MEM0_API_URLhttp://localhost:4100composer talks to mem0 here

Mem0 (memory layer) ​

Mem0 needs an LLM for fact extraction + summarization. Use any OpenAI-compatible endpoint.

VariableDefault
MEM0_LLM_PROVIDERopenai
MEM0_LLM_MODELgpt-4o-mini
MEM0_LLM_BASE_URLhttps://api.openai.com/v1
MEM0_LLM_API_KEYsk-replace-me — set this
MEM0_EMBEDDER_PROVIDERhuggingface (local)
MEM0_EMBEDDER_MODELsentence-transformers/all-MiniLM-L6-v2
MEM0_EMBEDDING_DIMS384

For a self-hosted vLLM:

bash
MEM0_LLM_BASE_URL=http://localhost:8000/v1
MEM0_LLM_MODEL=<your-model-id>
MEM0_LLM_API_KEY=any-string-vllm-ignores-it

CLI binaries ​

The runtime resolves each CLI by $PATH by default. Override only when the binary lives somewhere unusual.

VariableDefaultUsed by
CLAUDE_BINclaude (via PATH)runtime/adapters/claude.ts
HERMES_BINhermes (via PATH)runtime/adapters/hermes.ts
CURSOR_BINagent (via PATH)runtime/adapters/cursor.ts
GEMINI_BINgemini (via PATH)runtime/adapters/gemini.ts
GEMINI_MODELgemini-2.5-flashruntime/adapters/gemini.ts

Compaction tuning (composer) ​

VariableDefaultPurpose
NEXUS_TRANSCRIPT_WINDOW20Raw messages kept verbatim per invocation
NEXUS_OLDER_WINDOW100Older messages summarized behind the window
NEXUS_LANDMARK_WINDOW10Landmark candidates scanned in visible range

Bot-to-bot ​

VariableDefaultPurpose
NEXUS_MAX_HOP2Max bot-to-bot mention dispatches per chain

Logging ​

VariableDefaultNotes
LOG_LEVELinfotrace/debug/info/warn/error
NODE_ENVdevelopmentEnables pino-pretty in dev

Optional fallback keys ​

If you want to use a real provider directly (without the Mem0 layer proxying):

VariableNotes
ANTHROPIC_API_KEYUnused if MEM0_LLM_* is set
OPENAI_API_KEYUnused if MEM0_LLM_* is set

Released under the MIT License.