A lightweight, statically-linked TUI dashboard for Linux systems, designed to run directly on the framebuffer console at boot. Inspired by the Talos OS console dashboard.
sys-wall provides a system information dashboard that starts automatically when a Linux machine boots. It displays system status, resource monitoring, and network configuration — all in a terminal UI with no desktop environment required.
- Summary Dashboard — Hostname, UUID, uptime, CPU, RAM, IP addresses, and system status at a glance
- System Monitor — Real-time CPU, memory, disk I/O, and network graphs (similar to htop)
- Network Configuration — Configure hostname, DNS, NTP, network interfaces (DHCP/static)
- QR Code Registration — Generate a QR code containing system UUID and basic info, POST-able to a configurable URL
- Modular Architecture — Plugin/module system for adding custom tabs
- Rust — Single static binary with musl target, minimal runtime dependencies
- Ratatui — Terminal UI framework
- crossterm — Terminal backend (no ncurses dependency)
| Key | Tab | Description |
|---|---|---|
| F1 | Summary | System info overview with logs |
| F2 | Monitor | CPU, memory, disk, network graphs |
| F3 | Network Config | Network interface configuration |
| F4 | QR Code | System registration via QR code |
# Prerequisites: Rust 1.75+, musl target
rustup target add x86_64-unknown-linux-musl
# Build
cargo build --release --target x86_64-unknown-linux-musl
# Run locally (development — works in any terminal)
cargo run
# Test in Docker
docker build -t sys-wall .
docker run -it --rm sys-wallSee specs/09-setup.md for full development setup instructions.
| Method | What it validates | Setup effort |
|---|---|---|
cargo run |
TUI rendering, layout, input handling | None |
Docker (docker run -it) |
Linux /proc /sys data, static binary | Low |
| QEMU VM | Full boot-to-dashboard, TTY1, network config | Medium |
See specs/10-testing.md for details.
The binary is intended to be placed at /sbin/sys-wall and started via a systemd service or init script on TTY1. The recommended approach is to replace getty on TTY1. See specs/06-deployment.md for systemd, OpenRC, and kernel configuration details.
Configuration is read from /etc/sys-wall/config.toml. See specs/07-configuration.md.
- Kernel: Linux 4.9+ with
/procand/sys - Libraries: None (fully static binary)
- Disk: ~5-8 MB
- RAM: ~4-8 MB RSS
Detailed specifications are in the specs/ directory.
| Spec | Description |
|---|---|
| 01-architecture | System architecture and module trait |
| 02-dashboard | F1: Dashboard with module widgets |
| 03-monitor-module | F2: Resource monitoring |
| 04-network-module | F3: Network configuration |
| 05-qrcode-module | F4: QR code registration |
| 06-deployment | Deployment and auto-start config |
| 07-configuration | Configuration reference |
| 08-module-system | Module/plugin system |
| 09-setup | Development setup |
| 10-testing | Testing strategy and CI |
TBD

