Files
techircd/docs/WHOIS_CONFIGURATION.md

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-members
  • hide_private_channels: Hide channels with mode +p from non-members
  • show_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 analytics
  • show_github_integration: GitHub profile integration
  • show_geolocation: Approximate location information
  • show_performance_stats: Connection performance metrics
  • show_device_info: Device and OS information
  • show_social_graph: Mutual channels and connections
  • show_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!