@serve.zone/appstore 0.2.3 → 0.3.0
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/apps/ghost/versions/1.0.0/config.json +1 -1
- package/apps/grafana/versions/1.0.0/config.json +1 -1
- package/appstore.json +1 -6
- package/changelog.md +15 -1
- package/dist_ts_client/classes.appstoreresolver.d.ts +9 -1
- package/dist_ts_client/classes.appstoreresolver.js +43 -2
- package/dist_ts_client/data.generated.d.ts +2 -0
- package/dist_ts_client/data.generated.js +985 -0
- package/dist_ts_client/index.js +1 -1
- package/dist_ts_client/types.d.ts +13 -0
- package/dist_ts_client/types.js +1 -1
- package/package.json +3 -3
- package/readme.md +9 -3
- package/ts_client/classes.appstoreresolver.ts +50 -1
- package/ts_client/data.generated.ts +987 -0
- package/ts_client/readme.md +66 -0
- package/ts_client/types.ts +15 -0
|
@@ -0,0 +1,987 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-data-module.mjs. Do not edit manually.
|
|
2
|
+
|
|
3
|
+
import type { IAppStorePackageData } from './types.js';
|
|
4
|
+
|
|
5
|
+
export const appStorePackageData: IAppStorePackageData = {
|
|
6
|
+
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
7
|
+
"jsonFiles": {
|
|
8
|
+
"apps/adminer/app.json": {
|
|
9
|
+
"id": "adminer",
|
|
10
|
+
"name": "Adminer",
|
|
11
|
+
"description": "Lightweight database management tool with web interface",
|
|
12
|
+
"category": "Databases",
|
|
13
|
+
"iconName": "adminer",
|
|
14
|
+
"latestVersion": "1.0.0",
|
|
15
|
+
"versions": [
|
|
16
|
+
"1.0.0"
|
|
17
|
+
],
|
|
18
|
+
"maintainer": "serve.zone"
|
|
19
|
+
},
|
|
20
|
+
"apps/adminer/versions/1.0.0/config.json": {
|
|
21
|
+
"image": "adminer:latest",
|
|
22
|
+
"port": 8080
|
|
23
|
+
},
|
|
24
|
+
"apps/cloudly/app.json": {
|
|
25
|
+
"id": "cloudly",
|
|
26
|
+
"name": "Cloudly",
|
|
27
|
+
"description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
|
|
28
|
+
"category": "Dev Tools",
|
|
29
|
+
"iconName": "server",
|
|
30
|
+
"latestVersion": "1.0.0",
|
|
31
|
+
"versions": [
|
|
32
|
+
"1.0.0"
|
|
33
|
+
],
|
|
34
|
+
"maintainer": "serve.zone",
|
|
35
|
+
"links": {
|
|
36
|
+
"Source": "https://code.foss.global/serve.zone/cloudly",
|
|
37
|
+
"Docs": "https://serve.zone"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"apps/cloudly/versions/1.0.0/config.json": {
|
|
41
|
+
"image": "code.foss.global/serve.zone/cloudly:latest",
|
|
42
|
+
"port": 80,
|
|
43
|
+
"envVars": [
|
|
44
|
+
{
|
|
45
|
+
"key": "SERVEZONE_ENVIRONMENT",
|
|
46
|
+
"value": "production",
|
|
47
|
+
"description": "Cloudly runtime environment.",
|
|
48
|
+
"required": true
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"key": "SERVEZONE_URL",
|
|
52
|
+
"value": "${SERVICE_DOMAIN}",
|
|
53
|
+
"description": "Public Cloudly hostname without protocol.",
|
|
54
|
+
"required": true
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"key": "SERVEZONE_PORT",
|
|
58
|
+
"value": "80",
|
|
59
|
+
"description": "Internal Cloudly HTTP port inside the container.",
|
|
60
|
+
"required": true
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"key": "SERVEZONE_SSLMODE",
|
|
64
|
+
"value": "external",
|
|
65
|
+
"description": "Use external TLS termination through Onebox or dcrouter.",
|
|
66
|
+
"required": true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"key": "MONGODB_URL",
|
|
70
|
+
"value": "${MONGODB_URI}",
|
|
71
|
+
"description": "Authenticated MongoDB connection URL provisioned by Onebox.",
|
|
72
|
+
"required": true
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"key": "MONGODB_NAME",
|
|
76
|
+
"value": "${MONGODB_DATABASE}",
|
|
77
|
+
"description": "MongoDB database name provisioned by Onebox.",
|
|
78
|
+
"required": true
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"key": "MONGODB_USER",
|
|
82
|
+
"value": "${MONGODB_USERNAME}",
|
|
83
|
+
"description": "MongoDB username provisioned by Onebox.",
|
|
84
|
+
"required": true
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"key": "MONGODB_PASS",
|
|
88
|
+
"value": "${MONGODB_PASSWORD}",
|
|
89
|
+
"description": "MongoDB password provisioned by Onebox.",
|
|
90
|
+
"required": true
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"key": "S3_ENDPOINT",
|
|
94
|
+
"value": "onebox-minio",
|
|
95
|
+
"description": "S3 endpoint host for the MinIO service provisioned by Onebox.",
|
|
96
|
+
"required": true
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"key": "S3_PORT",
|
|
100
|
+
"value": "9000",
|
|
101
|
+
"description": "S3 endpoint port for the MinIO service provisioned by Onebox.",
|
|
102
|
+
"required": true
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"key": "S3_USESSL",
|
|
106
|
+
"value": "false",
|
|
107
|
+
"description": "Use plain HTTP for internal MinIO traffic on the Onebox network.",
|
|
108
|
+
"required": true
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"key": "S3_BUCKET",
|
|
112
|
+
"value": "${S3_BUCKET}",
|
|
113
|
+
"description": "S3 bucket provisioned by Onebox for Cloudly's registry.",
|
|
114
|
+
"required": true
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"key": "S3_ACCESSKEY",
|
|
118
|
+
"value": "${S3_ACCESS_KEY}",
|
|
119
|
+
"description": "S3 access key provisioned by Onebox.",
|
|
120
|
+
"required": true
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"key": "S3_SECRETKEY",
|
|
124
|
+
"value": "${S3_SECRET_KEY}",
|
|
125
|
+
"description": "S3 secret key provisioned by Onebox.",
|
|
126
|
+
"required": true
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"platformRequirements": {
|
|
130
|
+
"mongodb": true,
|
|
131
|
+
"s3": true
|
|
132
|
+
},
|
|
133
|
+
"minOneboxVersion": "2.2.0"
|
|
134
|
+
},
|
|
135
|
+
"apps/ghost/app.json": {
|
|
136
|
+
"id": "ghost",
|
|
137
|
+
"name": "Ghost",
|
|
138
|
+
"description": "Professional publishing platform for blogs and newsletters",
|
|
139
|
+
"category": "CMS",
|
|
140
|
+
"iconName": "ghost",
|
|
141
|
+
"latestVersion": "1.0.0",
|
|
142
|
+
"versions": [
|
|
143
|
+
"1.0.0"
|
|
144
|
+
],
|
|
145
|
+
"maintainer": "serve.zone"
|
|
146
|
+
},
|
|
147
|
+
"apps/ghost/versions/1.0.0/config.json": {
|
|
148
|
+
"image": "ghost:latest",
|
|
149
|
+
"port": 2368,
|
|
150
|
+
"envVars": [
|
|
151
|
+
{
|
|
152
|
+
"key": "database__client",
|
|
153
|
+
"value": "mysql",
|
|
154
|
+
"description": "Database client"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"key": "database__connection__host",
|
|
158
|
+
"value": "${MARIADB_HOST}",
|
|
159
|
+
"description": "Database host (auto-injected by platform)"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"key": "database__connection__port",
|
|
163
|
+
"value": "${MARIADB_PORT}",
|
|
164
|
+
"description": "Database port (auto-injected by platform)"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"key": "database__connection__user",
|
|
168
|
+
"value": "${MARIADB_USER}",
|
|
169
|
+
"description": "Database user (auto-injected by platform)"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"key": "database__connection__password",
|
|
173
|
+
"value": "${MARIADB_PASSWORD}",
|
|
174
|
+
"description": "Database password (auto-injected by platform)"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"key": "database__connection__database",
|
|
178
|
+
"value": "${MARIADB_DATABASE}",
|
|
179
|
+
"description": "Database name (auto-injected by platform)"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"key": "url",
|
|
183
|
+
"value": "https://${SERVICE_DOMAIN}",
|
|
184
|
+
"description": "Public URL of the blog"
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"platformRequirements": {
|
|
188
|
+
"mariadb": true
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"apps/gitea/app.json": {
|
|
192
|
+
"id": "gitea",
|
|
193
|
+
"name": "Gitea",
|
|
194
|
+
"description": "Lightweight self-hosted Git service",
|
|
195
|
+
"category": "Development",
|
|
196
|
+
"iconName": "gitea",
|
|
197
|
+
"latestVersion": "1.0.0",
|
|
198
|
+
"versions": [
|
|
199
|
+
"1.0.0"
|
|
200
|
+
],
|
|
201
|
+
"maintainer": "serve.zone"
|
|
202
|
+
},
|
|
203
|
+
"apps/gitea/versions/1.0.0/config.json": {
|
|
204
|
+
"image": "gitea/gitea:latest",
|
|
205
|
+
"port": 3000,
|
|
206
|
+
"envVars": [
|
|
207
|
+
{
|
|
208
|
+
"key": "GITEA__database__DB_TYPE",
|
|
209
|
+
"value": "mysql",
|
|
210
|
+
"description": "Database type"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"key": "GITEA__database__HOST",
|
|
214
|
+
"value": "${MARIADB_HOST}:${MARIADB_PORT}",
|
|
215
|
+
"description": "Database host (auto-injected by platform)"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"key": "GITEA__database__NAME",
|
|
219
|
+
"value": "${MARIADB_DATABASE}",
|
|
220
|
+
"description": "Database name (auto-injected by platform)"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"key": "GITEA__database__USER",
|
|
224
|
+
"value": "${MARIADB_USER}",
|
|
225
|
+
"description": "Database user (auto-injected by platform)"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"key": "GITEA__database__PASSWD",
|
|
229
|
+
"value": "${MARIADB_PASSWORD}",
|
|
230
|
+
"description": "Database password (auto-injected by platform)"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"platformRequirements": {
|
|
234
|
+
"mariadb": true
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
"apps/gitops/app.json": {
|
|
238
|
+
"id": "gitops",
|
|
239
|
+
"name": "GitOps",
|
|
240
|
+
"description": "Operations dashboard for Git hosting, CI/CD secrets, pipeline logs, and documentation sync.",
|
|
241
|
+
"category": "Dev Tools",
|
|
242
|
+
"iconName": "git-branch",
|
|
243
|
+
"latestVersion": "1.0.0",
|
|
244
|
+
"versions": [
|
|
245
|
+
"1.0.0"
|
|
246
|
+
],
|
|
247
|
+
"maintainer": "serve.zone",
|
|
248
|
+
"links": {
|
|
249
|
+
"Source": "https://code.foss.global/serve.zone/gitops",
|
|
250
|
+
"Docs": "https://serve.zone"
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"apps/gitops/versions/1.0.0/config.json": {
|
|
254
|
+
"image": "code.foss.global/serve.zone/gitops:2.13.0",
|
|
255
|
+
"port": 3000,
|
|
256
|
+
"envVars": [
|
|
257
|
+
{
|
|
258
|
+
"key": "GITOPS_PORT",
|
|
259
|
+
"value": "3000",
|
|
260
|
+
"description": "Internal GitOps HTTP port inside the container.",
|
|
261
|
+
"required": true
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"key": "GITOPS_ADMIN_USERNAME",
|
|
265
|
+
"value": "",
|
|
266
|
+
"description": "Initial admin username for the GitOps web UI.",
|
|
267
|
+
"required": true
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"key": "GITOPS_ADMIN_PASSWORD",
|
|
271
|
+
"value": "",
|
|
272
|
+
"description": "Initial admin password for the GitOps web UI.",
|
|
273
|
+
"required": true
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"volumes": [
|
|
277
|
+
"/data/.serve.zone/gitops"
|
|
278
|
+
],
|
|
279
|
+
"minOneboxVersion": "1.28.0"
|
|
280
|
+
},
|
|
281
|
+
"apps/grafana/app.json": {
|
|
282
|
+
"id": "grafana",
|
|
283
|
+
"name": "Grafana",
|
|
284
|
+
"description": "Open-source analytics and monitoring platform",
|
|
285
|
+
"category": "Monitoring",
|
|
286
|
+
"iconName": "grafana",
|
|
287
|
+
"latestVersion": "1.0.0",
|
|
288
|
+
"versions": [
|
|
289
|
+
"1.0.0"
|
|
290
|
+
],
|
|
291
|
+
"maintainer": "serve.zone"
|
|
292
|
+
},
|
|
293
|
+
"apps/grafana/versions/1.0.0/config.json": {
|
|
294
|
+
"image": "grafana/grafana:latest",
|
|
295
|
+
"port": 3000,
|
|
296
|
+
"envVars": [
|
|
297
|
+
{
|
|
298
|
+
"key": "GF_SECURITY_ADMIN_PASSWORD",
|
|
299
|
+
"value": "",
|
|
300
|
+
"description": "Admin password",
|
|
301
|
+
"required": true
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
},
|
|
305
|
+
"apps/mariadb/app.json": {
|
|
306
|
+
"id": "mariadb",
|
|
307
|
+
"name": "MariaDB",
|
|
308
|
+
"description": "Community-developed relational database forked from MySQL",
|
|
309
|
+
"category": "Databases",
|
|
310
|
+
"iconName": "mariadb",
|
|
311
|
+
"latestVersion": "1.0.0",
|
|
312
|
+
"versions": [
|
|
313
|
+
"1.0.0"
|
|
314
|
+
],
|
|
315
|
+
"maintainer": "serve.zone"
|
|
316
|
+
},
|
|
317
|
+
"apps/mariadb/versions/1.0.0/config.json": {
|
|
318
|
+
"image": "mariadb:latest",
|
|
319
|
+
"port": 3306,
|
|
320
|
+
"envVars": [
|
|
321
|
+
{
|
|
322
|
+
"key": "MARIADB_ROOT_PASSWORD",
|
|
323
|
+
"value": "",
|
|
324
|
+
"description": "Root password",
|
|
325
|
+
"required": true
|
|
326
|
+
}
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
"apps/mattermost/app.json": {
|
|
330
|
+
"id": "mattermost",
|
|
331
|
+
"name": "Mattermost",
|
|
332
|
+
"description": "Open-source team messaging and collaboration platform",
|
|
333
|
+
"category": "Communication",
|
|
334
|
+
"iconName": "mattermost",
|
|
335
|
+
"latestVersion": "1.0.0",
|
|
336
|
+
"versions": [
|
|
337
|
+
"1.0.0"
|
|
338
|
+
],
|
|
339
|
+
"maintainer": "serve.zone"
|
|
340
|
+
},
|
|
341
|
+
"apps/mattermost/versions/1.0.0/config.json": {
|
|
342
|
+
"image": "mattermost/mattermost-team-edition:latest",
|
|
343
|
+
"port": 8065
|
|
344
|
+
},
|
|
345
|
+
"apps/n8n/app.json": {
|
|
346
|
+
"id": "n8n",
|
|
347
|
+
"name": "n8n",
|
|
348
|
+
"description": "Workflow automation platform with visual editor",
|
|
349
|
+
"category": "Automation",
|
|
350
|
+
"iconName": "n8n",
|
|
351
|
+
"latestVersion": "1.0.0",
|
|
352
|
+
"versions": [
|
|
353
|
+
"1.0.0"
|
|
354
|
+
],
|
|
355
|
+
"maintainer": "serve.zone"
|
|
356
|
+
},
|
|
357
|
+
"apps/n8n/versions/1.0.0/config.json": {
|
|
358
|
+
"image": "n8nio/n8n:latest",
|
|
359
|
+
"port": 5678
|
|
360
|
+
},
|
|
361
|
+
"apps/nextcloud/app.json": {
|
|
362
|
+
"id": "nextcloud",
|
|
363
|
+
"name": "Nextcloud",
|
|
364
|
+
"description": "Self-hosted productivity and file sharing platform",
|
|
365
|
+
"category": "Cloud Storage",
|
|
366
|
+
"iconName": "nextcloud",
|
|
367
|
+
"latestVersion": "1.0.0",
|
|
368
|
+
"versions": [
|
|
369
|
+
"1.0.0"
|
|
370
|
+
],
|
|
371
|
+
"maintainer": "serve.zone"
|
|
372
|
+
},
|
|
373
|
+
"apps/nextcloud/versions/1.0.0/config.json": {
|
|
374
|
+
"image": "nextcloud:latest",
|
|
375
|
+
"port": 80,
|
|
376
|
+
"envVars": [
|
|
377
|
+
{
|
|
378
|
+
"key": "MYSQL_HOST",
|
|
379
|
+
"value": "${MARIADB_HOST}",
|
|
380
|
+
"description": "Database host (auto-injected by platform)"
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"key": "MYSQL_USER",
|
|
384
|
+
"value": "${MARIADB_USER}",
|
|
385
|
+
"description": "Database user (auto-injected by platform)"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"key": "MYSQL_PASSWORD",
|
|
389
|
+
"value": "${MARIADB_PASSWORD}",
|
|
390
|
+
"description": "Database password (auto-injected by platform)"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"key": "MYSQL_DATABASE",
|
|
394
|
+
"value": "${MARIADB_DATABASE}",
|
|
395
|
+
"description": "Database name (auto-injected by platform)"
|
|
396
|
+
}
|
|
397
|
+
],
|
|
398
|
+
"platformRequirements": {
|
|
399
|
+
"mariadb": true,
|
|
400
|
+
"valkey": true
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
"apps/nginx/app.json": {
|
|
404
|
+
"id": "nginx",
|
|
405
|
+
"name": "Nginx",
|
|
406
|
+
"description": "High-performance web server and reverse proxy",
|
|
407
|
+
"category": "Web Servers",
|
|
408
|
+
"iconName": "nginx",
|
|
409
|
+
"latestVersion": "1.0.0",
|
|
410
|
+
"versions": [
|
|
411
|
+
"1.0.0"
|
|
412
|
+
],
|
|
413
|
+
"maintainer": "serve.zone"
|
|
414
|
+
},
|
|
415
|
+
"apps/nginx/versions/1.0.0/config.json": {
|
|
416
|
+
"image": "nginx:alpine",
|
|
417
|
+
"port": 80
|
|
418
|
+
},
|
|
419
|
+
"apps/plausible/app.json": {
|
|
420
|
+
"id": "plausible",
|
|
421
|
+
"name": "Plausible",
|
|
422
|
+
"description": "Privacy-friendly web analytics platform",
|
|
423
|
+
"category": "Analytics",
|
|
424
|
+
"iconName": "plausible",
|
|
425
|
+
"latestVersion": "1.0.0",
|
|
426
|
+
"versions": [
|
|
427
|
+
"1.0.0"
|
|
428
|
+
],
|
|
429
|
+
"maintainer": "serve.zone"
|
|
430
|
+
},
|
|
431
|
+
"apps/plausible/versions/1.0.0/config.json": {
|
|
432
|
+
"image": "plausible/analytics:latest",
|
|
433
|
+
"port": 8000,
|
|
434
|
+
"platformRequirements": {
|
|
435
|
+
"clickhouse": true
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"apps/portainer/app.json": {
|
|
439
|
+
"id": "portainer",
|
|
440
|
+
"name": "Portainer",
|
|
441
|
+
"description": "Container management UI for Docker environments",
|
|
442
|
+
"category": "Infrastructure",
|
|
443
|
+
"iconName": "portainer",
|
|
444
|
+
"latestVersion": "1.0.0",
|
|
445
|
+
"versions": [
|
|
446
|
+
"1.0.0"
|
|
447
|
+
],
|
|
448
|
+
"maintainer": "serve.zone"
|
|
449
|
+
},
|
|
450
|
+
"apps/portainer/versions/1.0.0/config.json": {
|
|
451
|
+
"image": "portainer/portainer-ce:latest",
|
|
452
|
+
"port": 9000
|
|
453
|
+
},
|
|
454
|
+
"apps/postgres/app.json": {
|
|
455
|
+
"id": "postgres",
|
|
456
|
+
"name": "PostgreSQL",
|
|
457
|
+
"description": "Advanced open-source relational database",
|
|
458
|
+
"category": "Databases",
|
|
459
|
+
"iconName": "postgres",
|
|
460
|
+
"latestVersion": "1.0.0",
|
|
461
|
+
"versions": [
|
|
462
|
+
"1.0.0"
|
|
463
|
+
],
|
|
464
|
+
"maintainer": "serve.zone"
|
|
465
|
+
},
|
|
466
|
+
"apps/postgres/versions/1.0.0/config.json": {
|
|
467
|
+
"image": "postgres:16-alpine",
|
|
468
|
+
"port": 5432,
|
|
469
|
+
"envVars": [
|
|
470
|
+
{
|
|
471
|
+
"key": "POSTGRES_PASSWORD",
|
|
472
|
+
"value": "",
|
|
473
|
+
"description": "Superuser password",
|
|
474
|
+
"required": true
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"key": "POSTGRES_USER",
|
|
478
|
+
"value": "postgres",
|
|
479
|
+
"description": "Superuser name"
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"key": "POSTGRES_DB",
|
|
483
|
+
"value": "postgres",
|
|
484
|
+
"description": "Default database name"
|
|
485
|
+
}
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"apps/rustdesk-server/app.json": {
|
|
489
|
+
"id": "rustdesk-server",
|
|
490
|
+
"name": "RustDesk Server",
|
|
491
|
+
"description": "Self-hosted RustDesk ID and relay server for remote desktop clients",
|
|
492
|
+
"category": "Remote Access",
|
|
493
|
+
"iconName": "monitor",
|
|
494
|
+
"latestVersion": "1.0.0",
|
|
495
|
+
"versions": [
|
|
496
|
+
"1.0.0"
|
|
497
|
+
],
|
|
498
|
+
"maintainer": "serve.zone",
|
|
499
|
+
"links": {
|
|
500
|
+
"Website": "https://rustdesk.com/",
|
|
501
|
+
"Docs": "https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/docker/"
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"apps/rustdesk-server/versions/1.0.0/config.json": {
|
|
505
|
+
"image": "rustdesk/rustdesk-server-s6:latest",
|
|
506
|
+
"port": 21116,
|
|
507
|
+
"envVars": [
|
|
508
|
+
{
|
|
509
|
+
"key": "RELAY",
|
|
510
|
+
"value": "${SERVICE_DOMAIN}:21116",
|
|
511
|
+
"description": "Public RustDesk relay address advertised to clients",
|
|
512
|
+
"required": true
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"key": "ENCRYPTED_ONLY",
|
|
516
|
+
"value": "0",
|
|
517
|
+
"description": "Set to 1 to require encrypted client connections only"
|
|
518
|
+
}
|
|
519
|
+
]
|
|
520
|
+
},
|
|
521
|
+
"apps/siprouter/app.json": {
|
|
522
|
+
"id": "siprouter",
|
|
523
|
+
"name": "SIP Router",
|
|
524
|
+
"description": "SIP B2BUA, WebRTC softphone bridge, voicemail, fax, and live telephony operations dashboard.",
|
|
525
|
+
"category": "Communication",
|
|
526
|
+
"iconName": "phone",
|
|
527
|
+
"latestVersion": "1.0.0",
|
|
528
|
+
"versions": [
|
|
529
|
+
"1.0.0"
|
|
530
|
+
],
|
|
531
|
+
"maintainer": "serve.zone",
|
|
532
|
+
"links": {
|
|
533
|
+
"Source": "https://code.foss.global/serve.zone/siprouter",
|
|
534
|
+
"Docs": "https://serve.zone"
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
"apps/siprouter/versions/1.0.0/config.json": {
|
|
538
|
+
"image": "code.foss.global/serve.zone/siprouter:1.28.0",
|
|
539
|
+
"port": 3060,
|
|
540
|
+
"envVars": [
|
|
541
|
+
{
|
|
542
|
+
"key": "SIPROUTER_LAN_IP",
|
|
543
|
+
"value": "",
|
|
544
|
+
"description": "LAN or public IP address that SIP devices/providers should use for SIP and SDP.",
|
|
545
|
+
"required": true
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"key": "SIPROUTER_PUBLIC_IP",
|
|
549
|
+
"value": "",
|
|
550
|
+
"description": "Optional public IP seed for provider registration Contact/Via headers. Leave empty for provider-detected IP."
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"key": "SIPROUTER_LAN_PORT",
|
|
554
|
+
"value": "5070",
|
|
555
|
+
"description": "SIP signaling port used by the Rust proxy engine.",
|
|
556
|
+
"required": true
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"key": "SIPROUTER_WEB_UI_PORT",
|
|
560
|
+
"value": "3060",
|
|
561
|
+
"description": "Internal dashboard HTTP/WebSocket port.",
|
|
562
|
+
"required": true
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"key": "SIPROUTER_RTP_PORT_MIN",
|
|
566
|
+
"value": "20000",
|
|
567
|
+
"description": "First UDP RTP media port.",
|
|
568
|
+
"required": true
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"key": "SIPROUTER_RTP_PORT_MAX",
|
|
572
|
+
"value": "20200",
|
|
573
|
+
"description": "Last UDP RTP media port.",
|
|
574
|
+
"required": true
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"key": "SIPROUTER_INITIAL_DEVICE_ID",
|
|
578
|
+
"value": "desk-phone",
|
|
579
|
+
"description": "Initial SIP device ID used when the first SmartData config is created.",
|
|
580
|
+
"required": true
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"key": "SIPROUTER_INITIAL_DEVICE_DISPLAY_NAME",
|
|
584
|
+
"value": "Desk Phone",
|
|
585
|
+
"description": "Initial SIP device display name.",
|
|
586
|
+
"required": true
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"key": "SIPROUTER_INITIAL_DEVICE_ADDRESS",
|
|
590
|
+
"value": "",
|
|
591
|
+
"description": "Expected LAN IP address of the initial SIP device.",
|
|
592
|
+
"required": true
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"key": "SIPROUTER_INITIAL_DEVICE_EXTENSION",
|
|
596
|
+
"value": "100",
|
|
597
|
+
"description": "Initial SIP device extension.",
|
|
598
|
+
"required": true
|
|
599
|
+
}
|
|
600
|
+
],
|
|
601
|
+
"publishedPorts": [
|
|
602
|
+
{
|
|
603
|
+
"targetPort": 3060,
|
|
604
|
+
"publishedPort": 3060,
|
|
605
|
+
"protocol": "tcp"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"targetPort": 5070,
|
|
609
|
+
"publishedPort": 5070,
|
|
610
|
+
"protocol": "udp"
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"targetPort": 5070,
|
|
614
|
+
"publishedPort": 5070,
|
|
615
|
+
"protocol": "tcp"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"targetPort": 5061,
|
|
619
|
+
"publishedPort": 5061,
|
|
620
|
+
"protocol": "udp"
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"targetPort": 5061,
|
|
624
|
+
"publishedPort": 5061,
|
|
625
|
+
"protocol": "tcp"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"targetPort": 20000,
|
|
629
|
+
"targetPortEnd": 20200,
|
|
630
|
+
"publishedPort": 20000,
|
|
631
|
+
"publishedPortEnd": 20200,
|
|
632
|
+
"protocol": "udp"
|
|
633
|
+
}
|
|
634
|
+
],
|
|
635
|
+
"platformRequirements": {
|
|
636
|
+
"mongodb": true,
|
|
637
|
+
"s3": true
|
|
638
|
+
},
|
|
639
|
+
"minOneboxVersion": "1.28.0"
|
|
640
|
+
},
|
|
641
|
+
"apps/uptime-kuma/app.json": {
|
|
642
|
+
"id": "uptime-kuma",
|
|
643
|
+
"name": "Uptime Kuma",
|
|
644
|
+
"description": "Self-hosted uptime monitoring tool",
|
|
645
|
+
"category": "Monitoring",
|
|
646
|
+
"iconName": "uptime-kuma",
|
|
647
|
+
"latestVersion": "1.0.0",
|
|
648
|
+
"versions": [
|
|
649
|
+
"1.0.0"
|
|
650
|
+
],
|
|
651
|
+
"maintainer": "serve.zone"
|
|
652
|
+
},
|
|
653
|
+
"apps/uptime-kuma/versions/1.0.0/config.json": {
|
|
654
|
+
"image": "louislam/uptime-kuma:latest",
|
|
655
|
+
"port": 3001
|
|
656
|
+
},
|
|
657
|
+
"apps/valkey/app.json": {
|
|
658
|
+
"id": "valkey",
|
|
659
|
+
"name": "Valkey",
|
|
660
|
+
"description": "Open-source in-memory data store for caching and message brokering",
|
|
661
|
+
"category": "Databases",
|
|
662
|
+
"iconName": "database",
|
|
663
|
+
"latestVersion": "1.0.0",
|
|
664
|
+
"versions": [
|
|
665
|
+
"1.0.0"
|
|
666
|
+
],
|
|
667
|
+
"maintainer": "serve.zone"
|
|
668
|
+
},
|
|
669
|
+
"apps/valkey/versions/1.0.0/config.json": {
|
|
670
|
+
"image": "valkey/valkey:9.1.0-alpine",
|
|
671
|
+
"port": 6379
|
|
672
|
+
},
|
|
673
|
+
"apps/vaultwarden/app.json": {
|
|
674
|
+
"id": "vaultwarden",
|
|
675
|
+
"name": "Vaultwarden",
|
|
676
|
+
"description": "Lightweight Bitwarden-compatible password manager server",
|
|
677
|
+
"category": "Security",
|
|
678
|
+
"iconName": "vaultwarden",
|
|
679
|
+
"latestVersion": "1.0.0",
|
|
680
|
+
"versions": [
|
|
681
|
+
"1.0.0"
|
|
682
|
+
],
|
|
683
|
+
"maintainer": "serve.zone"
|
|
684
|
+
},
|
|
685
|
+
"apps/vaultwarden/versions/1.0.0/config.json": {
|
|
686
|
+
"image": "vaultwarden/server:latest",
|
|
687
|
+
"port": 80
|
|
688
|
+
},
|
|
689
|
+
"apps/wordpress/app.json": {
|
|
690
|
+
"id": "wordpress",
|
|
691
|
+
"name": "WordPress",
|
|
692
|
+
"description": "Popular open-source content management system",
|
|
693
|
+
"category": "CMS",
|
|
694
|
+
"iconName": "wordpress",
|
|
695
|
+
"latestVersion": "1.0.0",
|
|
696
|
+
"versions": [
|
|
697
|
+
"1.0.0"
|
|
698
|
+
],
|
|
699
|
+
"maintainer": "serve.zone"
|
|
700
|
+
},
|
|
701
|
+
"apps/wordpress/versions/1.0.0/config.json": {
|
|
702
|
+
"image": "wordpress:latest",
|
|
703
|
+
"port": 80,
|
|
704
|
+
"envVars": [
|
|
705
|
+
{
|
|
706
|
+
"key": "WORDPRESS_DB_HOST",
|
|
707
|
+
"value": "${MARIADB_HOST}:${MARIADB_PORT}",
|
|
708
|
+
"description": "Database host (auto-injected by platform)"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"key": "WORDPRESS_DB_USER",
|
|
712
|
+
"value": "${MARIADB_USER}",
|
|
713
|
+
"description": "Database user (auto-injected by platform)"
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
"key": "WORDPRESS_DB_PASSWORD",
|
|
717
|
+
"value": "${MARIADB_PASSWORD}",
|
|
718
|
+
"description": "Database password (auto-injected by platform)"
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
"key": "WORDPRESS_DB_NAME",
|
|
722
|
+
"value": "${MARIADB_DATABASE}",
|
|
723
|
+
"description": "Database name (auto-injected by platform)"
|
|
724
|
+
}
|
|
725
|
+
],
|
|
726
|
+
"platformRequirements": {
|
|
727
|
+
"mariadb": true
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
"appstore.json": {
|
|
731
|
+
"schemaVersion": 1,
|
|
732
|
+
"updatedAt": "2026-05-18T00:00:00Z",
|
|
733
|
+
"apps": [
|
|
734
|
+
{
|
|
735
|
+
"id": "nginx",
|
|
736
|
+
"name": "Nginx",
|
|
737
|
+
"description": "High-performance web server and reverse proxy. Lightweight, fast, and battle-tested.",
|
|
738
|
+
"category": "Web Server",
|
|
739
|
+
"iconName": "globe",
|
|
740
|
+
"latestVersion": "1.0.0",
|
|
741
|
+
"tags": [
|
|
742
|
+
"web",
|
|
743
|
+
"proxy"
|
|
744
|
+
]
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"id": "wordpress",
|
|
748
|
+
"name": "WordPress",
|
|
749
|
+
"description": "The world's most popular content management system. Powers over 40% of the web.",
|
|
750
|
+
"category": "CMS",
|
|
751
|
+
"iconName": "file-text",
|
|
752
|
+
"latestVersion": "1.0.0",
|
|
753
|
+
"tags": [
|
|
754
|
+
"cms",
|
|
755
|
+
"blog"
|
|
756
|
+
]
|
|
757
|
+
},
|
|
758
|
+
{
|
|
759
|
+
"id": "ghost",
|
|
760
|
+
"name": "Ghost",
|
|
761
|
+
"description": "Modern publishing platform for creating professional blogs and newsletters.",
|
|
762
|
+
"category": "CMS",
|
|
763
|
+
"iconName": "book-open",
|
|
764
|
+
"latestVersion": "1.0.0",
|
|
765
|
+
"tags": [
|
|
766
|
+
"cms",
|
|
767
|
+
"blog",
|
|
768
|
+
"newsletter"
|
|
769
|
+
]
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
"id": "gitea",
|
|
773
|
+
"name": "Gitea",
|
|
774
|
+
"description": "Lightweight self-hosted Git service. Easy to install and maintain.",
|
|
775
|
+
"category": "Dev Tools",
|
|
776
|
+
"iconName": "git-branch",
|
|
777
|
+
"latestVersion": "1.0.0",
|
|
778
|
+
"tags": [
|
|
779
|
+
"git",
|
|
780
|
+
"devtools"
|
|
781
|
+
]
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
"id": "gitops",
|
|
785
|
+
"name": "GitOps",
|
|
786
|
+
"description": "Operations dashboard for Git hosting, CI/CD secrets, pipeline logs, and documentation sync.",
|
|
787
|
+
"category": "Dev Tools",
|
|
788
|
+
"iconName": "git-branch",
|
|
789
|
+
"latestVersion": "1.0.0",
|
|
790
|
+
"tags": [
|
|
791
|
+
"git",
|
|
792
|
+
"devtools",
|
|
793
|
+
"ci",
|
|
794
|
+
"secrets"
|
|
795
|
+
]
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"id": "nextcloud",
|
|
799
|
+
"name": "Nextcloud",
|
|
800
|
+
"description": "Self-hosted file sync and share platform. Your own private cloud.",
|
|
801
|
+
"category": "Storage",
|
|
802
|
+
"iconName": "package",
|
|
803
|
+
"latestVersion": "1.0.0",
|
|
804
|
+
"tags": [
|
|
805
|
+
"storage",
|
|
806
|
+
"cloud"
|
|
807
|
+
]
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
"id": "grafana",
|
|
811
|
+
"name": "Grafana",
|
|
812
|
+
"description": "Open-source observability platform for metrics, logs, and traces visualization.",
|
|
813
|
+
"category": "Monitoring",
|
|
814
|
+
"iconName": "monitor",
|
|
815
|
+
"latestVersion": "1.0.0",
|
|
816
|
+
"tags": [
|
|
817
|
+
"monitoring",
|
|
818
|
+
"observability"
|
|
819
|
+
]
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
"id": "uptime-kuma",
|
|
823
|
+
"name": "Uptime Kuma",
|
|
824
|
+
"description": "Self-hosted monitoring tool. Beautiful UI for tracking uptime of services.",
|
|
825
|
+
"category": "Monitoring",
|
|
826
|
+
"iconName": "monitor",
|
|
827
|
+
"latestVersion": "1.0.0",
|
|
828
|
+
"tags": [
|
|
829
|
+
"monitoring",
|
|
830
|
+
"uptime"
|
|
831
|
+
]
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"id": "plausible",
|
|
835
|
+
"name": "Plausible Analytics",
|
|
836
|
+
"description": "Privacy-friendly web analytics. No cookies, GDPR compliant by design.",
|
|
837
|
+
"category": "Analytics",
|
|
838
|
+
"iconName": "monitor",
|
|
839
|
+
"latestVersion": "1.0.0",
|
|
840
|
+
"tags": [
|
|
841
|
+
"analytics"
|
|
842
|
+
]
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"id": "vaultwarden",
|
|
846
|
+
"name": "Vaultwarden",
|
|
847
|
+
"description": "Lightweight Bitwarden-compatible password manager server.",
|
|
848
|
+
"category": "Security",
|
|
849
|
+
"iconName": "shield",
|
|
850
|
+
"latestVersion": "1.0.0",
|
|
851
|
+
"tags": [
|
|
852
|
+
"security",
|
|
853
|
+
"passwords"
|
|
854
|
+
]
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"id": "n8n",
|
|
858
|
+
"name": "N8N",
|
|
859
|
+
"description": "Workflow automation tool. Connect anything to everything with a visual editor.",
|
|
860
|
+
"category": "Automation",
|
|
861
|
+
"iconName": "server",
|
|
862
|
+
"latestVersion": "1.0.0",
|
|
863
|
+
"tags": [
|
|
864
|
+
"automation",
|
|
865
|
+
"workflow"
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"id": "mattermost",
|
|
870
|
+
"name": "Mattermost",
|
|
871
|
+
"description": "Open-source Slack alternative for team communication and collaboration.",
|
|
872
|
+
"category": "Communication",
|
|
873
|
+
"iconName": "mail",
|
|
874
|
+
"latestVersion": "1.0.0",
|
|
875
|
+
"tags": [
|
|
876
|
+
"communication",
|
|
877
|
+
"chat"
|
|
878
|
+
]
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"id": "siprouter",
|
|
882
|
+
"name": "SIP Router",
|
|
883
|
+
"description": "SIP B2BUA, WebRTC softphone bridge, voicemail, fax, and live telephony operations dashboard.",
|
|
884
|
+
"category": "Communication",
|
|
885
|
+
"iconName": "phone",
|
|
886
|
+
"latestVersion": "1.0.0",
|
|
887
|
+
"tags": [
|
|
888
|
+
"sip",
|
|
889
|
+
"telephony",
|
|
890
|
+
"webrtc",
|
|
891
|
+
"voice",
|
|
892
|
+
"pbx"
|
|
893
|
+
]
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"id": "portainer",
|
|
897
|
+
"name": "Portainer",
|
|
898
|
+
"description": "Docker management UI. Monitor and manage containers from a web interface.",
|
|
899
|
+
"category": "Dev Tools",
|
|
900
|
+
"iconName": "package",
|
|
901
|
+
"latestVersion": "1.0.0",
|
|
902
|
+
"tags": [
|
|
903
|
+
"docker",
|
|
904
|
+
"devtools"
|
|
905
|
+
]
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
"id": "rustdesk-server",
|
|
909
|
+
"name": "RustDesk Server",
|
|
910
|
+
"description": "Self-hosted RustDesk ID and relay server for secure remote desktop access.",
|
|
911
|
+
"category": "Remote Access",
|
|
912
|
+
"iconName": "monitor",
|
|
913
|
+
"latestVersion": "1.0.0",
|
|
914
|
+
"tags": [
|
|
915
|
+
"remote-desktop",
|
|
916
|
+
"relay",
|
|
917
|
+
"self-hosted"
|
|
918
|
+
]
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"id": "cloudly",
|
|
922
|
+
"name": "Cloudly",
|
|
923
|
+
"description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
|
|
924
|
+
"category": "Dev Tools",
|
|
925
|
+
"iconName": "server",
|
|
926
|
+
"latestVersion": "1.0.0",
|
|
927
|
+
"tags": [
|
|
928
|
+
"serve.zone",
|
|
929
|
+
"control-plane",
|
|
930
|
+
"clusters",
|
|
931
|
+
"deployments"
|
|
932
|
+
]
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"id": "valkey",
|
|
936
|
+
"name": "Valkey",
|
|
937
|
+
"description": "Open-source in-memory data store used as database, cache, and message broker.",
|
|
938
|
+
"category": "Database",
|
|
939
|
+
"iconName": "database",
|
|
940
|
+
"latestVersion": "1.0.0",
|
|
941
|
+
"tags": [
|
|
942
|
+
"database",
|
|
943
|
+
"cache"
|
|
944
|
+
]
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
"id": "postgres",
|
|
948
|
+
"name": "PostgreSQL",
|
|
949
|
+
"description": "Advanced open-source relational database. Reliable and feature-rich.",
|
|
950
|
+
"category": "Database",
|
|
951
|
+
"iconName": "database",
|
|
952
|
+
"latestVersion": "1.0.0",
|
|
953
|
+
"tags": [
|
|
954
|
+
"database",
|
|
955
|
+
"sql"
|
|
956
|
+
]
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"id": "mariadb",
|
|
960
|
+
"name": "MariaDB",
|
|
961
|
+
"description": "Community-developed fork of MySQL. Drop-in replacement with enhanced features.",
|
|
962
|
+
"category": "Database",
|
|
963
|
+
"iconName": "database",
|
|
964
|
+
"latestVersion": "1.0.0",
|
|
965
|
+
"tags": [
|
|
966
|
+
"database",
|
|
967
|
+
"sql",
|
|
968
|
+
"mysql"
|
|
969
|
+
]
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"id": "adminer",
|
|
973
|
+
"name": "Adminer",
|
|
974
|
+
"description": "Database management tool in a single PHP file. Supports MySQL, PostgreSQL, SQLite.",
|
|
975
|
+
"category": "Dev Tools",
|
|
976
|
+
"iconName": "database",
|
|
977
|
+
"latestVersion": "1.0.0",
|
|
978
|
+
"tags": [
|
|
979
|
+
"database",
|
|
980
|
+
"devtools"
|
|
981
|
+
]
|
|
982
|
+
}
|
|
983
|
+
]
|
|
984
|
+
}
|
|
985
|
+
},
|
|
986
|
+
"textFiles": {}
|
|
987
|
+
};
|