Compare commits

...

4 commits

Author SHA1 Message Date
150d83be42 Fix typo 2026-02-10 11:55:01 -04:00
0ad49775fc Adding demo 2026-02-10 11:53:04 -04:00
cc54502a12 chore: Release uptime-kuma-dashboard version 0.38.2
All checks were successful
Multi-Platform Release Build / build (false, linux/arm64, native) (push) Successful in 7m57s
Multi-Platform Release Build / build (true, build-essential gcc-x86-64-linux-gnu libc6-dev-amd64-cross pkg-config binutils-x86-64-linux-gnu, map[CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER:x86_64-linux-gnu-gcc], linux/amd64, x86_64-unknown-linux-gnu) (push) Successful in 16m31s
Multi-Platform Release Build / build (true, gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 cmake nasm, map[CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER:x86_64-w64-mingw32-gcc CC_x86_64_pc_windows_gnu:x86_64-w64-mingw32-gcc], linux/amd64, x86_64-pc-windows-gnu) (push) Successful in 18m1s
Multi-Platform Release Build / create-release (push) Successful in 45s
2026-02-07 14:34:40 -04:00
80bf20cda1 Fix typo 2026-02-07 14:34:04 -04:00
7 changed files with 13 additions and 6 deletions

2
Cargo.lock generated
View file

@ -2668,7 +2668,7 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "uptime-kuma-dashboard"
version = "0.38.1"
version = "0.38.2"
dependencies = [
"anyhow",
"chrono",

View file

@ -1,6 +1,6 @@
[package]
name = "uptime-kuma-dashboard"
version = "0.38.1"
version = "0.38.2"
edition = "2024"
[dependencies]

View file

@ -4,6 +4,13 @@
A terminal-based monitoring dashboard for Uptime Kuma that displays service status, uptime percentages, and historical performance data directly in your terminal. Built with Rust for performance and reliability.
## Demo
<video width="800" controls>
<source src="assets/demo.webm" type="video/webm">
Your browser does not support the video tag.
</video>
## Overview
This personal project started as a way to monitor my home lab services without needing a web browser. It connects to your Uptime Kuma instance API and presents a clean, color-coded view of your services' status with real-time updates. The dashboard works great on servers, remote terminals, or anywhere you prefer a lightweight monitoring solution.

BIN
assets/demo.webm Normal file

Binary file not shown.

View file

@ -191,7 +191,7 @@ impl App {
}
let max_scroll = state
.get_total_lenght()
.get_total_length()
.saturating_sub(area[0].height as usize)
.saturating_add(1);

View file

@ -38,7 +38,7 @@ static STATUS_LINE_CACHE: OnceLock<RwLock<HashMap<u64, Line<'static>>>> = OnceLo
pub fn render_monitor_list(main_frame: &mut Frame, area: Rect, state: &mut DashboardViewState) {
let available_height = area.height as usize;
let max_scroll = state.get_total_lenght().saturating_sub(available_height);
let max_scroll = state.get_total_length().saturating_sub(available_height);
if state.scroll_state.get_position() > max_scroll {
state.scroll_state = state.scroll_state.position(max_scroll);
@ -48,7 +48,7 @@ pub fn render_monitor_list(main_frame: &mut Frame, area: Rect, state: &mut Dashb
let mut current_y = area.y as usize;
let mut rendered_height = 0;
let mut lines_skipped = 0;
let half = state.get_total_lenght().saturating_div(2);
let half = state.get_total_length().saturating_div(2);
for group in state.groups.iter() {
let group_height = group.monitors.len() + BORDER_LINES_VIEW;

View file

@ -81,7 +81,7 @@ impl DashboardViewState {
}
}
pub fn get_total_lenght(&self) -> usize {
pub fn get_total_length(&self) -> usize {
self.total_length
}