.env file at the repository root. Copy .env.example to .env to start. The template starts every service with every feature that needs no personal key.
.env.example has two sections: Required and Optional, grouped by feature. Each entry holds the value that pnpm dev uses. An empty value turns its feature off. Entries that stay commented out use the code default.
Container images and other deployments do not read .env.example. They set their own environment. Rate limits, retry and timeout budgets, and optional tools use their code defaults.
Change these first
Most setups change only a few variables. The first four let other computers on your network reach Linger. The two voice keys turn on the two voice paths.
Here is a
.env for a host at 192.168.1.10:
docker compose up --detach --wait again after you change .env. Browsers and computers then reach Linger through port 3000.
Browsers allow the microphone only on localhost or HTTPS. To use voice from another computer, put an HTTPS proxy in front of port 3000. Serve other computers on your network covers the steps.
Required variables
Every deployment needs these four variables.
The seed covers three call directions: TeamHub to node-services, node-services to TeamHub, and Voice Runtime to TeamHub. Each service derives its credential with HKDF-SHA256, a key derivation function. No override exists. A deployment sets a public
wss:// address for AGENT_RUNNER_PUBLIC_GATEWAY_URL.
Addresses and network
Each service has one URL, and every caller of that service reads the same URL. Split deployments set their own. A CIDR (Classless Inter-Domain Routing) range names a block of IP addresses.Agents and computers
Memory and the personal memory
Connected apps
The scoped Composio project key needs these permissions:
- Connected-account link and read.
- Auth-config read and create.
- Proxy execute.
- Tool catalog read and execute.
Storage
Voice
Voice has two paths with separate keys. Soniox turns on recording, dictation, and archive recovery. xAI turns on Grok Live. Recordings go to the artifact store through TeamHub, which needsffmpeg and ffprobe on its PATH.
The root
docker-compose.yml runs LiveKit. pnpm dev runs livekit-server from your PATH on these values while a voice key is set.
Local development
These variables apply topnpm dev and pnpm stack:up. Leave them commented out until you need them.
The port variables move only the published ports. The containers keep listening on their default ports.
Every variable that runtime code reads must appear in
.env.example or in scripts/env-inventory.json. pnpm env:inventory:check checks this.
Other documented variables
These variables do not live in.env. Other tools and tests read them.
Keep learning
Serve other computers on your network
Serve Linger to other computers on your network.
Enable voice
Turn on recording, dictation, and voice mode.
Contribute
Use
.env to run Linger from source.Install with Docker Compose
Run every service in containers from a checkout.