| Crates.io | rzen |
| lib.rs | rzen |
| version | 0.1.0 |
| created_at | 2025-08-29 12:40:43.134706+00 |
| updated_at | 2025-08-29 12:40:43.134706+00 |
| description | A TUI-based CLI tool for building, deploying, and monitoring Rust projects |
| homepage | https://github.com/kurosci/rzen |
| repository | https://github.com/kurosci/rzen |
| max_upload_size | |
| id | 1815790 |
| size | 181,814 |
A comprehensive TUI-based CLI tool for building, deploying, and monitoring Rust applications. Designed specifically for developers who want to easily manage the complete lifecycle of their Rust projects, from development to production deployment.
# Clone the repository
git clone https://github.com/yourusername/rzen.git
cd rzen
# Build the project
cargo build --release
# Install (optional)
cargo install --path .
# Create a default configuration file
rzen init
# Or specify custom values
rzen init --name my-api --host my-server.com
Edit rzen.toml with your project settings:
[project]
name = "my-api"
path = "."
build_mode = "release"
[deploy]
vps_host = "your-server.com"
vps_user = "deploy"
vps_key_path = "~/.ssh/id_rsa"
deploy_path = "/opt/my-api"
[monitor]
health_endpoint = "http://your-server.com:8080/health"
log_path = "/var/log/my-api.log"
# Start TUI interface (default)
rzen
# Build your project
rzen build
# Deploy to production
rzen deploy
# Monitor your application
rzen monitor
# Validate configuration
rzen validate
Run rzen without arguments to launch the interactive TUI:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β rzen - Rust Project Manager β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Build β Deploy β Monitor β Config β Exit β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Build Status β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Build Progress β β
β β ββββββββββββββββββββββββββββββββ 100% β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Build Logs β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Compiling my-api v0.1.0 (/path/to/project) β β
β β Finished release [optimized] target(s) in 12.34s β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Build Info β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Binary: my-api | Size: 8.5 MB | Mode: release β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Navigation:
h / β : Previous tabl / β : Next tabb : Start buildd : Start deploym : Start monitoringq / Esc : Quitrzen build # Build in default mode
rzen build --mode debug # Build in debug mode
rzen build --dry-run # Simulate build
rzen deploy # Build and deploy
rzen deploy --skip-build # Deploy existing binary
rzen deploy --force # Force redeployment
rzen deploy --dry-run # Simulate deployment
rzen monitor # One-time status check
rzen monitor --continuous # Continuous monitoring
rzen monitor --lines 50 # Show last 50 log lines
rzen init # Create default config
rzen init my-config.toml # Create config with custom name
rzen validate # Validate current config
rzen validate custom.toml # Validate specific config
rzen --config custom.toml # Use custom config file
rzen --log-level 4 # Set log level (0-5)
rzen --dry-run # Simulate operations
rzen --help # Show help
rzen --version # Show version
The rzen.toml configuration file supports the following sections:
path: Path to your Rust projectname: Project name (used for binary and service names)build_mode: "debug" or "release"target: Deployment target ("vps" for now)vps_host: Server hostname or IPvps_user: SSH usernamevps_key_path: Path to SSH private keyvps_password: SSH password (alternative to key)deploy_path: Remote installation directoryservice_name: Systemd service namessh_port: SSH port (default: 22)health_endpoint: HTTP endpoint for health checkslog_path: Remote log file pathinterval_secs: Monitoring poll intervalhealth_timeout_secs: Health check timeoutsrc/
βββ main.rs # Application entry point and CLI routing
βββ cli.rs # Command-line argument parsing
βββ config.rs # TOML configuration handling
βββ logging.rs # Structured logging system
βββ tui.rs # Terminal user interface
βββ commands/ # Command implementations
β βββ build.rs # Build functionality
β βββ deploy.rs # Deployment functionality
β βββ monitor.rs # Monitoring functionality
βββ utils/ # Shared utilities (SSH, progress, etc.)
# Debug build
cargo build
# Release build
cargo build --release
# Run tests
cargo test
# Run with logging
RUST_LOG=debug cargo run
# Unit tests
cargo test
# Integration tests
cargo test --test integration
# With coverage
cargo tarpaulin
cargo fmt and cargo clippySSH Connection Failed
chmod 600 ~/.ssh/id_rsassh-add ~/.ssh/id_rsassh user@hostBuild Failed
Cargo.toml exists in project directoryrustc --versioncargo clean && cargo buildService Won't Start
sudo systemctl status your-servicesudo journalctl -u your-servicels -la /opt/your-app/Configuration Errors
rzen validateEnable verbose logging:
rzen --log-level 5 build
Or set environment variable:
RUST_LOG=trace rzen build
This project is licensed under the MIT License - see the LICENSE file for details.