@@ -91,11 +91,28 @@ services:
9191 - /path/to/my-app:/data/projects/my-app
9292 - models:/data/models
9393 restart : unless-stopped
94+ depends_on :
95+ redis :
96+ condition : service_healthy
97+
98+ redis :
99+ image : redis:7-alpine
100+ restart : unless-stopped
101+ volumes :
102+ - redis-data:/data
103+ healthcheck :
104+ test : ["CMD", "redis-cli", "ping"]
105+ interval : 10s
106+ timeout : 3s
107+ retries : 3
94108
95109volumes :
96110 models :
111+ redis-data :
97112` ` `
98113
114+ > Redis is optional. Remove the ` redis` service and `depends_on` if you don't need shared session store or embedding cache.
115+
99116See [docs/docker.md](docs/docker.md) for details.
100117
101118# # What it does
@@ -129,8 +146,8 @@ See [docs/docker.md](docs/docker.md) for details.
129146# # Web UI
130147
131148Dashboard, Knowledge (notes CRUD), Tasks (kanban board with drag-drop), Skills (recipes),
132- Docs browser, Files browser, Prompts (AI prompt generator), Search (cross-graph ),
133- Graph (Cytoscape.js visualization ), Tools (MCP explorer), Help.
149+ Docs browser, Code browser (symbols, edges, source), Files browser, Prompts (AI prompt generator),
150+ Search (cross-graph ), Tools (MCP explorer), Help.
134151
135152Light/dark theme. Real-time WebSocket updates. Login page when auth is configured.
136153
@@ -142,18 +159,20 @@ users:
142159 name: "Alice"
143160 email: "alice@example.com"
144161 apiKey: "mgm-key-abc123"
145- passwordHash: "$scrypt$..." # generated by: graphmemory users add
162+ passwordHash: "$scrypt$65536$ ..." # generated by: graphmemory users add
146163
147164server:
148165 jwtSecret: "your-secret"
149166 defaultAccess: rw
150- redis: "redis://localhost:6379" # optional: session store + embedding cache
167+ redis: # optional: session store + embedding cache
168+ enabled: true
169+ url: "redis://localhost:6379"
151170` ` `
152171
153172- **UI login**: email + password → JWT cookies (httpOnly, SameSite=Strict)
154173- **API access**: `Authorization: Bearer <apiKey>`
155174- **OAuth 2.0**: Authorization Code + PKCE (S256) with frontend consent page at `/ui/auth/authorize`; also supports client credentials and refresh tokens
156- - **OAuth endpoints**: `/oauth/userinfo`, `/oauth/introspect`, `/oauth/revoke`, `/oauth/end-session`
175+ - **OAuth endpoints**: `/api/ oauth/userinfo`, `/api/ oauth/introspect`, `/api/ oauth/revoke`, `/api /oauth/end-session`
157176- **ACL**: graph > project > workspace > server > defaultAccess (`deny` / `r` / `rw`)
158177- **Redis** (optional): when `server.redis` is configured, used for OAuth session store and embedding cache
159178
@@ -164,7 +183,7 @@ See [docs/authentication.md](docs/authentication.md).
164183` ` ` bash
165184npm run dev # tsc --watch (backend)
166185cd ui && npm run dev # Vite on :5173, proxies /api → :3000
167- npm test # 1649 tests across 42 suites
186+ npm test # 1700 tests across 44 suites
168187` ` `
169188
170189# # Documentation
0 commit comments