A TUI for monitoring your server fleet in real-time. Built with Go and the Charm stack.
- Real-time Monitoring: Track CPU, RAM, network usage, uptime, and systemd status
- Cards: Each node displayed in a detailed card with progress bars and status indicators
- List View: Compact tabular view for monitoring many nodes at once
- Parallel Collection: Fetches metrics from all hosts concurrently using goroutines
- Long-lived SSH Connections: Reuses SSH connections for efficient metrics collection
- Configurable: Enable/disable specific metrics via YAML configuration
git clone https://github.com/JustAlternate/fleettui.git
cd fleettui
go install .nix run github:JustAlternate/fleettui# Run with default config (~/.config/fleettui/)
fleettui
# Specify custom hosts file
fleettui -hosts ./hosts.yamlhosts:
- name: server-01 # Display name (also used as IP if ip omitted)
ip: 192.168.1.10 # IP address (default SSH port 22). Optional if name resolves.
user: root # SSH user (default: root)
ssh_key_path: ~/.ssh/id_rsa # Optional: uses ssh-agent if not specified
- name: server-02
ip: 192.168.1.11:2222 # Custom SSH port supported
user: adminNotes:
- If
ipis not specified, thenameis used as the hostname/IP - If
useris not specified, defaults toroot - If
ssh_key_pathis not specified, usesssh-agentif available - Custom SSH port can be specified in
ipfield (e.g.,192.168.1.10:2222)
refresh_rate: 5s # How often to refresh metrics
metrics: # Enabled metrics
- cpu # CPU usage percentage
- ram # RAM usage percentage
- network # Network I/O rates (MB/s)
- connectivity # SSH connectivity status
- uptime # System uptime
- systemd # Failed systemd units
- os # OS name from /etc/os-release- Remote hosts must have SSH access and read access to
/procfilesystem (standard on Linux)
# Clone and build
git clone https://github.com/JustAlternate/fleettui.git
cd fleettui
go build .Run all tests:
go test ./...Run with coverage:
go test -cover ./...When interface changes require new mocks, run:
mockery --allMIT License.
Inspired by k9s, a terminal UI for Kubernetes clusters.
