@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.
@@ -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
+ };