209 lines
5.4 KiB
Markdown
209 lines
5.4 KiB
Markdown
# 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.
|
|
|
|
```json
|
|
"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.
|
|
|
|
```json
|
|
"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.
|
|
|
|
```json
|
|
"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).
|
|
|
|
```json
|
|
"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).
|
|
|
|
```json
|
|
"show_real_host": {
|
|
"to_everyone": false,
|
|
"to_opers": true,
|
|
"to_self": true
|
|
}
|
|
```
|
|
|
|
### Channel Information (`show_channels`)
|
|
|
|
Controls channel visibility with additional granular options:
|
|
|
|
```json
|
|
"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.
|
|
|
|
```json
|
|
"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.
|
|
|
|
```json
|
|
"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).
|
|
|
|
```json
|
|
"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:
|
|
|
|
```json
|
|
"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:
|
|
|
|
```json
|
|
"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:
|
|
|
|
```json
|
|
"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:
|
|
|
|
```json
|
|
"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!
|