mirror of
https://github.com/n0mjs710/HBlink4.git
synced 2026-11-08 12:26:31 +00:00
Major changes: - Comprehensive documentation audit completed - Config restructure: dashboard moved from global to top-level - Dual-stack IPv6: bind_ipv4/bind_ipv6 with port_ipv4/port_ipv6 - Dashboard transport: host_ipv4/host_ipv6 with disable_ipv6 flag - Fixed corrupted dashboard/server.py imports - Updated all documentation to match actual implementation - Removed duplication, established single source of truth Documentation updates: - docs/configuration.md: Complete overhaul with accurate field definitions - docs/dashboard_transport.md: Updated transport configuration guide - docs/integration.md: Dual-stack integration examples - dashboard/README.md: Clarified dashboard configuration requirements - DASHBOARD_INTEGRATION.md: Streamlined integration summary - All config examples now use correct field names Configuration changes: - dashboard section moved to top-level (not nested under global) - IPv6 settings: disable_ipv6 flag replaces ipv6 boolean - Separate bind addresses and ports for IPv4 and IPv6 - Dashboard uses host_ipv4/host_ipv6 instead of single host field Bug fixes: - Fixed syntax error in dashboard/server.py (corrupted imports) - All JSON configs validate successfully - All 39 tests passing See DOCUMENTATION_AUDIT.md for complete audit report.
145 lines
4.1 KiB
JSON
145 lines
4.1 KiB
JSON
{
|
|
"global": {
|
|
"max_missed": 3,
|
|
"timeout_duration": 30,
|
|
"disable_ipv6": false,
|
|
"bind_ipv4": "0.0.0.0",
|
|
"bind_ipv6": "::",
|
|
"port_ipv4": 62031,
|
|
"port_ipv6": 62031,
|
|
"logging": {
|
|
"file": "logs/hblink.log",
|
|
"console_level": "INFO",
|
|
"file_level": "DEBUG",
|
|
"retention_days": 30
|
|
},
|
|
"stats_interval": 60,
|
|
"report_stats": true,
|
|
"stream_timeout": 2.0,
|
|
"stream_hang_time": 10.0,
|
|
"user_cache": {
|
|
"timeout": 600
|
|
}
|
|
},
|
|
"dashboard": {
|
|
"enabled": true,
|
|
"disable_ipv6": false,
|
|
"transport": "unix",
|
|
"host_ipv4": "127.0.0.1",
|
|
"host_ipv6": "::1",
|
|
"port": 8765,
|
|
"unix_socket": "/tmp/hblink4.sock",
|
|
"buffer_size": 65536
|
|
},
|
|
"global_alternate_example": {
|
|
"comment": "Alternative configuration showing longer hang time for slower operators",
|
|
"max_missed": 5,
|
|
"use_ipv6": false,
|
|
"bind_ip": "0.0.0.0",
|
|
"bind_port": 62031,
|
|
"logging": {
|
|
"file": "logs/hblink.log",
|
|
"console_level": "INFO",
|
|
"file_level": "DEBUG",
|
|
"retention_days": 30
|
|
},
|
|
"stream_timeout": 2.0,
|
|
"stream_hang_time": 20.0
|
|
},
|
|
"blacklist": {
|
|
"patterns": [
|
|
{
|
|
"name": "Blocked IDs",
|
|
"description": "Should never be used",
|
|
"match": {
|
|
"ids": [1, 2]
|
|
},
|
|
"reason": "Repeated abuse of network"
|
|
},
|
|
{
|
|
"name": "Blocked Range",
|
|
"description": "Unauthorized network range",
|
|
"match": {
|
|
"id_ranges": [[315000, 315999]]
|
|
},
|
|
"reason": "Unauthorized DMR-MARC range"
|
|
},
|
|
{
|
|
"name": "Blocked Callsigns",
|
|
"description": "Banned operators",
|
|
"match": {
|
|
"callsigns": ["BADACTOR*", "SPAM*"]
|
|
},
|
|
"reason": "Network abuse"
|
|
}
|
|
]
|
|
},
|
|
"repeater_configurations": {
|
|
"patterns": [
|
|
{
|
|
"name": "KS-DMR Network",
|
|
"description": "All repeaters in the KS-DMR network",
|
|
"match": {
|
|
"id_ranges": [[312000, 312099]]
|
|
},
|
|
"config": {
|
|
"passphrase": "ks-dmr-network-key",
|
|
"slot1_talkgroups": [8, 9],
|
|
"slot2_talkgroups": [3120, 3121, 3122]
|
|
}
|
|
},
|
|
{
|
|
"name": "WA0EDA Repeaters",
|
|
"description": "All WA0EDA club repeaters",
|
|
"match": {
|
|
"callsigns": ["WA0EDA*"]
|
|
},
|
|
"config": {
|
|
"passphrase": "wa0eda-network-key",
|
|
"slot1_talkgroups": [8],
|
|
"slot2_talkgroups": [31201, 31202]
|
|
}
|
|
},
|
|
{
|
|
"name": "Club Network",
|
|
"description": "Multiple specific repeaters for a club network",
|
|
"match": {
|
|
"ids": [312100, 312101, 312102]
|
|
},
|
|
"config": {
|
|
"passphrase": "club-network-key",
|
|
"slot1_talkgroups": [8],
|
|
"slot2_talkgroups": [3100, 3101, 3102]
|
|
}
|
|
}
|
|
],
|
|
"default": {
|
|
"passphrase": "passw0rd",
|
|
"slot1_talkgroups": [1],
|
|
"slot2_talkgroups": [2]
|
|
}
|
|
},
|
|
"talkgroups": {
|
|
"8": {
|
|
"name": "Local",
|
|
"bridge": false
|
|
},
|
|
"9": {
|
|
"name": "Alternate KS-DMR",
|
|
"bridge": true
|
|
},
|
|
"3120": {
|
|
"name": "KS Statewide",
|
|
"bridge": true
|
|
},
|
|
"3122": {
|
|
"name": "KS-DMR Tech",
|
|
"bridge": false
|
|
},
|
|
"31202": {
|
|
"name": "WA0EDA Event",
|
|
"bridge": false
|
|
}
|
|
}
|
|
}
|