Ravact is a modern, interactive TUI (Terminal User Interface) application for managing Linux servers. It provides an intuitive interface for common server administration tasks including software installation, user management, and service configuration.
Status: All features are fully implemented and production-ready! π
- One-Click Installation - Install popular server software with a single command
- 13 Pre-configured Packages - Nginx, MySQL, PostgreSQL, Redis, PHP, Node.js, and more
- Embedded Scripts - No external dependencies, everything runs from a single binary
- Installation Status - View and manage installed applications
- Automatic Detection - Shows only installed services in configuration menu
- Site Management - List, add, edit, and delete Nginx virtual hosts
- 7 Site Templates - Static HTML, PHP, Laravel, WordPress, Symfony, Node.js, Reverse Proxy
- SSL Certificate Management
- Let's Encrypt (automatic SSL with certbot)
- Manual certificates (provide your own cert files)
- SSL removal and configuration
- Editor Integration - Edit configs with nano or vi directly in Ravact
- Redis Cache - Configure authentication, port, test connections
- MySQL Database - Change root password, configure port, create databases, list databases, service management
- PostgreSQL Database - Change postgres password, configure port, performance tuning (max_connections, shared_buffers), create databases, service management
- PHP-FPM Pools - View pools, service restart/reload, pool details
- Supervisor - Program management, XML-RPC configuration (IP, port, username, password), add programs with editor selection (nano/vi) and config validation
- Passwordless Users - Create users with SSH key-only authentication (no password)
- Passwordless Sudo (NOPASSWD) - Grant sudo without password prompts
- Passwordless su - Switch to user without password
- User Details - View user information and group memberships
- System Info - Display kernel and architecture information
- Disk Usage - Show filesystem usage
- Memory Info - Show RAM usage statistics
- Running Services - List active systemd services
- Network Info - Display network interfaces and IP addresses
- Top Processes - Show CPU-sorted process list
- Recent Logs - View recent system journal entries
- 34+ Essential Commands - Frequently forgotten terminal commands at your fingertips
- Laravel Commands - Tail logs, fix permissions, generate APP_KEY, check queue workers
- WordPress Commands - Fix permissions, clear cache, generate salts, find malware patterns
- PHP Commands - Check version, list modules, find php.ini, check OPcache
- Security Commands - Scan for malware, find world-writable files, check open ports
- Copy to Clipboard - Press
cto copy any command instantly
- Full-Featured File Manager - Navigate, preview, and manage files without leaving the app
- File Operations - Copy, cut, paste, delete, rename, create files/directories
- File Preview - View text files with syntax highlighting and line numbers
- Search & Filter - Find files quickly with live filtering
- Keyboard-Driven - Vim-like navigation (h/j/k/l) plus standard arrows
- Help Screen - Press
?for complete keyboard shortcuts reference
- Categorized Menus - Logically organized menu items (Package Management, Service Configuration, Site Management, System Administration, Tools)
- Beautiful Forms - Powered by huh with custom theme
- xterm.js Compatible - Works perfectly in web-based terminals
- Copy Support - Press
con most screens to copy content to clipboard - Terminal-Aware - Auto-detects terminal capabilities and adjusts colors/symbols
- Configuration menu automatically detects installed services
- Uninstalled services are grayed out and not selectable
- Shows
[Not Installed]indicator for unavailable services - Prevents errors from attempting to configure missing services
curl -sSL https://raw.githubusercontent.com/iperamuna/ravact/main/scripts/install.sh | sudo bashInstalls the correct binary for your OS/architecture to /usr/local/bin/ravact.
# Download the latest release for your architecture
curl -L https://github.com/iperamuna/ravact/releases/latest/download/ravact-linux-amd64 -o ravact-linux-amd64
# Make it executable
chmod +x ravact-linux-amd64
# Run it
sudo ./ravact-linux-amd64ravact-linux-amd64- Linux x86_64 (Intel/AMD)ravact-linux-arm64- Linux ARM64 (Raspberry Pi, Apple Silicon VMs)ravact-darwin-arm64- macOS Apple Silicon (UI only, setup features require Linux)ravact-darwin-amd64- macOS Intel (UI only, setup features require Linux)
# Clone the repository
git clone https://github.com/iperamuna/ravact.git
cd ravact
# Build for your current platform
make build
# Or build for all platforms (Linux & macOS, amd64 & arm64)
make build-all
# Or build for specific platforms
make build-linux # Linux amd64
make build-linux-arm64 # Linux arm64
make build-darwin # macOS amd64
make build-darwin-arm64 # macOS arm64 (Apple Silicon)
# Binaries will be in dist/ folder-
Run Ravact (requires root for installation features):
sudo ./ravact
-
Navigate the Menu:
- Use
β/βarrow keys to navigate - Press
Enterto select - Press
Escto go back - Press
qto quit
- Use
-
Install Software:
- Main Menu β Package Management β Install Software
- Select package (e.g., Nginx)
- Choose "Install"
-
Configure Services:
- Main Menu β Service Configuration β Service Settings
- Select service (e.g., Redis Cache)
- Manage settings
-
Use Developer Toolkit:
- Main Menu β Site Management β Developer Toolkit
- Navigate categories with
Tabor arrow keys - Press
cto copy command,Enterto execute
-
Browse Files:
- Main Menu β Tools β File Browser
- Press
?for full keyboard shortcuts help
| Key | Action |
|---|---|
β/β or j/k |
Navigate up/down |
Enter |
Select/Confirm |
Esc |
Go back |
q |
Quit |
c |
Copy to clipboard (where supported) |
| Key | Action |
|---|---|
? |
Show help screen |
Space |
Toggle selection |
y/x/p |
Copy/Cut/Paste |
n/N |
New file/directory |
d |
Delete |
r |
Rename |
/ |
Search |
. |
Toggle hidden files |
| Key | Action |
|---|---|
Tab/Shift+Tab |
Navigate fields |
Enter |
Submit/Select |
β/β |
Change option (in selects) |
Comprehensive documentation is available in the docs directory.
| Category | Guides |
|---|---|
| Getting Started | Quick Start β’ Testing Guide |
| Features | Developer Toolkit β’ File Browser β’ Database Management |
| UI | UI Guide β’ Keyboard Shortcuts |
| Development | Development Guide β’ Setup Scripts |
| Help | Troubleshooting β’ macOS Limitations |
| Project | Changelog β’ Project Status β’ TODO/Roadmap |
- Language: Go 1.24+
- TUI Framework: Bubble Tea
- Styling: Lipgloss
- Forms: huh - Beautiful, customizable forms
- Clipboard: clipboard - Cross-platform clipboard support
- Platform: Linux (Ubuntu, Debian, RHEL, CentOS)
- Root Access: Required for installation and system configuration
- Password Management: Passwords are masked in the UI
- Configuration Files: Direct manipulation of system configs (backups recommended)
- SSL Certificates: Automated Let's Encrypt or manual certificate management
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Indunil Peramuna
- GitHub: @iperamuna
- Bubble Tea - Amazing TUI framework
- Lipgloss - Beautiful terminal styling
- All contributors and testers
Version: 0.3.1
All Features Implemented:
- β Complete software setup automation (13+ packages)
- β Full Nginx site management with SSL (Let's Encrypt & manual)
- β Redis configuration (password, port, connection testing)
- β MySQL database management (password, port, databases, users)
- β PostgreSQL database management (password, port, performance tuning)
- β PHP-FPM pool management (view pools, service control)
- β Supervisor configuration (programs, XML-RPC)
- β Firewall management
- β Passwordless user management with NOPASSWD sudo
- β Editor integration (nano/vi)
- β Quick system commands
New in v0.3.0:
- β
Git System User (
meta.systemuser) - automatic user tracking per repository - β Laravel App menu with .env creation, scheduler setup, artisan commands
- β Passwordless user creation (SSH key-only authentication)
- β Passwordless sudo (NOPASSWD) and su support
- β FrankenPHP Socket/Port selection for service creation
- β
NPM build runs
npm install && npm run buildas system user - β Removed FrankenPHP/Node.js from Setup Install (available via Site Commands)
New in v0.2.0:
- β Developer Toolkit with 34+ essential Laravel/WordPress/PHP/Security commands
- β Full-featured File Browser with preview, search, and file operations
- β Beautiful forms powered by huh with custom theme
- β Categorized menu organization following industry standards
- β Copy to clipboard support across all screens
- β xterm.js compatibility for web-based terminals
- β Terminal capability detection with graceful fallbacks
- β
Keyboard shortcuts help screen (press
?in File Browser)
β Star this repository if you find it useful!
For detailed documentation, visit the docs folder or check out the full documentation index.
