Files
HBlink4/dashboard/config_sample.json
Cort BuffingtonandClaude Opus 5.5 72cf6423f5 Remove the manual user CSV pipeline; load a filter of any size
The dashboard has built its callsign table from radioid.net since v4.7.0,
but the old manual process was still documented as usable. Nothing reads
user.csv, so an operator who followed it got a correct-looking file and a
dash in Last Heard. Remove the file, scripts/filter_user_csv.py and its
instructions.

min_rows_required rejected any filter result under 1000 rows, which ruled
out 153 of the 190 countries in the current data. Refuse only an empty
result, which means a misspelled country. Truncated or malformed downloads
still fail earlier. A valid but unexpectedly short file is now accepted
until the next good download. That leaves nothing in the fallback section
that is read, as keep_stale_on_failure never was, so remove it; existing
configs that carry it are unaffected.

The filter still defaults to the United States and Canada. Document how to
change it and when a change takes effect: at the next daily download, or
immediately by deleting the snapshot and meta files and restarting. Both
files have to go, because the meta file's timestamp suppresses the startup
refresh.

Reported in #7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:45:55 -06:00

48 lines
2.3 KiB
JSON

{
"server_name": "HBlink4 Server",
"server_description": "Amateur Radio DMR Network",
"dashboard_title": "HBlink4 Dashboard",
"announcement": {
"enabled": false,
"text": ""
},
"network_info": {
"enabled": false,
"button_text": "Network Info",
"url": "https://example.com/network-info"
},
"refresh_interval": 1000,
"max_events": 50,
"web": {
"_comment": "LISTENING socket for browsers (the web UI). Unrelated to the HBlink4 event link below. 'bind' is a bind address: '0.0.0.0' for all IPv4 interfaces, '::' for all interfaces on a dual-stack host, '127.0.0.1' for local access only.",
"bind": "0.0.0.0",
"port": 8080
},
"event_receiver": {
"_comment": "LISTENING socket for HBlink4's incoming event connection. HBlink4 dials in and sends the events; the dashboard only sends sync_request back over the connection it accepted. Naming convention: bind_* = an address we listen on, host_* = an address we connect out to. bind_ipv4/bind_ipv6 accept '0.0.0.0'/'::' for all interfaces, or '' to disable that family. transport, port and unix_socket must match the 'dashboard' section of config/config.json.",
"disable_ipv6": false,
"transport": "unix",
"bind_ipv4": "127.0.0.1",
"bind_ipv6": "::1",
"port": 8765,
"unix_socket": "/tmp/hblink4.sock"
},
"user_database": {
"_comment": "Radio ID to callsign lookups, downloaded daily from radioid.net. Only the countries listed below are loaded, so a radio from anywhere else shows '-' in Last Heard. Add yours using the exact name radioid.net uses, e.g. [\"New Zealand\"], or use \"all\" (no list brackets) for every country. See dashboard/README.md for when a change takes effect.",
"enabled": true,
"source_url": "https://database.radioid.net/static/user.csv",
"user_agent": "HBlink4-Dashboard (+https://github.com/n0mjs710/HBlink4; contact=operator@example.org)",
"refresh": {
"schedule": "daily",
"time_of_day": "03:17",
"jitter_minutes": 15,
"on_startup_if_older_than_hours": 36
},
"filter": {
"countries": ["United States", "Canada"],
"callsign_regex": null,
"radio_id_ranges": null
}
}
}