syco.me Homelab Dashboard

This commit is contained in:
2026-05-10 21:23:42 +02:00
parent 933e492d15
commit 90de2c1674
45 changed files with 6666 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
export interface ProxmoxStorage { name: string; type: string; used: number; total: number }
export interface ProxmoxData {
node: string
uptime: number
cpu: number
memory: { used: number; total: number }
storages: ProxmoxStorage[]
lxcCount: number
vmCount: number
}
export interface SynologyVolume {
id: string
label: string
used: number
total: number
}
export interface SynologyData {
volumes: SynologyVolume[]
}
export interface AdGuardTimeSlot {
queries: number
blocked: number
}
export interface AdGuardData {
totalQueries: number
blockedQueries: number
blockedPercent: string
timeSlots: AdGuardTimeSlot[]
}
export interface CrowdSecOrigin { name: string; count: number }
export interface CrowdSecRecent { value: string; scenario: string; created_at: string }
export interface CrowdSecData {
activeBans: number
alertsLast24h: number
blocksThisWeek: number
origins: CrowdSecOrigin[]
recent: CrowdSecRecent[]
}
export interface SynologyInfoData {
model: string
dsmVersion: string
uptime: number
temperature: number | null
}
export interface KumaMonitor {
id: number
name: string
type: string
status: number
ping: number | null
beats: number[]
}
export interface KumaData {
total: number
up: number
down: number
monitors: KumaMonitor[]
}
export interface AuthentikLogin {
username: string
created: string
clientIp: string
success: boolean
}
export interface AuthentikData {
userCount: number
failedLast24h: number
recentLogins: AuthentikLogin[]
}
export interface VaultwardenUser {
email: string
name: string
enabled: boolean
lastActive: string | null
created: string | null
twoFa: boolean
}
export interface VaultwardenData {
version: string | null
userCount: number
users: VaultwardenUser[]
}
export interface QbtActiveTorrent { name: string; progress: number; dlSpeed: number; size: number; state: string }
export interface QbtData {
dlSpeed: number
ulSpeed: number
downloading: number
seeding: number
paused: number
total: number
active: QbtActiveTorrent[]
}
export interface FritzboxHistorySlot { rx: number; tx: number }
export interface FritzboxData {
connected: boolean
externalIp: string
rxMbps: number
txMbps: number
history: FritzboxHistorySlot[]
}
export interface HeadscaleNode {
id: string
name: string
ip: string
online: boolean
lastSeen: string
user: string
}
export interface ArrServiceStats { movies?: number; series?: number; artists?: number; missing: number; queue: number }
export interface ArrStatsData {
radarr: ArrServiceStats | null
sonarr: ArrServiceStats | null
lidarr: ArrServiceStats | null
}
export interface ArrCalendarItem {
date: string
title: string
subtitle: string
type: 'movie' | 'episode' | 'album'
downloaded: boolean
}
export interface ArrCalendarData {
items: ArrCalendarItem[]
}
export interface HeadscaleData {
total: number
online: number
nodes: HeadscaleNode[]
}