No description
- Rust 99.3%
- Shell 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .cargo | ||
| output | ||
| scripts | ||
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| README.md | ||
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.