mirror of
https://github.com/n0mjs710/HBlink4.git
synced 2026-11-08 04:19:26 +00:00
HBlink4 draws operators who have never run a network server before, and several things in the install path assumed otherwise. Sample configuration split in two. config_sample.json was a feature showcase, and copying it as documented produced a broken server: its example repeater pattern claimed IDs 310000-312999 with a passphrase of its own, so an operator whose repeater fell in that range was rejected with no way to diagnose it (patterns match first-wins and never fall through to "default"). It also shipped an outbound link and an OpenBridge trunk enabled against hosts that do not exist, and bound both address families to one port, which cannot work. It is now a minimal working config needing one edit -- the passphrase. The full reference moves to config_advanced_sample.json with its link examples disabled and the ID overlap called out. Ship IPv4-only. Dual-stack is fully supported and now documented as four concrete layouts, each verified to bind; it is simply not the default, because most repeaters are IPv4 and the same-port bind conflict is not something a new operator should have to learn first. The built-in default when the key is absent stays false, so existing installs are unaffected. "IPv6 is globally disabled" drops from WARNING to INFO -- it is now the recommended setting and should not read as a fault. install_services.sh: refuse paths containing a space, $ or % (systemd mis-parses them in ExecStart=, and a space previously produced a unit that passed verification and then failed at start); escape & in the path substitution; render and verify units in a temp dir so a failed substitution cannot leave a broken unit in /etc/systemd/system. Check the things that otherwise surface only in the journal: complete checkout, Python 3.9+, server and dashboard dependencies, both config files, and agreement between the two halves of the dashboard event link. readme: seven numbered steps with no diversions, adding the prerequisites (python3-venv, which Debian and Ubuntu users hit constantly) and the firewall ports, neither of which were mentioned. Also: the dashboard logged a hardcoded localhost:8080 regardless of the configured port; run_all.sh now fails clearly on missing config instead of a traceback; pyproject's comment claimed systemd should invoke the console scripts, contradicting how the units actually work. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
41 lines
1.5 KiB
TOML
41 lines
1.5 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "hblink4"
|
|
description = "Next generation HomeBrew DMR protocol server"
|
|
readme = "readme.md"
|
|
requires-python = ">=3.9"
|
|
license = "GPL-3.0-or-later"
|
|
authors = [{ name = "Cort Buffington, N0MJS" }]
|
|
# Installing is OPTIONAL. HBlink4 runs straight from a git checkout:
|
|
# pip install -r requirements.txt -r requirements-dashboard.txt
|
|
# python hblink.py config/config.json
|
|
# This file exists for people who prefer `pip install -e .`, which additionally
|
|
# provides `hblink4` / `hblink4-dashboard` commands. Dependencies are read from
|
|
# the requirements files so there is only one place to declare them.
|
|
dynamic = ["version", "dependencies", "optional-dependencies"]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/n0mjs710/HBlink4"
|
|
|
|
# Console scripts, available only if you chose to `pip install` the project.
|
|
# They are NOT how HBlink4 is normally run: the systemd units invoke the module
|
|
# files by path straight from the checkout, so there is no install step to
|
|
# repeat after a `git pull`. See SYSTEMD.md.
|
|
[project.scripts]
|
|
hblink4 = "hblink4.hblink:main"
|
|
hblink4-dashboard = "dashboard.server:run"
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = { attr = "hblink4.__version__" }
|
|
dependencies = { file = ["requirements.txt"] }
|
|
optional-dependencies.dashboard = { file = ["requirements-dashboard.txt"] }
|
|
|
|
[tool.setuptools]
|
|
packages = ["hblink4", "dashboard"]
|
|
|
|
[tool.setuptools.package-data]
|
|
dashboard = ["static/*", "config_sample.json"]
|