syco.me Homelab Dashboard
This commit is contained in:
+144
@@ -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[]
|
||||
}
|
||||
Reference in New Issue
Block a user