-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapps.example.json
More file actions
101 lines (99 loc) · 2.64 KB
/
Copy pathapps.example.json
File metadata and controls
101 lines (99 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
{
"title": "My Homelab",
"subtitle": "Self-hosted services",
"brand": {
"gradient": "#14b8a6"
},
"repoUrl": "https://github.com/msnisha/appdash",
"categories": [
{
"id": "infra",
"name": "Infrastructure",
"description": "Routers, hypervisors, container managers"
},
{
"id": "media",
"name": "Media",
"description": "Photos, music, video"
},
{
"id": "tools",
"name": "Tools"
}
],
"apps": [
{
"_comment": "An app with TWO URLs — internal IP + public domain.",
"id": "proxmox",
"name": "Proxmox VE",
"category": "infra",
"description": "Hypervisor & VM management.",
"icon": "🖥️",
"color": "#e57000",
"urls": [
{ "label": "Internal", "url": "https://192.168.1.10:8006" },
{ "label": "Domain", "url": "https://pve.example.com" }
],
"_comment2": "Health check via Caddy reverse-proxy. See Caddyfile.",
"health": {
"url": "/healthproxy/proxmox/api2/json/version",
"expect": [200, 401]
}
},
{
"_comment": "Single URL, no health check.",
"id": "portainer",
"name": "Portainer",
"category": "infra",
"description": "Docker management.",
"icon": "🐳",
"color": "#13bef9",
"urls": [
{ "label": "Open", "url": "https://portainer.example.com" }
]
},
{
"_comment": "Direct CORS-enabled health endpoint.",
"id": "uptime-kuma",
"name": "Uptime Kuma",
"category": "tools",
"description": "Status page & alerting.",
"icon": "📊",
"color": "#5cdd8b",
"urls": [
{ "label": "Open", "url": "https://uptime.example.com" }
],
"health": {
"url": "https://uptime.example.com/api/status-page/heartbeat",
"expect": [200]
}
},
{
"_comment": "no-cors fallback — only checks reachability, not status.",
"id": "immich",
"name": "Immich",
"category": "media",
"description": "Photo & video backup.",
"icon": "📸",
"color": "#4250af",
"urls": [
{ "label": "Open", "url": "https://photos.example.com" }
],
"health": {
"url": "https://photos.example.com/api/server-info/ping",
"noCors": true
}
},
{
"_comment": "Image-based icon instead of emoji.",
"id": "jellyfin",
"name": "Jellyfin",
"category": "media",
"description": "Media streaming.",
"icon": "img:https://avatars.githubusercontent.com/u/45698031?s=64",
"urls": [
{ "label": "Open", "url": "https://jelly.example.com" }
]
}
]
}