Dashboard
Server overview and statistics
Server Information
Users
Manage online and registered users
Online
Registered
| Nick | User@Host | IP | Account | Channels | Flags | Actions |
|---|
| Nick | Account | Registered | Last Seen | Actions |
|---|
Channels
Manage active and registered channels
Active
Registered
| Channel | Topic | Members | Modes |
|---|
| Channel | Founder | Description | Registered | Actions |
|---|
Bans
K-lines, G-lines, and Z-lines
| Type | Mask | Reason | Set By | Expires | Actions |
|---|
vHosts
Pending virtual host requests
| Account | Requested vHost | Requested At | Actions |
|---|
Memos
Recent memos in the system
| From | To | Message | Sent | Read |
|---|
IRC Bouncer
Persistent upstream connections, channel buffers and multi-client playback
Client connection
Connect an IRC client to the configured bouncer port and send
PASS account/network:password. The upstream stays connected after every client detaches.
TLS, certificate verification and per-channel playback limits are configured independently for each network.
Configuration
Edit server configuration
Visual Editor
JSON Editor
MOTD
Plugins
Plugin editor & management system
Plugin API Reference
Plugin Structure:
exports.init = function(api) { ... } — Called when plugin loads
exports.cleanup = function() { ... } — Called when plugin unloads
Core Objects:
api.server — IRCServer instance
api.config — ConfigManager instance
api.db — Database instance (SQLite)
api.logger — Logger (.info, .warn, .error, .debug)
Client Methods:
api.sendToClient(nick, rawLine) — Send raw IRC line to client
api.notice(nick, text) — Send NOTICE to a client
api.getClients() — Map of all connected clients
api.broadcastToOpers(msg) — NOTICE to all IRC operators
Channel Methods:
api.getChannel(name) — Get Channel object by name
api.getChannels() — Map of all channels
Services:
api.getService('NickServ') — Access NickServ/ChanServ/etc.
Commands & Events:
api.addCommand(cmd, handler) — Register IRC command (auto-cleaned)
handler: (client, params) => { }
api.on(event, handler) — Listen for events (auto-cleaned)
Timers:
api.setInterval(fn, ms) — Recurring (auto-cleaned on unload)
api.setTimeout(fn, ms) — One-shot (auto-cleaned on unload)
Events:
channelJoin (client, channel)
channelPart (client, channel, reason)
channelMessage (client, channel, cmd, text)
topicChange (client, channel, newTopic)
clientQuit (client, reason)
nickChange (client, oldNick, newNick)
serviceMessage (client, serviceName, cmd, text)
Channel message example (bot command):
api.on('channelMessage', (client, channel, cmd, text) => {
if (text && text.startsWith('!hello')) {
const msg = ':MyBot!bot@services PRIVMSG ' + channel.name + ' :Hello, ' + client.nick + '!';
for (const [, m] of channel.members) {
if (m.client && m.client.socket) m.client.send(msg);
}
}
});
Plugin Files
No file open
● Modified
Select a plugin file to start editing, or create a new one.
Line 1, Col 1
Database
Browse tables, view data, and run SQL queries
Tables
Browse
SQL Console
Quick Templates
Admin Users
Manage web panel administrators
| Username | Role | Created | Actions |
|---|
Audit Log
Security-sensitive web panel operations
| Time | Actor | Action | Detail | IP |
|---|