@alexberardi/jarvis-admin 0.1.67 → 0.1.68
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/package.json +1 -1
- package/public/assets/{index-CPK3ZbaB.js → index-BYNrDxao.js} +10 -10
- package/public/index.html +1 -1
- package/server/dist/data/service-registry.json +410 -80
- package/server/dist/routes/install.d.ts.map +1 -1
- package/server/dist/routes/install.js +2 -0
- package/server/dist/routes/install.js.map +1 -1
- package/server/dist/services/generators/compose-generator.js +26 -0
- package/server/dist/services/generators/compose-generator.js.map +1 -1
- package/server/dist/services/generators/env-generator.d.ts.map +1 -1
- package/server/dist/services/generators/env-generator.js +17 -0
- package/server/dist/services/generators/env-generator.js.map +1 -1
- package/server/dist/services/upgrade/compose-upgrader.d.ts +2 -1
- package/server/dist/services/upgrade/compose-upgrader.d.ts.map +1 -1
- package/server/dist/services/upgrade/compose-upgrader.js +3 -0
- package/server/dist/services/upgrade/compose-upgrader.js.map +1 -1
- package/server/dist/services/upgrade/state-reconstructor.d.ts.map +1 -1
- package/server/dist/services/upgrade/state-reconstructor.js +12 -0
- package/server/dist/services/upgrade/state-reconstructor.js.map +1 -1
- package/server/dist/types/wizard.d.ts +9 -0
- package/server/dist/types/wizard.d.ts.map +1 -1
- package/server/src/data/service-registry.json +411 -81
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "3.0.0",
|
|
3
|
-
"platformVersion": "0.1.
|
|
3
|
+
"platformVersion": "0.1.68",
|
|
4
4
|
"services": [
|
|
5
5
|
{
|
|
6
6
|
"id": "jarvis-config-service",
|
|
@@ -11,15 +11,42 @@
|
|
|
11
11
|
"image": "ghcr.io/alexberardi/jarvis-config-service:latest",
|
|
12
12
|
"healthCheck": "/health",
|
|
13
13
|
"migrate": true,
|
|
14
|
-
"dependsOn": [
|
|
14
|
+
"dependsOn": [
|
|
15
|
+
"postgres"
|
|
16
|
+
],
|
|
15
17
|
"database": "jarvis_config",
|
|
16
18
|
"dbDriverPrefix": "postgresql://",
|
|
17
19
|
"envVars": [
|
|
18
|
-
{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
{
|
|
21
|
+
"name": "DATABASE_URL",
|
|
22
|
+
"description": "PostgreSQL connection string",
|
|
23
|
+
"required": true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "MIGRATIONS_DATABASE_URL",
|
|
27
|
+
"description": "PostgreSQL URL for Alembic migrations",
|
|
28
|
+
"required": true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "JARVIS_CONFIG_ADMIN_TOKEN",
|
|
32
|
+
"description": "Admin token for write operations",
|
|
33
|
+
"required": true,
|
|
34
|
+
"secret": true,
|
|
35
|
+
"secretRef": "JARVIS_CONFIG_ADMIN_TOKEN"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "JARVIS_AUTH_ADMIN_TOKEN",
|
|
39
|
+
"description": "Token for auth admin endpoints",
|
|
40
|
+
"required": true,
|
|
41
|
+
"secret": true,
|
|
42
|
+
"secretRef": "JARVIS_AUTH_ADMIN_TOKEN"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "JARVIS_AUTH_URL",
|
|
46
|
+
"description": "Auth service URL",
|
|
47
|
+
"required": false,
|
|
48
|
+
"default": "http://jarvis-auth:8000"
|
|
49
|
+
}
|
|
23
50
|
]
|
|
24
51
|
},
|
|
25
52
|
{
|
|
@@ -32,14 +59,38 @@
|
|
|
32
59
|
"image": "ghcr.io/alexberardi/jarvis-auth:latest",
|
|
33
60
|
"healthCheck": "/health",
|
|
34
61
|
"migrate": true,
|
|
35
|
-
"dependsOn": [
|
|
62
|
+
"dependsOn": [
|
|
63
|
+
"postgres",
|
|
64
|
+
"jarvis-config-service"
|
|
65
|
+
],
|
|
36
66
|
"database": "jarvis_auth",
|
|
37
67
|
"dbDriverPrefix": "postgresql+psycopg2://",
|
|
38
68
|
"envVars": [
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
69
|
+
{
|
|
70
|
+
"name": "DATABASE_URL",
|
|
71
|
+
"description": "PostgreSQL connection string",
|
|
72
|
+
"required": true
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "AUTH_SECRET_KEY",
|
|
76
|
+
"description": "JWT signing key",
|
|
77
|
+
"required": true,
|
|
78
|
+
"secret": true,
|
|
79
|
+
"secretRef": "AUTH_SECRET_KEY"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "JARVIS_AUTH_ADMIN_TOKEN",
|
|
83
|
+
"description": "Admin token for auth endpoints",
|
|
84
|
+
"required": true,
|
|
85
|
+
"secret": true,
|
|
86
|
+
"secretRef": "JARVIS_AUTH_ADMIN_TOKEN"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "JARVIS_CONFIG_URL",
|
|
90
|
+
"description": "Config service URL",
|
|
91
|
+
"required": false,
|
|
92
|
+
"default": "http://jarvis-config-service:7700"
|
|
93
|
+
}
|
|
43
94
|
]
|
|
44
95
|
},
|
|
45
96
|
{
|
|
@@ -50,11 +101,29 @@
|
|
|
50
101
|
"port": 7702,
|
|
51
102
|
"image": "ghcr.io/alexberardi/jarvis-logs:latest",
|
|
52
103
|
"healthCheck": "/health",
|
|
53
|
-
"dependsOn": [
|
|
104
|
+
"dependsOn": [
|
|
105
|
+
"loki",
|
|
106
|
+
"jarvis-auth"
|
|
107
|
+
],
|
|
54
108
|
"envVars": [
|
|
55
|
-
{
|
|
56
|
-
|
|
57
|
-
|
|
109
|
+
{
|
|
110
|
+
"name": "LOKI_URL",
|
|
111
|
+
"description": "Loki push endpoint",
|
|
112
|
+
"required": true,
|
|
113
|
+
"default": "http://loki:3100"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "JARVIS_CONFIG_URL",
|
|
117
|
+
"description": "Config service URL",
|
|
118
|
+
"required": false,
|
|
119
|
+
"default": "http://jarvis-config-service:7700"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "JARVIS_AUTH_BASE_URL",
|
|
123
|
+
"description": "Auth service URL",
|
|
124
|
+
"required": false,
|
|
125
|
+
"default": "http://jarvis-auth:8000"
|
|
126
|
+
}
|
|
58
127
|
]
|
|
59
128
|
},
|
|
60
129
|
{
|
|
@@ -67,23 +136,80 @@
|
|
|
67
136
|
"image": "ghcr.io/alexberardi/jarvis-command-center:latest",
|
|
68
137
|
"healthCheck": "/health",
|
|
69
138
|
"migrate": true,
|
|
70
|
-
"dependsOn": [
|
|
139
|
+
"dependsOn": [
|
|
140
|
+
"postgres",
|
|
141
|
+
"mosquitto",
|
|
142
|
+
"jarvis-auth",
|
|
143
|
+
"jarvis-config-service"
|
|
144
|
+
],
|
|
71
145
|
"database": "jarvis_command_center",
|
|
72
146
|
"dbDriverPrefix": "postgresql://",
|
|
73
|
-
"volumes": [
|
|
147
|
+
"volumes": [
|
|
148
|
+
"command-center-prompt-providers:/app/core/prompt_providers_custom"
|
|
149
|
+
],
|
|
74
150
|
"llmInterfaceOptions": [
|
|
75
|
-
{
|
|
76
|
-
|
|
77
|
-
|
|
151
|
+
{
|
|
152
|
+
"id": "JarvisToolModel",
|
|
153
|
+
"name": "Llama Tool Model",
|
|
154
|
+
"description": "Full tool descriptions with all examples (default)",
|
|
155
|
+
"default": true
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "Qwen25MediumUntrained",
|
|
159
|
+
"name": "Qwen 2.5 Medium",
|
|
160
|
+
"description": "Optimized for Qwen 2.5 7B-14B models"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "HermesMediumUntrained",
|
|
164
|
+
"name": "Hermes 8B Instruct",
|
|
165
|
+
"description": "Hermes 3 with native function calling"
|
|
166
|
+
}
|
|
78
167
|
],
|
|
79
168
|
"envVars": [
|
|
80
|
-
{
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
{
|
|
86
|
-
|
|
169
|
+
{
|
|
170
|
+
"name": "DATABASE_URL",
|
|
171
|
+
"description": "PostgreSQL connection string",
|
|
172
|
+
"required": true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "ADMIN_API_KEY",
|
|
176
|
+
"description": "Admin endpoint protection",
|
|
177
|
+
"required": true,
|
|
178
|
+
"secret": true,
|
|
179
|
+
"secretRef": "ADMIN_API_KEY"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"name": "JARVIS_AUTH_SECRET_KEY",
|
|
183
|
+
"description": "JWT signing key (shared with jarvis-auth)",
|
|
184
|
+
"required": true,
|
|
185
|
+
"secret": true,
|
|
186
|
+
"secretRef": "AUTH_SECRET_KEY"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "JARVIS_CONFIG_URL",
|
|
190
|
+
"description": "Config service URL",
|
|
191
|
+
"required": false,
|
|
192
|
+
"default": "http://jarvis-config-service:7700"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "JARVIS_MQTT_BROKER_URL",
|
|
196
|
+
"description": "MQTT broker URL for node communication",
|
|
197
|
+
"required": false,
|
|
198
|
+
"default": "mqtt://mosquitto:1884"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"name": "MQTT_USERNAME",
|
|
202
|
+
"description": "Shared broker username",
|
|
203
|
+
"required": false,
|
|
204
|
+
"default": "jarvis"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "MQTT_PASSWORD",
|
|
208
|
+
"description": "Shared broker password (authenticates CC to mosquitto)",
|
|
209
|
+
"required": true,
|
|
210
|
+
"secret": true,
|
|
211
|
+
"secretRef": "MQTT_PASSWORD"
|
|
212
|
+
}
|
|
87
213
|
]
|
|
88
214
|
},
|
|
89
215
|
{
|
|
@@ -95,23 +221,61 @@
|
|
|
95
221
|
"image": "ghcr.io/alexberardi/jarvis-whisper-api:latest",
|
|
96
222
|
"healthCheck": "/health",
|
|
97
223
|
"migrate": true,
|
|
98
|
-
"dependsOn": [
|
|
224
|
+
"dependsOn": [
|
|
225
|
+
"postgres",
|
|
226
|
+
"jarvis-auth",
|
|
227
|
+
"jarvis-config-service"
|
|
228
|
+
],
|
|
99
229
|
"database": "jarvis_whisper",
|
|
100
230
|
"dbDriverPrefix": "postgresql+psycopg2://",
|
|
101
231
|
"gpu": true,
|
|
102
232
|
"cpuFallback": true,
|
|
103
233
|
"nativeCapable": true,
|
|
104
|
-
"volumes": [
|
|
234
|
+
"volumes": [
|
|
235
|
+
"whisper-voice-profiles:/app/voice_profiles"
|
|
236
|
+
],
|
|
105
237
|
"modelOptions": [
|
|
106
|
-
{
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
238
|
+
{
|
|
239
|
+
"id": "base.en",
|
|
240
|
+
"name": "Base English",
|
|
241
|
+
"size": "~140MB",
|
|
242
|
+
"default": true,
|
|
243
|
+
"builtin": true
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "small.en",
|
|
247
|
+
"name": "Small English",
|
|
248
|
+
"size": "~460MB"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"id": "medium.en",
|
|
252
|
+
"name": "Medium English",
|
|
253
|
+
"size": "~1.5GB"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"id": "large-v3",
|
|
257
|
+
"name": "Large v3 (Multilingual)",
|
|
258
|
+
"size": "~3GB"
|
|
259
|
+
}
|
|
110
260
|
],
|
|
111
261
|
"envVars": [
|
|
112
|
-
{
|
|
113
|
-
|
|
114
|
-
|
|
262
|
+
{
|
|
263
|
+
"name": "DATABASE_URL",
|
|
264
|
+
"description": "PostgreSQL connection string",
|
|
265
|
+
"required": true
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "JARVIS_CONFIG_URL",
|
|
269
|
+
"description": "Config service URL",
|
|
270
|
+
"required": false,
|
|
271
|
+
"default": "http://jarvis-config-service:7700"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "JARVIS_AUTH_BASE_URL",
|
|
275
|
+
"description": "Auth service URL",
|
|
276
|
+
"required": false,
|
|
277
|
+
"default": "http://jarvis-auth:8000"
|
|
278
|
+
}
|
|
115
279
|
]
|
|
116
280
|
},
|
|
117
281
|
{
|
|
@@ -122,18 +286,43 @@
|
|
|
122
286
|
"port": 7707,
|
|
123
287
|
"image": "ghcr.io/alexberardi/jarvis-tts:latest",
|
|
124
288
|
"healthCheck": "/health",
|
|
125
|
-
"dependsOn": [
|
|
289
|
+
"dependsOn": [
|
|
290
|
+
"postgres",
|
|
291
|
+
"jarvis-auth",
|
|
292
|
+
"jarvis-config-service"
|
|
293
|
+
],
|
|
126
294
|
"database": "jarvis_tts",
|
|
127
295
|
"dbDriverPrefix": "postgresql+psycopg2://",
|
|
128
296
|
"migrate": true,
|
|
129
297
|
"envVars": [
|
|
130
|
-
{
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
298
|
+
{
|
|
299
|
+
"name": "DATABASE_URL",
|
|
300
|
+
"description": "PostgreSQL connection string",
|
|
301
|
+
"required": true
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "JARVIS_CONFIG_URL",
|
|
305
|
+
"description": "Config service URL",
|
|
306
|
+
"required": false,
|
|
307
|
+
"default": "http://jarvis-config-service:7700"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"name": "TTS_PROVIDER",
|
|
311
|
+
"description": "Active TTS provider (piper, kokoro)",
|
|
312
|
+
"required": false,
|
|
313
|
+
"default": "kokoro"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"name": "HF_HOME",
|
|
317
|
+
"description": "HuggingFace cache dir for Kokoro voice weights",
|
|
318
|
+
"required": false,
|
|
319
|
+
"default": "/app/models/hf_cache"
|
|
320
|
+
}
|
|
134
321
|
],
|
|
135
322
|
"nativeCapable": true,
|
|
136
|
-
"volumes": [
|
|
323
|
+
"volumes": [
|
|
324
|
+
"jarvis-tts-hf-cache:/app/models/hf_cache"
|
|
325
|
+
]
|
|
137
326
|
},
|
|
138
327
|
{
|
|
139
328
|
"id": "jarvis-llm-proxy-api",
|
|
@@ -144,15 +333,32 @@
|
|
|
144
333
|
"image": "ghcr.io/alexberardi/jarvis-llm-proxy-api:latest",
|
|
145
334
|
"healthCheck": "/health",
|
|
146
335
|
"migrate": true,
|
|
147
|
-
"dependsOn": [
|
|
336
|
+
"dependsOn": [
|
|
337
|
+
"postgres",
|
|
338
|
+
"jarvis-auth",
|
|
339
|
+
"jarvis-config-service"
|
|
340
|
+
],
|
|
148
341
|
"database": "jarvis_llm_proxy",
|
|
149
342
|
"dbDriverPrefix": "postgresql+psycopg2://",
|
|
150
343
|
"gpu": true,
|
|
151
344
|
"nativeCapable": true,
|
|
152
345
|
"envVars": [
|
|
153
|
-
{
|
|
154
|
-
|
|
155
|
-
|
|
346
|
+
{
|
|
347
|
+
"name": "DATABASE_URL",
|
|
348
|
+
"description": "PostgreSQL connection string",
|
|
349
|
+
"required": true
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"name": "MIGRATIONS_DATABASE_URL",
|
|
353
|
+
"description": "PostgreSQL URL for Alembic migrations",
|
|
354
|
+
"required": true
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"name": "JARVIS_CONFIG_URL",
|
|
358
|
+
"description": "Config service URL",
|
|
359
|
+
"required": false,
|
|
360
|
+
"default": "http://jarvis-config-service:7700"
|
|
361
|
+
}
|
|
156
362
|
],
|
|
157
363
|
"ipc": "host",
|
|
158
364
|
"shmSize": "8gb",
|
|
@@ -178,16 +384,51 @@
|
|
|
178
384
|
"image": "ghcr.io/alexberardi/jarvis-notifications:latest",
|
|
179
385
|
"healthCheck": "/health",
|
|
180
386
|
"migrate": true,
|
|
181
|
-
"dependsOn": [
|
|
387
|
+
"dependsOn": [
|
|
388
|
+
"postgres",
|
|
389
|
+
"jarvis-auth",
|
|
390
|
+
"jarvis-config-service"
|
|
391
|
+
],
|
|
182
392
|
"database": "jarvis_notifications",
|
|
183
393
|
"dbDriverPrefix": "postgresql+psycopg2://",
|
|
184
394
|
"envVars": [
|
|
185
|
-
{
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
{
|
|
395
|
+
{
|
|
396
|
+
"name": "DATABASE_URL",
|
|
397
|
+
"description": "PostgreSQL connection string",
|
|
398
|
+
"required": true
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"name": "NOTIFICATIONS_PORT",
|
|
402
|
+
"description": "Server port",
|
|
403
|
+
"required": false,
|
|
404
|
+
"default": "7712"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"name": "AUTH_SECRET_KEY",
|
|
408
|
+
"description": "JWT signing key (must match jarvis-auth)",
|
|
409
|
+
"required": true,
|
|
410
|
+
"secret": true,
|
|
411
|
+
"secretRef": "AUTH_SECRET_KEY"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"name": "ADMIN_API_KEY",
|
|
415
|
+
"description": "Admin endpoint protection",
|
|
416
|
+
"required": true,
|
|
417
|
+
"secret": true,
|
|
418
|
+
"secretRef": "ADMIN_API_KEY"
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"name": "JARVIS_CONFIG_URL",
|
|
422
|
+
"description": "Config service URL",
|
|
423
|
+
"required": false,
|
|
424
|
+
"default": "http://jarvis-config-service:7700"
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"name": "JARVIS_AUTH_BASE_URL",
|
|
428
|
+
"description": "Auth service URL",
|
|
429
|
+
"required": false,
|
|
430
|
+
"default": "http://jarvis-auth:8000"
|
|
431
|
+
}
|
|
191
432
|
]
|
|
192
433
|
},
|
|
193
434
|
{
|
|
@@ -198,9 +439,17 @@
|
|
|
198
439
|
"port": 7708,
|
|
199
440
|
"image": "ghcr.io/alexberardi/jarvis-settings-server:latest",
|
|
200
441
|
"healthCheck": "/health",
|
|
201
|
-
"dependsOn": [
|
|
442
|
+
"dependsOn": [
|
|
443
|
+
"jarvis-auth",
|
|
444
|
+
"jarvis-config-service"
|
|
445
|
+
],
|
|
202
446
|
"envVars": [
|
|
203
|
-
{
|
|
447
|
+
{
|
|
448
|
+
"name": "JARVIS_CONFIG_URL",
|
|
449
|
+
"description": "Config service URL",
|
|
450
|
+
"required": false,
|
|
451
|
+
"default": "http://jarvis-config-service:7700"
|
|
452
|
+
}
|
|
204
453
|
]
|
|
205
454
|
},
|
|
206
455
|
{
|
|
@@ -211,9 +460,17 @@
|
|
|
211
460
|
"port": 7722,
|
|
212
461
|
"image": "ghcr.io/alexberardi/jarvis-web:latest",
|
|
213
462
|
"healthCheck": "/",
|
|
214
|
-
"dependsOn": [
|
|
463
|
+
"dependsOn": [
|
|
464
|
+
"jarvis-auth",
|
|
465
|
+
"jarvis-command-center"
|
|
466
|
+
],
|
|
215
467
|
"envVars": [
|
|
216
|
-
{
|
|
468
|
+
{
|
|
469
|
+
"name": "JARVIS_CONFIG_URL",
|
|
470
|
+
"description": "Config service URL",
|
|
471
|
+
"required": false,
|
|
472
|
+
"default": "http://jarvis-config-service:7700"
|
|
473
|
+
}
|
|
217
474
|
]
|
|
218
475
|
},
|
|
219
476
|
{
|
|
@@ -224,11 +481,30 @@
|
|
|
224
481
|
"port": 7710,
|
|
225
482
|
"image": "ghcr.io/alexberardi/jarvis-admin:latest",
|
|
226
483
|
"healthCheck": "/health",
|
|
227
|
-
"dependsOn": [
|
|
484
|
+
"dependsOn": [
|
|
485
|
+
"jarvis-auth",
|
|
486
|
+
"jarvis-config-service"
|
|
487
|
+
],
|
|
228
488
|
"envVars": [
|
|
229
|
-
{
|
|
230
|
-
|
|
231
|
-
|
|
489
|
+
{
|
|
490
|
+
"name": "JARVIS_CONFIG_URL",
|
|
491
|
+
"description": "Config service URL",
|
|
492
|
+
"required": false,
|
|
493
|
+
"default": "http://jarvis-config-service:7700"
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"name": "JARVIS_COMPOSE_PATH",
|
|
497
|
+
"description": "Where the host's docker-compose.yml + .env live (mounted into the container)",
|
|
498
|
+
"required": false,
|
|
499
|
+
"default": "/host/compose"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"name": "COMMAND_CENTER_ADMIN_KEY",
|
|
503
|
+
"description": "Admin API key for command-center admin endpoints (traces, node detail); shares the ADMIN_API_KEY secret",
|
|
504
|
+
"required": true,
|
|
505
|
+
"secret": true,
|
|
506
|
+
"secretRef": "ADMIN_API_KEY"
|
|
507
|
+
}
|
|
232
508
|
],
|
|
233
509
|
"volumes": [
|
|
234
510
|
"/var/run/docker.sock:/var/run/docker.sock",
|
|
@@ -251,59 +527,113 @@
|
|
|
251
527
|
{
|
|
252
528
|
"id": "postgres",
|
|
253
529
|
"name": "PostgreSQL",
|
|
254
|
-
"description": "Primary database
|
|
530
|
+
"description": "Primary database \u2014 stores users, commands, settings, and service config",
|
|
255
531
|
"image": "pgvector/pgvector:pg16",
|
|
256
532
|
"port": 5432,
|
|
257
533
|
"envVars": [
|
|
258
|
-
{
|
|
259
|
-
|
|
260
|
-
|
|
534
|
+
{
|
|
535
|
+
"name": "POSTGRES_USER",
|
|
536
|
+
"description": "Database superuser",
|
|
537
|
+
"required": true,
|
|
538
|
+
"default": "jarvis"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"name": "POSTGRES_PASSWORD",
|
|
542
|
+
"description": "Database password",
|
|
543
|
+
"required": true,
|
|
544
|
+
"secret": true,
|
|
545
|
+
"secretRef": "POSTGRES_PASSWORD"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"name": "POSTGRES_DB",
|
|
549
|
+
"description": "Default database name",
|
|
550
|
+
"required": true,
|
|
551
|
+
"default": "jarvis_config"
|
|
552
|
+
}
|
|
261
553
|
],
|
|
262
|
-
"volumes": [
|
|
554
|
+
"volumes": [
|
|
555
|
+
"jarvis-postgres-data:/var/lib/postgresql/data"
|
|
556
|
+
]
|
|
263
557
|
},
|
|
264
558
|
{
|
|
265
559
|
"id": "redis",
|
|
266
560
|
"name": "Redis",
|
|
267
|
-
"description": "Task queue
|
|
561
|
+
"description": "Task queue \u2014 used for long-running jobs and async pipelines",
|
|
268
562
|
"image": "redis:7-alpine",
|
|
269
563
|
"port": 6379,
|
|
270
564
|
"envVars": [
|
|
271
|
-
{
|
|
565
|
+
{
|
|
566
|
+
"name": "REDIS_PASSWORD",
|
|
567
|
+
"description": "Redis password",
|
|
568
|
+
"required": true,
|
|
569
|
+
"secret": true,
|
|
570
|
+
"secretRef": "REDIS_PASSWORD"
|
|
571
|
+
}
|
|
272
572
|
],
|
|
273
|
-
"volumes": [
|
|
573
|
+
"volumes": [
|
|
574
|
+
"jarvis-redis-data:/data"
|
|
575
|
+
]
|
|
274
576
|
},
|
|
275
577
|
{
|
|
276
578
|
"id": "loki",
|
|
277
579
|
"name": "Loki",
|
|
278
|
-
"description": "Logging database
|
|
580
|
+
"description": "Logging database \u2014 collects and indexes logs from all services",
|
|
279
581
|
"image": "grafana/loki:2.9.0",
|
|
280
582
|
"port": 3100,
|
|
281
583
|
"envVars": [],
|
|
282
|
-
"volumes": [
|
|
584
|
+
"volumes": [
|
|
585
|
+
"jarvis-loki-data:/loki"
|
|
586
|
+
]
|
|
283
587
|
},
|
|
284
588
|
{
|
|
285
589
|
"id": "mosquitto",
|
|
286
590
|
"name": "Mosquitto",
|
|
287
|
-
"description": "MQTT message broker
|
|
591
|
+
"description": "MQTT message broker \u2014 node-to-service communication for TTS, commands, and settings",
|
|
288
592
|
"image": "eclipse-mosquitto:2.0",
|
|
289
593
|
"port": 1884,
|
|
290
594
|
"envVars": [
|
|
291
|
-
{
|
|
292
|
-
|
|
293
|
-
|
|
595
|
+
{
|
|
596
|
+
"name": "MQTT_USERNAME",
|
|
597
|
+
"description": "Shared broker username",
|
|
598
|
+
"required": false,
|
|
599
|
+
"default": "jarvis"
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"name": "MQTT_PASSWORD",
|
|
603
|
+
"description": "Shared broker password (hashed into the password_file at startup)",
|
|
604
|
+
"required": true,
|
|
605
|
+
"secret": true,
|
|
606
|
+
"secretRef": "MQTT_PASSWORD"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"name": "MQTT_ALLOW_ANON",
|
|
610
|
+
"description": "Accept anonymous clients (transition window). Set false to lock the broker.",
|
|
611
|
+
"required": false,
|
|
612
|
+
"default": "true"
|
|
613
|
+
}
|
|
294
614
|
],
|
|
295
|
-
"volumes": [
|
|
615
|
+
"volumes": [
|
|
616
|
+
"jarvis-mosquitto-data:/mosquitto/data"
|
|
617
|
+
]
|
|
296
618
|
},
|
|
297
619
|
{
|
|
298
620
|
"id": "grafana",
|
|
299
621
|
"name": "Grafana",
|
|
300
|
-
"description": "Monitoring dashboard
|
|
622
|
+
"description": "Monitoring dashboard \u2014 visualize logs and service health metrics",
|
|
301
623
|
"image": "grafana/grafana:latest",
|
|
302
624
|
"port": 3000,
|
|
303
625
|
"envVars": [
|
|
304
|
-
{
|
|
626
|
+
{
|
|
627
|
+
"name": "GF_SECURITY_ADMIN_PASSWORD",
|
|
628
|
+
"description": "Grafana admin password",
|
|
629
|
+
"required": true,
|
|
630
|
+
"secret": true,
|
|
631
|
+
"secretRef": "GRAFANA_ADMIN_PASSWORD"
|
|
632
|
+
}
|
|
305
633
|
],
|
|
306
|
-
"volumes": [
|
|
634
|
+
"volumes": [
|
|
635
|
+
"jarvis-grafana-data:/var/lib/grafana"
|
|
636
|
+
]
|
|
307
637
|
}
|
|
308
638
|
]
|
|
309
|
-
}
|
|
639
|
+
}
|