Custom app launcher, browser home page, and service monitor. cute.haus
homelab react typescript
0

Configure Feed

Select the types of activity you want to include in your feed.

support arbitrary responses

Aly Raffauf (Jun 19, 2026, 2:23 PM EDT) 097c9de1 c4b34564

+8 -4
-1
src/data/apps.ts
··· 30 30 { 31 31 name: "Navidrome", 32 32 url: "https://navidrome.cute.haus", 33 - healthUrl: "https://navidrome.narwhal-snapper.ts.net", 34 33 icon: "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/navidrome.png", 35 34 }, 36 35 {
+7 -3
src/index.ts
··· 87 87 } 88 88 89 89 async function checkStatuses( 90 - items: { name: string; url: string; healthUrl?: string }[], 90 + items: { name: string; url: string; healthUrl?: string; goodStatuses?: number[] }[], 91 91 ) { 92 92 const results = await Promise.all( 93 93 items.map(async (item) => { 94 94 try { 95 95 const response = await fetch(item.healthUrl ?? item.url, { 96 - method: "HEAD", 96 + method: "GET", 97 97 signal: AbortSignal.timeout(3000), 98 98 }); 99 - return { name: item.name, online: response.status < 500 }; 99 + const status = response.status; 100 + const online = "goodStatuses" in item 101 + ? item.goodStatuses!.includes(status) 102 + : status < 500; 103 + return { name: item.name, online }; 100 104 } catch { 101 105 return { name: item.name, online: false }; 102 106 }
+1
src/types.ts
··· 3 3 url: string; 4 4 icon?: string; 5 5 healthUrl?: string; 6 + goodStatuses?: number[]; 6 7 };