5.4 KiB
5.4 KiB
Services Integration Guide
TechIRCd is designed to work with external IRC services packages like Anope, Atheme, or IRCServices. This document explains how to set up services integration.
Supported Services Packages
Recommended: Anope Services
- Website: https://www.anope.org/
- Features: NickServ, ChanServ, OperServ, MemoServ, BotServ, HostServ
- Database: MySQL, PostgreSQL, SQLite
- Protocol: Full IRCd linking support
Alternative: Atheme Services
- Website: https://atheme.github.io/
- Features: NickServ, ChanServ, OperServ, MemoServ
- Database: Multiple backend support
- Protocol: Standard IRC linking
TechIRCd Services Integration Features
1. Standard IRC Protocol Support
TechIRCd implements the standard IRC protocol that services packages expect:
- Server-to-Server linking (
linking.jsonconfiguration) - Standard IRC commands (NICK, JOIN, PART, PRIVMSG, etc.)
- Operator commands (KILL, SQUIT, STATS, etc.)
- User and channel modes
- IRCv3 capabilities for enhanced features
2. Services Connection Methods
Method A: Services as Linked Server (Recommended)
Configure services to connect as a linked server using the linking configuration:
{
"linking": {
"enable": true,
"links": [
{
"name": "services.yourdomain.com",
"host": "127.0.0.1",
"port": 6697,
"password": "services-link-password",
"auto_connect": true,
"hub": false,
"class": "services"
}
],
"classes": {
"services": {
"recvq": 16384,
"sendq": 16384,
"max_links": 1
}
}
}
}
Method B: Services as Local Client
Services can also connect as regular IRC clients with special privileges.
3. Services User Modes
TechIRCd supports standard services user modes:
+S- Service mode (identifies services bots)+o- IRC Operator mode+B- Bot mode+r- Registered user mode
4. Channel Modes for Services
+r- Registered channel+R- Registered users only+M- Registered/voiced users only speak+S- Services bots only
Anope Configuration Example
anope.conf snippet:
uplink
{
host = "127.0.0.1"
port = 6667
password = "link-password"
}
serverinfo
{
name = "services.yourdomain.com"
description = "Services for TechNet"
}
networkinfo
{
networkname = "TechNet"
ircd = "techircd"
}
TechIRCd linking.json for Anope:
{
"linking": {
"enable": true,
"server_port": 6697,
"password": "link-password",
"links": [
{
"name": "services.yourdomain.com",
"host": "127.0.0.1",
"port": 6697,
"password": "link-password",
"auto_connect": false,
"hub": false,
"class": "services"
}
]
}
}
Setup Instructions
1. Configure TechIRCd
- Edit
configs/linking.jsonto add services link - Set up linking passwords
- Configure operator access for services management
2. Install Anope Services
# Download and compile Anope
wget https://github.com/anope/anope/releases/latest
tar -xzf anope-*.tar.gz
cd anope-*
./configure --prefix=/opt/anope
make && make install
3. Configure Anope
- Edit
/opt/anope/conf/services.conf - Set TechIRCd as the uplink server
- Configure database settings
- Set up services nicknames and channels
4. Start Services
# Start TechIRCd first
./techircd start
# Then start Anope services
/opt/anope/bin/anoperc start
Services Protocol Support
TechIRCd supports the standard IRC server protocol features needed by services:
User Management
NICK- Nickname changesUSER- User registrationQUIT- User disconnectionKILL- Force disconnect users
Channel Management
JOIN/PART- Channel membershipMODE- Channel and user modesTOPIC- Channel topicsKICK/BAN- Channel moderation
Network Management
SQUIT- Server disconnectionSERVER- Server introductionBURST- Network state synchronizationSTATS- Server statistics
Services-Specific
SVSNICK- Services nickname enforcementSVSMODE- Services mode changesSVSJOIN- Services-forced joinsSVSPART- Services-forced parts
Troubleshooting
Services Won't Connect
- Check linking password in both configs
- Verify port configuration
- Check TechIRCd logs for connection attempts
- Ensure services hostname resolves
Services Commands Not Working
- Verify services have operator status
- Check services user modes (+S +o)
- Review channel access levels
- Check services configuration
Database Issues
Services handle their own database - TechIRCd doesn't need database access.
Benefits of External Services
For TechIRCd:
- ✅ Simplified codebase - Focus on IRC protocol
- ✅ Better performance - No database overhead
- ✅ Higher reliability - Services crashes don't affect IRC
- ✅ Easier maintenance - Separate concerns
For Users:
- ✅ Mature services - Anope/Atheme are battle-tested
- ✅ Rich features - Full services functionality
- ✅ Database choice - MySQL, PostgreSQL, SQLite
- ✅ Web interfaces - Many services offer web panels
Getting Help
- TechIRCd Support: GitHub Issues
- Anope Support: https://www.anope.org/
- Atheme Support: https://atheme.github.io/
- IRC Help: #anope or #atheme on irc.anope.org