Configuration
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
NEXTAUTH_URL | Yes | — | Base URL for NextAuth.js |
NEXTAUTH_SECRET | Yes | — | Secret for JWT session encryption |
SHELLAPPS_CLIENT_ID | Yes | — | ShellApps OAuth client ID |
SHELLAPPS_CLIENT_SECRET | Yes | — | ShellApps OAuth client secret |
NORMAN_ENGINE_URL | No | http://localhost:3001 | Norman Engine service URL |
NORMAN_AGENT_URL | No | http://localhost:3004 | Norman Agent service URL |
NORMAN_LIBRARY_URL | No | http://localhost:3002 | Norman Library service URL |
MONGODB_URI | Yes | — | MongoDB connection string |
STREAM_TIMEOUT | No | 30000 | Upstream stream timeout in ms |
CHAT_HISTORY_LIMIT | No | 50 | Max chats returned in history |
Authentication Setup
Register a new OAuth application in ShellApps:
- Go to ShellApps developer console
- Create a new application
- Set callback URL:
{NEXTAUTH_URL}/api/auth/callback/shellapps - Copy the client ID and secret to your
.env
Service Dependencies
Norman Chat requires:
- MongoDB — Chat history storage
- Norman Engine — LLM completions (v0.1 mode)
- Norman Agent — Agent completions (v1 mode)
- Norman Library (optional) — File management
- ShellApps — Authentication