Added README and production release workflow
This commit is contained in:
parent
17662107b0
commit
c5f272b70e
2 changed files with 311 additions and 0 deletions
132
README.md
Normal file
132
README.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# Uptime Kuma Terminal Dashboard
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
Perfect for DevOps engineers, system administrators, or anyone who prefers terminal workflows over web interfaces for quick status checks.
|
||||
|
||||
## Features
|
||||
|
||||
- Real-time service monitoring with automatic refresh
|
||||
- Color-coded status indicators (green for up, red for down)
|
||||
- Historical uptime visualization with compact status history lines
|
||||
- Responsive terminal UI that adapts to window size
|
||||
- Internationalization support (English and Portuguese)
|
||||
- Configurable refresh intervals
|
||||
- Minimal resource usage (runs efficiently even on low-power devices)
|
||||
- Keyboard navigation support (arrow keys, home/end)
|
||||
- Mobile-friendly design for SSH connections
|
||||
|
||||
## Tech Stack
|
||||
|
||||
This project demonstrates proficiency with several modern technologies:
|
||||
|
||||
- **Rust** (core language with async capabilities)
|
||||
- **ratatui** (terminal UI framework)
|
||||
- **reqwest** (HTTP client for API communication)
|
||||
- **serde** (JSON serialization/deserialization)
|
||||
- **clap** (command-line argument parsing)
|
||||
- **fluent-templates** (internationalization framework)
|
||||
- REST API integration patterns
|
||||
- Error handling and logging best practices
|
||||
- Cross-platform terminal development
|
||||
|
||||
You can find the latest releases in the [Releases section](https://git.marcodearaujo.com/marcodearaujo/uptime-kuma-dashboard/releases).
|
||||
|
||||
## Installation
|
||||
|
||||
### Option 1: Download built Binary (Recommended)
|
||||
1. Go to the [Releases page](https://git.marcodearaujo.com/marcodearaujo/uptime-kuma-dashboard/releases)
|
||||
2. Download the binary for your operating system
|
||||
3. Make it executable: `chmod +x uptime-kuma-dashboard`
|
||||
4. Run it with your Uptime Kuma URL and slug
|
||||
|
||||
### Option 2: Build From Source
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Rust 1.74+ toolchain (install via [rustup](https://rustup.rs/))
|
||||
- Uptime Kuma instance with API access
|
||||
|
||||
### Build from Source
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://git.marcodearaujo.com/marcodearaujo/uptime-kuma-dashboard.git
|
||||
cd uptime-kuma-dashboard
|
||||
|
||||
# Build the project
|
||||
cargo build --release
|
||||
|
||||
# Run the dashboard (replace with your Uptime Kuma URL and status page slug)
|
||||
./target/release/uptime-kuma-dashboard \
|
||||
--base-url="http://your-uptime-kuma-instance:3001/" \
|
||||
--slug="your-status-page-slug"
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
The dashboard requires two parameters:
|
||||
|
||||
- `--base-url`: Your Uptime Kuma instance URL (including port)
|
||||
- `--slug`: Your status page slug identifier
|
||||
|
||||
Example:
|
||||
```bash
|
||||
./uptime-kuma-dashboard --base-url="http://192.168.1.100:3001/" --slug="home-services"
|
||||
```
|
||||
|
||||
**Controls during runtime:**
|
||||
- `q` or `ESC`: Exit the dashboard
|
||||
- `↑`/`↓` or `k`/`j`: Navigate through monitors
|
||||
- `Home`/`End`: Jump to top/bottom of the list
|
||||
|
||||
## Configuration
|
||||
|
||||
You can set environment variables to avoid typing parameters each time:
|
||||
|
||||
```bash
|
||||
export UPTIME_KUMA_URL="http://your-uptime-kuma-instance:3001/"
|
||||
export STATUS_PAGE_SLUG="your-status-page-slug"
|
||||
```
|
||||
|
||||
## Development Notes
|
||||
|
||||
This project follows Rust best practices including:
|
||||
- Comprehensive error handling with `anyhow`
|
||||
- Internationalization-ready architecture
|
||||
- Modular code organization
|
||||
- Performance optimization for terminal rendering
|
||||
- Cross-platform compatibility testing
|
||||
|
||||
The architecture separates concerns into:
|
||||
- API client layer
|
||||
- Data processing core
|
||||
- UI rendering components
|
||||
- Configuration management
|
||||
- Internationalization system
|
||||
|
||||
## Contribution
|
||||
|
||||
While this is primarily a personal project, I welcome suggestions and improvements! If you have ideas for new features or bug fixes:
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
||||
4. Push to the branch (`git push origin feature/amazing-feature`)
|
||||
5. Open a pull request
|
||||
|
||||
Please note this is a side project, so response times may vary.
|
||||
|
||||
## License
|
||||
|
||||
This project is available under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
---
|
||||
|
||||
*Developed as a personal learning project to improve Rust skills and create a useful tool for my home lab monitoring. Feedback welcome!*
|
||||
Loading…
Add table
Add a link
Reference in a new issue