@roomi-fields/notebooklm-mcp 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -22
- package/README.md +2 -0
- package/deployment/INDEX.md +292 -0
- package/deployment/PACKAGE-FILES.txt +180 -0
- package/deployment/QUICK-START.md +100 -0
- package/deployment/docs/01-INSTALL.md +611 -0
- package/deployment/docs/02-CONFIGURATION.md +404 -0
- package/deployment/docs/03-API.md +1691 -0
- package/deployment/docs/04-N8N-INTEGRATION.md +373 -0
- package/deployment/docs/05-TROUBLESHOOTING.md +429 -0
- package/deployment/docs/06-NOTEBOOK-LIBRARY.md +692 -0
- package/deployment/docs/07-AUTO-DISCOVERY.md +236 -0
- package/deployment/docs/08-WSL-USAGE.md +363 -0
- package/deployment/docs/09-MULTI-INTERFACE.md +293 -0
- package/deployment/docs/10-CONTENT-MANAGEMENT.md +421 -0
- package/deployment/docs/11-MULTI-ACCOUNT.md +295 -0
- package/deployment/docs/README.md +207 -0
- package/deployment/scripts/README.md +564 -0
- package/deployment/scripts/install.ps1 +114 -0
- package/deployment/scripts/setup-auth.ps1 +217 -0
- package/deployment/scripts/start-server.ps1 +72 -0
- package/deployment/scripts/stop-server.ps1 +51 -0
- package/deployment/scripts/test-api.ps1 +651 -0
- package/deployment/scripts/test-auth.ps1 +323 -0
- package/deployment/scripts/test-auto-discovery.ps1 +295 -0
- package/deployment/scripts/test-cors.ps1 +398 -0
- package/deployment/scripts/test-errors.ps1 +581 -0
- package/deployment/scripts/test-server.ps1 +140 -0
- package/deployment/scripts/test-sessions.ps1 +426 -0
- package/deployment/scripts/test-validation.ps1 +299 -0
- package/dist/cli/accounts.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -1
- package/dist/content/content-manager.d.ts.map +1 -1
- package/dist/content/content-manager.js +113 -118
- package/dist/content/content-manager.js.map +1 -1
- package/dist/i18n/en.json +120 -0
- package/dist/i18n/fr.json +120 -0
- package/dist/i18n/index.d.ts +168 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +213 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/session/browser-session.d.ts.map +1 -1
- package/dist/session/browser-session.js +1 -0
- package/dist/session/browser-session.js.map +1 -1
- package/dist/session/shared-context-manager.d.ts.map +1 -1
- package/dist/session/shared-context-manager.js +2 -0
- package/dist/session/shared-context-manager.js.map +1 -1
- package/docs/ADDING_A_LANGUAGE.md +209 -0
- package/package.json +6 -3
- package/scripts/archive/add-and-activate-notebook.ps1 +31 -0
- package/scripts/archive/add-new-notebook.ps1 +25 -0
- package/scripts/archive/add-rom1pey.ps1 +2 -0
- package/scripts/archive/add-rpmonster.ps1 +2 -0
- package/scripts/archive/add-source-debug.ps1 +11 -0
- package/scripts/archive/add-source-e2e.ps1 +28 -0
- package/scripts/archive/add-source-visible.ps1 +11 -0
- package/scripts/archive/add-test-notebook.ps1 +13 -0
- package/scripts/archive/add-test-source.ps1 +50 -0
- package/scripts/archive/capture-screen.ps1 +11 -0
- package/scripts/archive/change-language.mjs +45 -0
- package/scripts/archive/change-language.ts +44 -0
- package/scripts/archive/check-account.ps1 +19 -0
- package/scripts/archive/check-notebook-2.ps1 +8 -0
- package/scripts/archive/check-test-notebook.ps1 +11 -0
- package/scripts/archive/create-notebook-auto.ps1 +31 -0
- package/scripts/archive/create-notebook.ps1 +8 -0
- package/scripts/archive/create-rom1pey-notebook.ps1 +19 -0
- package/scripts/archive/create-rom1pey.ps1 +8 -0
- package/scripts/archive/create-test-notebook-fresh.ps1 +21 -0
- package/scripts/archive/create-test-notebook.ps1 +16 -0
- package/scripts/archive/debug-add-source-auto.ps1 +29 -0
- package/scripts/archive/debug-add-source.ps1 +19 -0
- package/scripts/archive/debug-add-text-source.ps1 +47 -0
- package/scripts/archive/debug-home.ps1 +10 -0
- package/scripts/archive/debug-selectors.ps1 +55 -0
- package/scripts/archive/debug-sources-panel.ps1 +22 -0
- package/scripts/archive/debug-ui.ps1 +17 -0
- package/scripts/archive/discover-home.ps1 +26 -0
- package/scripts/archive/kill-automation-chrome.ps1 +37 -0
- package/scripts/archive/list-my-notebooks.ps1 +27 -0
- package/scripts/archive/navigate-home-visible.ps1 +23 -0
- package/scripts/archive/navigate-home.ps1 +15 -0
- package/scripts/archive/run-e2e-english.ps1 +111 -0
- package/scripts/archive/run-e2e-rom1pey-v2.ps1 +122 -0
- package/scripts/archive/run-e2e-rom1pey.ps1 +117 -0
- package/scripts/archive/setup-english-test.ps1 +36 -0
- package/scripts/archive/setup-test-notebook.ps1 +71 -0
- package/scripts/archive/simple-add-source.ps1 +14 -0
- package/scripts/archive/t10.ps1 +2 -0
- package/scripts/archive/t20.ps1 +4 -0
- package/scripts/archive/t30.ps1 +9 -0
- package/scripts/archive/t31.ps1 +11 -0
- package/scripts/archive/t32.ps1 +6 -0
- package/scripts/archive/t39.ps1 +5 -0
- package/scripts/archive/t40.ps1 +5 -0
- package/scripts/archive/t53.ps1 +12 -0
- package/scripts/archive/t54.ps1 +12 -0
- package/scripts/archive/t55.ps1 +11 -0
- package/scripts/archive/t9.ps1 +1 -0
- package/scripts/archive/test-access.ps1 +28 -0
- package/scripts/archive/test-add-delete-source.ps1 +64 -0
- package/scripts/archive/test-add-source-visible.ps1 +16 -0
- package/scripts/archive/test-add-source.ps1 +19 -0
- package/scripts/archive/test-add-text-debug.ps1 +28 -0
- package/scripts/archive/test-add-text-source.ps1 +8 -0
- package/scripts/archive/test-add-url-source.ps1 +7 -0
- package/scripts/archive/test-ask-ascii.ps1 +20 -0
- package/scripts/archive/test-ask-cnv.ps1 +20 -0
- package/scripts/archive/test-ask-headed.ps1 +51 -0
- package/scripts/archive/test-ask-ifs.ps1 +16 -0
- package/scripts/archive/test-ask-now.ps1 +24 -0
- package/scripts/archive/test-ask-real.ps1 +19 -0
- package/scripts/archive/test-ask-visible.ps1 +20 -0
- package/scripts/archive/test-create-notebook.ps1 +8 -0
- package/scripts/archive/test-create-then-add.ps1 +17 -0
- package/scripts/archive/test-delete-source.ps1 +41 -0
- package/scripts/archive/test-e2e-notebook.ps1 +21 -0
- package/scripts/archive/test-english-notebook.ps1 +20 -0
- package/scripts/archive/test-english.ps1 +7 -0
- package/scripts/archive/test-full-custom-instructions.ps1 +40 -0
- package/scripts/archive/test-full-infographic.ps1 +34 -0
- package/scripts/archive/test-full-language.ps1 +21 -0
- package/scripts/archive/test-full-presentation.ps1 +85 -0
- package/scripts/archive/test-full-report.ps1 +34 -0
- package/scripts/archive/test-full-source-selection.ps1 +35 -0
- package/scripts/archive/test-full-video-brief.ps1 +22 -0
- package/scripts/archive/test-full-video-explainer.ps1 +22 -0
- package/scripts/archive/test-full-video-styles.ps1 +37 -0
- package/scripts/archive/test-generate-report.ps1 +15 -0
- package/scripts/archive/test-generate-study-guide.ps1 +11 -0
- package/scripts/archive/test-headed-ask.ps1 +13 -0
- package/scripts/archive/test-headed-now.ps1 +9 -0
- package/scripts/archive/test-headed.ps1 +9 -0
- package/scripts/archive/test-hello.ps1 +7 -0
- package/scripts/archive/test-i18n-studio.ps1 +8 -0
- package/scripts/archive/test-i18n.ps1 +7 -0
- package/scripts/archive/test-manual-headed.ps1 +26 -0
- package/scripts/archive/test-mathieu-quota.ps1 +8 -0
- package/scripts/archive/test-notebook-1.ps1 +10 -0
- package/scripts/archive/test-notebook-2-sources.ps1 +12 -0
- package/scripts/archive/test-notebook1.ps1 +14 -0
- package/scripts/archive/test-personal-notebook.ps1 +14 -0
- package/scripts/archive/test-rate-limit.ps1 +19 -0
- package/scripts/archive/test-real-ask.ps1 +50 -0
- package/scripts/archive/test-real-ask2.ps1 +30 -0
- package/scripts/archive/test-rom1pey.ps1 +7 -0
- package/scripts/archive/test-rotation-complete.ps1 +14 -0
- package/scripts/archive/test-rotation.ps1 +8 -0
- package/scripts/archive/test-show-browser.ps1 +39 -0
- package/scripts/archive/test-update-notebook.ps1 +4 -0
- package/scripts/archive/verify-language-slow.ps1 +21 -0
- package/scripts/archive/verify-language.ps1 +15 -0
- package/scripts/check-server.ps1 +46 -0
- package/scripts/mcp-wsl-helper.sh +146 -0
- package/scripts/start-server.ps1 +94 -0
- package/scripts/stop-server.ps1 +30 -0
- package/scripts/switch-account-language.sh +191 -0
- package/scripts/test-account.ps1 +58 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
# Configuration Guide - NotebookLM MCP HTTP Server
|
|
2
|
+
|
|
3
|
+
> Advanced configuration, environment variables, security
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 Environment Variables
|
|
8
|
+
|
|
9
|
+
### HTTP Configuration
|
|
10
|
+
|
|
11
|
+
| Variable | Default | Description |
|
|
12
|
+
| ----------- | ------------- | ---------------------------------------------------------------- |
|
|
13
|
+
| `HTTP_HOST` | `0.0.0.0` | Listen IP address (`0.0.0.0` = network, `127.0.0.1` = localhost) |
|
|
14
|
+
| `HTTP_PORT` | `3000` | HTTP listen port |
|
|
15
|
+
| `NODE_ENV` | `development` | Environment (`development`, `production`) |
|
|
16
|
+
|
|
17
|
+
**Examples:**
|
|
18
|
+
|
|
19
|
+
```powershell
|
|
20
|
+
# Localhost only (maximum security)
|
|
21
|
+
$env:HTTP_HOST="127.0.0.1"
|
|
22
|
+
$env:HTTP_PORT="3000"
|
|
23
|
+
node dist/http-wrapper.js
|
|
24
|
+
|
|
25
|
+
# Local network (for n8n)
|
|
26
|
+
$env:HTTP_HOST="0.0.0.0"
|
|
27
|
+
$env:HTTP_PORT="3000"
|
|
28
|
+
node dist/http-wrapper.js
|
|
29
|
+
|
|
30
|
+
# Custom port
|
|
31
|
+
$env:HTTP_PORT="8080"
|
|
32
|
+
node dist/http-wrapper.js
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Browser Configuration
|
|
36
|
+
|
|
37
|
+
| Variable | Default | Description |
|
|
38
|
+
| ---------------------- | ------- | ------------------------------------------------------- |
|
|
39
|
+
| `HEADLESS` | `true` | Chrome headless (`true` = invisible, `false` = visible) |
|
|
40
|
+
| `STEALTH_ENABLED` | `true` | Stealth anti-detection mode |
|
|
41
|
+
| `NOTEBOOKLM_UI_LOCALE` | `fr` | UI language for selectors (`fr` or `en`) |
|
|
42
|
+
|
|
43
|
+
**Examples:**
|
|
44
|
+
|
|
45
|
+
```powershell
|
|
46
|
+
# Debug: see Chrome
|
|
47
|
+
$env:HEADLESS="false"
|
|
48
|
+
node dist/http-wrapper.js
|
|
49
|
+
|
|
50
|
+
# Use English UI selectors (for English Google Account)
|
|
51
|
+
$env:NOTEBOOKLM_UI_LOCALE="en"
|
|
52
|
+
node dist/http-wrapper.js
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Session Configuration
|
|
56
|
+
|
|
57
|
+
| Variable | Default | Description |
|
|
58
|
+
| ----------------- | ------- | ------------------------------------- |
|
|
59
|
+
| `MAX_SESSIONS` | `10` | Maximum number of concurrent sessions |
|
|
60
|
+
| `SESSION_TIMEOUT` | `900` | Session timeout in seconds (15 min) |
|
|
61
|
+
|
|
62
|
+
**Examples:**
|
|
63
|
+
|
|
64
|
+
```powershell
|
|
65
|
+
# More simultaneous sessions
|
|
66
|
+
$env:MAX_SESSIONS="20"
|
|
67
|
+
node dist/http-wrapper.js
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Data Configuration
|
|
71
|
+
|
|
72
|
+
| Variable | Default | Description |
|
|
73
|
+
| -------------------- | ----------------------- | ------------------------- |
|
|
74
|
+
| `DATA_DIR` | `./Data` | Persistent data directory |
|
|
75
|
+
| `CHROME_PROFILE_DIR` | `./Data/chrome_profile` | Chrome profile |
|
|
76
|
+
| `BROWSER_STATE_DIR` | `./Data/browser_state` | Browser state |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 🔒 Security
|
|
81
|
+
|
|
82
|
+
### 1. Restrict to Localhost
|
|
83
|
+
|
|
84
|
+
**For local use only:**
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
$env:HTTP_HOST="127.0.0.1"
|
|
88
|
+
node dist/http-wrapper.js
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Advantages:**
|
|
92
|
+
|
|
93
|
+
- ✅ No network access possible
|
|
94
|
+
- ✅ Maximum security
|
|
95
|
+
- ❌ n8n must be on the same machine
|
|
96
|
+
|
|
97
|
+
### 2. Windows Firewall
|
|
98
|
+
|
|
99
|
+
**For n8n on local network, allow only the n8n server IP:**
|
|
100
|
+
|
|
101
|
+
```powershell
|
|
102
|
+
# Replace 192.168.1.100 with your n8n server IP
|
|
103
|
+
New-NetFirewallRule `
|
|
104
|
+
-DisplayName "NotebookLM MCP (n8n only)" `
|
|
105
|
+
-Direction Inbound `
|
|
106
|
+
-LocalPort 3000 `
|
|
107
|
+
-Protocol TCP `
|
|
108
|
+
-Action Allow `
|
|
109
|
+
-RemoteAddress 192.168.1.100
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 3. Add API Authentication (Optional)
|
|
113
|
+
|
|
114
|
+
Modify `src/http-wrapper.ts` after line 27:
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// Authentication middleware
|
|
118
|
+
const API_KEY = process.env.API_KEY || 'change-me';
|
|
119
|
+
|
|
120
|
+
app.use((req, res, next) => {
|
|
121
|
+
// Skip auth for health check
|
|
122
|
+
if (req.path === '/health') {
|
|
123
|
+
return next();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const authHeader = req.headers.authorization;
|
|
127
|
+
if (authHeader !== `Bearer ${API_KEY}`) {
|
|
128
|
+
return res.status(401).json({
|
|
129
|
+
success: false,
|
|
130
|
+
error: 'Unauthorized',
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
next();
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Usage:**
|
|
138
|
+
|
|
139
|
+
```powershell
|
|
140
|
+
# Start with API key
|
|
141
|
+
$env:API_KEY="my-super-secure-secret-token"
|
|
142
|
+
node dist/http-wrapper.js
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**In n8n, add the header:**
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Authorization: Bearer my-super-secure-secret-token
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 4. HTTPS with Reverse Proxy (Production)
|
|
152
|
+
|
|
153
|
+
**Option A: Nginx**
|
|
154
|
+
|
|
155
|
+
```nginx
|
|
156
|
+
server {
|
|
157
|
+
listen 443 ssl;
|
|
158
|
+
server_name notebooklm.mydomain.com;
|
|
159
|
+
|
|
160
|
+
ssl_certificate /path/to/cert.pem;
|
|
161
|
+
ssl_certificate_key /path/to/key.pem;
|
|
162
|
+
|
|
163
|
+
location / {
|
|
164
|
+
proxy_pass http://localhost:3000;
|
|
165
|
+
proxy_http_version 1.1;
|
|
166
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
167
|
+
proxy_set_header Connection 'upgrade';
|
|
168
|
+
proxy_set_header Host $host;
|
|
169
|
+
proxy_cache_bypass $http_upgrade;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Option B: Caddy** (simpler)
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
notebooklm.mydomain.com {
|
|
178
|
+
reverse_proxy localhost:3000
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## ⚙️ Advanced Configuration
|
|
185
|
+
|
|
186
|
+
### .env File (Recommended)
|
|
187
|
+
|
|
188
|
+
Create `.env` at the root:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# HTTP Configuration
|
|
192
|
+
HTTP_HOST=0.0.0.0
|
|
193
|
+
HTTP_PORT=3000
|
|
194
|
+
NODE_ENV=production
|
|
195
|
+
|
|
196
|
+
# Browser Configuration
|
|
197
|
+
HEADLESS=true
|
|
198
|
+
STEALTH_ENABLED=true
|
|
199
|
+
NOTEBOOKLM_UI_LOCALE=fr # or 'en' for English
|
|
200
|
+
|
|
201
|
+
# Session Configuration
|
|
202
|
+
MAX_SESSIONS=10
|
|
203
|
+
SESSION_TIMEOUT=900
|
|
204
|
+
|
|
205
|
+
# Security
|
|
206
|
+
API_KEY=your-secret-token
|
|
207
|
+
|
|
208
|
+
# Data Paths (optional)
|
|
209
|
+
DATA_DIR=./Data
|
|
210
|
+
CHROME_PROFILE_DIR=./Data/chrome_profile
|
|
211
|
+
BROWSER_STATE_DIR=./Data/browser_state
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Load with:**
|
|
215
|
+
|
|
216
|
+
```powershell
|
|
217
|
+
# Install dotenv
|
|
218
|
+
npm install dotenv
|
|
219
|
+
|
|
220
|
+
# Modify http-wrapper.ts (first line):
|
|
221
|
+
import 'dotenv/config';
|
|
222
|
+
|
|
223
|
+
# Start
|
|
224
|
+
node dist/http-wrapper.js
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Logging
|
|
228
|
+
|
|
229
|
+
The server uses the `utils/logger.ts` module with 4 levels:
|
|
230
|
+
|
|
231
|
+
- `log.success()` - Success messages (green)
|
|
232
|
+
- `log.info()` - Information (cyan)
|
|
233
|
+
- `log.warning()` - Warnings (yellow)
|
|
234
|
+
- `log.error()` - Errors (red)
|
|
235
|
+
- `log.dim()` - Secondary messages (gray)
|
|
236
|
+
|
|
237
|
+
**Disable debug logs:**
|
|
238
|
+
|
|
239
|
+
Modify `src/session/browser-session.ts` line 415:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
debug: false, // Disable debug logs
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 🚀 Deployment Modes
|
|
248
|
+
|
|
249
|
+
### Development Mode
|
|
250
|
+
|
|
251
|
+
```powershell
|
|
252
|
+
npm run dev:http
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
- Auto-reload on code changes
|
|
256
|
+
- Debug logs enabled
|
|
257
|
+
- Chrome visible (`HEADLESS=false`)
|
|
258
|
+
|
|
259
|
+
### Production Mode
|
|
260
|
+
|
|
261
|
+
```powershell
|
|
262
|
+
$env:NODE_ENV="production"
|
|
263
|
+
$env:HEADLESS="true"
|
|
264
|
+
node dist/http-wrapper.js
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
- No auto-reload
|
|
268
|
+
- Minimal logs
|
|
269
|
+
- Chrome headless
|
|
270
|
+
|
|
271
|
+
### Background Mode (Windows)
|
|
272
|
+
|
|
273
|
+
```powershell
|
|
274
|
+
# Start
|
|
275
|
+
Start-Process node -ArgumentList "dist/http-wrapper.js" -WindowStyle Hidden
|
|
276
|
+
|
|
277
|
+
# Stop
|
|
278
|
+
Get-Process node | Where-Object {$_.Path -like "*node.exe*"} | Stop-Process
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### With PM2 (Recommended for Production)
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
# Start (PM2 is included as dev dependency)
|
|
285
|
+
npm run daemon:start
|
|
286
|
+
|
|
287
|
+
# Auto-restart on boot
|
|
288
|
+
pm2 startup
|
|
289
|
+
pm2 save
|
|
290
|
+
|
|
291
|
+
# Manage
|
|
292
|
+
npm run daemon:status # View status
|
|
293
|
+
npm run daemon:logs # View logs
|
|
294
|
+
npm run daemon:restart # Restart
|
|
295
|
+
npm run daemon:stop # Stop
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## 📊 Monitoring
|
|
301
|
+
|
|
302
|
+
### Health Check Endpoint
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
curl http://localhost:3000/health
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Response:**
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{
|
|
312
|
+
"success": true,
|
|
313
|
+
"data": {
|
|
314
|
+
"authenticated": true,
|
|
315
|
+
"sessions": 2,
|
|
316
|
+
"library_notebooks": 1,
|
|
317
|
+
"context_age_hours": 0.5
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**Automatic monitoring (cron):**
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Check every 5 minutes
|
|
326
|
+
*/5 * * * * curl -s http://localhost:3000/health | jq -e '.success == true' || echo "Server down!"
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 🔧 Configuration Troubleshooting
|
|
332
|
+
|
|
333
|
+
### Problem: "EADDRINUSE: address already in use"
|
|
334
|
+
|
|
335
|
+
**Cause:** Port already in use
|
|
336
|
+
|
|
337
|
+
**Solution:**
|
|
338
|
+
|
|
339
|
+
```powershell
|
|
340
|
+
# Change the port
|
|
341
|
+
$env:HTTP_PORT="3001"
|
|
342
|
+
node dist/http-wrapper.js
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Problem: n8n cannot connect
|
|
346
|
+
|
|
347
|
+
**Cause:** Firewall or HOST misconfigured
|
|
348
|
+
|
|
349
|
+
**Solution:**
|
|
350
|
+
|
|
351
|
+
```powershell
|
|
352
|
+
# Check config
|
|
353
|
+
$env:HTTP_HOST="0.0.0.0" # Not 127.0.0.1!
|
|
354
|
+
node dist/http-wrapper.js
|
|
355
|
+
|
|
356
|
+
# Check firewall
|
|
357
|
+
Test-NetConnection -ComputerName localhost -Port 3000
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Problem: "Cannot find module 'dotenv'"
|
|
361
|
+
|
|
362
|
+
**Cause:** .env used but dotenv not installed
|
|
363
|
+
|
|
364
|
+
**Solution:**
|
|
365
|
+
|
|
366
|
+
```powershell
|
|
367
|
+
npm install dotenv
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 📝 Complete Example
|
|
373
|
+
|
|
374
|
+
**Production startup script (`start-prod.ps1`):**
|
|
375
|
+
|
|
376
|
+
```powershell
|
|
377
|
+
#!/usr/bin/env pwsh
|
|
378
|
+
|
|
379
|
+
# Configuration
|
|
380
|
+
$env:NODE_ENV="production"
|
|
381
|
+
$env:HTTP_HOST="0.0.0.0"
|
|
382
|
+
$env:HTTP_PORT="3000"
|
|
383
|
+
$env:HEADLESS="true"
|
|
384
|
+
$env:MAX_SESSIONS="15"
|
|
385
|
+
$env:SESSION_TIMEOUT="1800" # 30 min
|
|
386
|
+
|
|
387
|
+
# Checks
|
|
388
|
+
if (-not (Test-Path "dist/http-wrapper.js")) {
|
|
389
|
+
Write-Error "Build missing. Run: npm run build"
|
|
390
|
+
exit 1
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
if (-not (Test-Path "Data/browser_state/state.json")) {
|
|
394
|
+
Write-Warning "Authentication not configured. Run: npm run setup-auth"
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
# Start
|
|
398
|
+
Write-Host "🚀 Starting in production mode..." -ForegroundColor Green
|
|
399
|
+
node dist/http-wrapper.js
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
**Configuration validated!** ✅
|