No description
  • Rust 99.3%
  • Shell 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-01 20:27:21 +00:00
.cargo Add musl cross-compilation setup 2026-08-01 19:56:05 +00:00
output Add live dashboard: gauges, sparklines, network charts\n\n- CPU/RAM/Disk gauges with color thresholds (green/yellow/red)\n- 60s sparkline history for CPU, RAM, Net RX, Net TX\n- Toggle dashboard view with d key\n- Network I/O tracking with delta calculation\n- Expanded header with styled spans 2026-08-01 20:01:00 +00:00
scripts Add musl cross-compilation setup 2026-08-01 19:56:05 +00:00
src fix: sysinfo/ratatui API mismatches (refresh_cpu_all, Disks, refresh() signatures), pin ratatui 0.28 for rustc 1.85 compat 2026-08-01 20:27:21 +00:00
.gitignore Initial commit: rustafa — VPS Maintenance TUI 2026-08-01 19:48:11 +00:00
Cargo.toml fix: sysinfo/ratatui API mismatches (refresh_cpu_all, Disks, refresh() signatures), pin ratatui 0.28 for rustc 1.85 compat 2026-08-01 20:27:21 +00:00
README.md Add musl cross-compilation setup 2026-08-01 19:56:05 +00:00

rustafa 🔧

VPS Maintenance TUI — Rust + ratatui rewrite of vps-toolkit.sh.

Что уже есть

  • TUI-каркас на ratatui + crossterm.
  • Вкладки: Docker, System, Network, Utils.
  • Live status header: host, IP, OS, uptime, RAM, disk.
  • Заготовка Caddy-модуля: validate, reload, fmt, Docker-variant.
  • Навигация: стрелки, j/k, Tab, 1-4, Enter, q.

Сборка

Рекомендуемый путь: статический musl-бинарник

На машине разработчика:

rustup target add x86_64-unknown-linux-musl
sudo apt update && sudo apt install -y musl-tools
cargo build --release --target x86_64-unknown-linux-musl

Готовый бинарник будет здесь:

target/x86_64-unknown-linux-musl/release/rustafa

Обычная сборка

cargo build --release

Запуск на сервере

Если собирать под musl, то на сервере Rust не нужен.

scp target/x86_64-unknown-linux-musl/release/rustafa root@your-vps:/usr/local/bin/
ssh root@your-vps 'chmod +x /usr/local/bin/rustafa && /usr/local/bin/rustafa'

Что нужно на VPS

Самому бинарнику ничего не нужно, но для отдельных функций нужны системные команды:

  • docker — Docker-вкладка.
  • ufw — управление firewall.
  • caddy — validate/reload Caddyfile на хосте.
  • htop, ncdu — утилиты во вкладке Utils.
  • curl — получение внешнего IP.

Структура

src/
├── main.rs
├── app.rs
├── utils.rs
├── ui/
│   ├── mod.rs
│   ├── header.rs
│   └── menu.rs
└── modules/
    ├── mod.rs
    ├── docker.rs
    ├── systemd.rs
    ├── network.rs
    ├── caddy.rs
    ├── system.rs
    └── tools.rs

Следующие шаги

  • Добавить вкладку Caddy в UI.
  • Реализовать модалки подтверждения.
  • Добавить Forgejo Actions для релизной musl-сборки.
  • Выпускать готовый бинарник как downloadable artifact.