Skip to content

phaus/sys-wall

Repository files navigation

sys-wall

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.

Screenshots

Dashboard QR Code Registration

Overview

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.

Features

  • 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

Tech Stack

  • Rust — Single static binary with musl target, minimal runtime dependencies
  • Ratatui — Terminal UI framework
  • crossterm — Terminal backend (no ncurses dependency)

Tabs (F-Keys)

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

Quick Start

# 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-wall

See specs/09-setup.md for full development setup instructions.

Testing

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.

Deployment

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

Configuration is read from /etc/sys-wall/config.toml. See specs/07-configuration.md.

Minimal Requirements

  • Kernel: Linux 4.9+ with /proc and /sys
  • Libraries: None (fully static binary)
  • Disk: ~5-8 MB
  • RAM: ~4-8 MB RSS

Specs

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

License

TBD

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors