Files
HBlink4/config/config_sample.json
T
cort 31fe38b6dd Release v1.3: Documentation audit and config restructure
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.
2025-10-05 10:32:09 -05:00

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
}
}
}