Documentation + tools
List generated from folders in /docs.
README preview from GitHub (main / configured branch).
Modern IRC server written in Node.js combining the full functionality of UnrealIRCd and Anope IRC Services into a single unified system, with a web-based administration panel.
install.bat
chmod +x install.sh start.sh
./install.sh
# 1. Install dependencies
npm install
# 2. Run interactive setup
npm run setup
# 3. Generate TLS certificates
npm run generate-cert
# 4. Start the server
npm start
start.bat
or
npm start
./start.sh
or
npm start
Configuration is stored in CODE_0 in the project root. It is generated during setup but can be edited manually.
{
server: {
name: 'irc.kitsune.local', // Server hostname
network: 'KitsuneNet', // Network name
ports: [6667], // Plain IRC ports
tlsPorts: [6697], // TLS/SSL IRC ports
host: '0.0.0.0', // Bind address
maxClients: 1024, // Max concurrent connections
pingTimeout: 120, // Ping timeout (seconds)
pingInterval: 30, // Ping interval (seconds)
password: null, // Server-wide password (null = none)
},
tls: {
cert: './certs/server.crt', // TLS certificate path
key: './certs/server.key', // TLS private key path
},
opers: [
{
name: 'admin', // Oper username
password: 'password', // Oper password (bcrypt hash or plain)
host: '*@*', // Host mask restriction
flags: 'oOaANrRDKGZCcdkbBnmMSqtUTHW',
}
],
services: {
nickserv: { nick: 'NickServ', enabled: true },
chanserv: { nick: 'ChanServ', enabled: true },
memoserv: { nick: 'MemoServ', enabled: true },
operserv: { nick: 'OperServ', enabled: true },
botserv: { nick: 'BotServ', enabled: true },
hostserv: { nick: 'HostServ', enabled: true },
},
security: {
cloak: { enabled: true, key: 'random-key', prefix: 'kitsune' },
flood: { maxPerInterval: 20, interval: 10 },
throttle: { maxPerIP: 3, period: 60 },
requireSASL: false,
},
webPanel: {
enabled: true,
port: 8080,
host: '0.0.0.0',
jwtSecret: 'auto-generated',
},
database: {
path: './data/kitsune.db',
},
motd: [
'Welcome to KitsuneNet!',
'Powered by KitsuneIRC',
],
}
Connect with any IRC client:
Open in browser: CODE_0
On first access, you'll be prompted to create an admin account.
/msg NickServ REGISTER <password> <email>
/msg NickServ IDENTIFY <password>
Or use SASL PLAIN in your client settings.
/msg ChanServ REGISTER <#channel>
/oper <name> <password>
/msg MemoServ SEND <nick> <message>
/msg HostServ REQUEST <your.custom.host>
/msg NickServ HELP
/msg ChanServ HELP
/msg MemoServ HELP
/msg OperServ HELP
/msg BotServ HELP
/msg HostServ HELP
KitsuneIRC uses SQLite (via CODE_0) with WAL mode for optimal performance.
Database tables:
The database file is stored at CODE_0 by default.
| Port | Protocol | Description |
|---|---|---|
| 6667 | TCP | Plain IRC |
| 6697 | TCP+TLS | Secure IRC |
| 8080 | HTTP | Web admin panel |
All ports are configurable in CODE_0.
KitsuneIRC/
โโโ src/
โ โโโ index.js # Entry point
โ โโโ config/
โ โ โโโ ConfigManager.js # Configuration management
โ โโโ database/
โ โ โโโ Database.js # SQLite database layer
โ โโโ server/
โ โ โโโ IRCServer.js # Core IRC server
โ โ โโโ Client.js # Client connection handler
โ โ โโโ Channel.js # Channel management
โ โ โโโ CommandHandler.js # IRC command processing
โ โ โโโ ModeHandler.js # Mode processing
โ โโโ services/
โ โ โโโ ServiceManager.js # Service orchestration
โ โ โโโ BaseService.js # Base service class
โ โ โโโ NickServ.js # Nickname services
โ โ โโโ ChanServ.js # Channel services
โ โ โโโ MemoServ.js # Memo services
โ โ โโโ OperServ.js # Operator services
โ โ โโโ BotServ.js # Bot services
โ โ โโโ HostServ.js # vHost services
โ โโโ utils/
โ โ โโโ IRCUtils.js # IRC utilities & numerics
โ โ โโโ Logger.js # Logging utility
โ โโโ web/
โ โโโ WebPanel.js # Express web server & API
โ โโโ public/
โ โโโ index.html # Admin panel SPA
โโโ scripts/
โ โโโ setup.js # Interactive setup wizard
โ โโโ generate-cert.js # TLS certificate generator
โโโ config.js # Server configuration
โโโ package.json
โโโ install.bat # Windows installer
โโโ install.sh # Linux/macOS installer
โโโ start.bat # Windows start script
โโโ start.sh # Linux/macOS start script
โโโ README.md
MIT
KitsuneIRC is inspired by UnrealIRCd and Anope IRC Services, reimplemented from scratch in Node.js as a modern, unified IRC server.