5.4 KiB
WHOIS Configuration Guide
TechIRCd provides extremely flexible WHOIS configuration that allows administrators to control exactly what information is visible to different types of users.
Overview
The WHOIS system in TechIRCd uses a three-tier permission system:
- to_everyone: Information visible to all users
- to_opers: Information visible only to IRC operators
- to_self: Information visible when users query themselves
Configuration Options
Basic Information Controls
User Modes (show_user_modes)
Controls who can see what user modes (+i, +w, +s, etc.) a user has set.
"show_user_modes": {
"to_everyone": false,
"to_opers": true,
"to_self": true
}
SSL Status (show_ssl_status)
Shows whether a user is connected via SSL/TLS.
"show_ssl_status": {
"to_everyone": true,
"to_opers": true,
"to_self": true
}
Idle Time (show_idle_time)
Shows how long a user has been idle and their signon time.
"show_idle_time": {
"to_everyone": false,
"to_opers": true,
"to_self": true
}
Signon Time (show_signon_time)
Shows when a user connected to the server (alternative to idle time).
"show_signon_time": {
"to_everyone": false,
"to_opers": true,
"to_self": true
}
Real Host (show_real_host)
Shows the user's real IP address/hostname (bypasses host masking).
"show_real_host": {
"to_everyone": false,
"to_opers": true,
"to_self": true
}
Channel Information (show_channels)
Controls channel visibility with additional granular options:
"show_channels": {
"to_everyone": true,
"to_opers": true,
"to_self": true,
"hide_secret_channels": true,
"hide_private_channels": false,
"show_membership_levels": true
}
hide_secret_channels: Hide channels with mode +s from non-membershide_private_channels: Hide channels with mode +p from non-membersshow_membership_levels: Show @/+/% prefixes for ops/voice/halfop
Operator Information (show_oper_class)
Shows IRC operator class/type information.
"show_oper_class": {
"to_everyone": false,
"to_opers": true,
"to_self": true
}
Client Information (show_client_info)
Shows information about the IRC client software being used.
"show_client_info": {
"to_everyone": false,
"to_opers": true,
"to_self": false
}
Account Name (show_account_name)
Shows services account name (for networks with services integration).
"show_account_name": {
"to_everyone": true,
"to_opers": true,
"to_self": true
}
Advanced Features (Future)
These features are planned for future implementation:
show_activity_stats: User activity analyticsshow_github_integration: GitHub profile integrationshow_geolocation: Approximate location informationshow_performance_stats: Connection performance metricsshow_device_info: Device and OS informationshow_social_graph: Mutual channels and connectionsshow_security_score: Account security rating
Custom Fields
TechIRCd supports custom WHOIS fields for maximum flexibility:
"custom_fields": [
{
"name": "website",
"to_everyone": true,
"to_opers": true,
"to_self": true,
"format": "Website: %s",
"description": "User's personal website"
}
]
Example Configurations
Maximum Privacy
Only show basic information to everyone, detailed info to opers:
"whois_features": {
"show_user_modes": {"to_everyone": false, "to_opers": true, "to_self": true},
"show_ssl_status": {"to_everyone": false, "to_opers": true, "to_self": true},
"show_idle_time": {"to_everyone": false, "to_opers": true, "to_self": true},
"show_real_host": {"to_everyone": false, "to_opers": true, "to_self": true},
"show_channels": {
"to_everyone": true, "to_opers": true, "to_self": true,
"hide_secret_channels": true, "hide_private_channels": true,
"show_membership_levels": false
}
}
Maximum Transparency
Show most information to everyone:
"whois_features": {
"show_user_modes": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_ssl_status": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_idle_time": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_real_host": {"to_everyone": false, "to_opers": true, "to_self": true},
"show_channels": {
"to_everyone": true, "to_opers": true, "to_self": true,
"hide_secret_channels": false, "hide_private_channels": false,
"show_membership_levels": true
}
}
Development/Testing
Show everything to everyone for debugging:
"whois_features": {
"show_user_modes": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_ssl_status": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_idle_time": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_real_host": {"to_everyone": true, "to_opers": true, "to_self": true},
"show_client_info": {"to_everyone": true, "to_opers": true, "to_self": true}
}
Notes
- The WHOIS system respects IRC operator privileges and host masking settings
- Secret and private channel hiding works in conjunction with channel membership
- All settings are hot-reloadable (restart server after config changes)
- The system is designed to be extremely flexible while maintaining IRC protocol compliance
This configuration system makes TechIRCd one of the most configurable IRC servers available!