A powerful terminal-based user interface (TUI) for managing UnrealIRCd IRC servers. Built with Go and the tview library, this tool provides comprehensive installation, configuration, module management, and remote control capabilities for UnrealIRCd servers.
- Automatic Source Detection: Scans your system for existing UnrealIRCd source directories
- One-Click Installation: Download and install UnrealIRCd with guided configuration
- Version Management: Check for updates and switch between installations
- Configuration Wizard: Interactive setup with sensible defaults
- Module Browser: Browse and install modules from GitHub
- Third-Party Modules: Support for external module repositories
- Dependency Checking: Automatically verify module requirements
- Custom Module Upload: Install your own modules directly
- Obby Script Support: Manage IRC scripts with ease
- Script Editor: Built-in editor for modifying scripts
- Installation/Uninstallation: Simple script lifecycle management
- Real-time Monitoring: Connect to running servers via WebSocket RPC
- User Management: View and manage online users
- Channel Oversight: Monitor channels, topics, and member lists
- Server Statistics: View server information and uptime
- Ban Management: Handle G-lines, K-lines, and Z-lines
- Log Streaming: Real-time server log monitoring with filtering
- Terminal-Based: Full TUI with mouse support
- Keyboard Navigation: Efficient keyboard shortcuts
- Color-Coded: Intuitive color scheme for different data types
- Responsive Design: Adapts to terminal size
- Go 1.25.4 or later
- Terminal with Unicode support
- Internet connection for downloads and RPC
-
Clone the repository:
git clone https://github.com/ValwareIRC/unrealircd-tui.git cd unrealircd-tui -
Build the application:
go build
-
Run the tool:
./utui
When you first run the tool, it will:
- Scan for existing UnrealIRCd installations
- If none found, guide you through downloading and installing UnrealIRCd
- Set up your build directory (default:
~/unrealircd)
- Install UnrealIRCd: Download and configure a new server
- Check for Updates: Update your source code to the latest version
- Module Manager: Browse and install modules
- Script Manager: Manage IRC scripts
- Remote Control: Connect to a running server for monitoring
- Switch Installation: Change between multiple installations
To use remote control features:
- Ensure your UnrealIRCd server has RPC enabled in
unrealircd.conf. See the docs on how to do this: https://www.unrealircd.org/docs/JSON-RPC - Rehash
- In the tool, select "Remote Control" and configure:
- WebSocket URL (default:
wss://127.0.0.1:8600/) - RPC username and password
- WebSocket URL (default:
The tool stores configuration in:
~/.unrealircd_manager_config- Tool settings~/.unrealircd_rpc_config- RPC connection details
The RPC config file contains:
{
"username": "rpc_user",
"password": "secure_password",
"ws_url": "wss://127.0.0.1:8600/"
}unrealircd-tui/
βββ main.go # Main application and TUI logic
βββ rpc/ # RPC client and types
β βββ client.go # WebSocket RPC communication
β βββ config.go # RPC configuration management
β βββ types.go # Data structures for RPC responses
β βββ rpc_test.go # Unit tests
βββ ui/ # User interface components
βββ remote_control.go # Remote control interface
- tview - Terminal UI library
- unrealircd-rpc-golang - UnrealIRCd RPC client
- gorilla/websocket - WebSocket client
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and add tests
- Run tests:
go test ./... - Commit your changes:
git commit -am 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request
RPC Connection Failed
- Verify UnrealIRCd RPC is enabled and listening on the correct port
- Check firewall settings
- Ensure TLS certificates are valid (or disable TLS verification for development)
Module Installation Failed
- Check that you have build tools installed (make, gcc)
- Verify source directory permissions
- Ensure all dependencies are met
Terminal Display Issues
- Use a Unicode-supporting terminal
- Try increasing terminal font size
- Check for tview compatibility
The tool writes debug information to /tmp/debug.log. Check this file for detailed error information.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Created by ValwareIRC
- UnrealIRCd - The IRC daemon this tool manages
- tview - Excellent terminal UI library
- ObsidianIRC - RPC library for UnrealIRCd