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 — required to build the tool (download)
- Git — to clone the repository
- Terminal with Unicode support — e.g. xterm-256color, gnome-terminal, Konsole, iTerm2
- Internet connection — for downloading UnrealIRCd source and RPC connectivity
- C build toolchain (for compiling UnrealIRCd and modules):
gccorccmakeautoconf
- Development libraries (for compiling UnrealIRCd):
- OpenSSL/LibreSSL development headers (
libssl-dev/openssl-devel) - On Debian/Ubuntu:
sudo apt install build-essential pkg-config libssl-dev libcurl4-openssl-dev - On RHEL/Fedora:
sudo dnf install gcc make openssl-devel libcurl-devel
- OpenSSL/LibreSSL development headers (
-
Clone the repository:
git clone https://github.com/ValwareIRC/unrealircd-tui.git cd unrealircd-tui -
Download dependencies and build:
go mod download go build -o utui
-
Run the tool:
./utui
Note: On first run, if no existing UnrealIRCd installation is detected, the tool will prompt you to download and set one up.
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
Program exits immediately / nothing happens
- This was a known bug in older versions — the tool would silently exit if no UnrealIRCd installation was found. Update to the latest version.
- Ensure you built with
go build -o utui(not just copied the binary from another machine — it must be compiled for your OS/architecture). - Run with
file ./utuito verify it matches your system architecture.
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