Skip to content

hammunition-hill

Local-first ham radio dashboard — the Hammunition family's own

What it does

A dashboard for the operating position, served from this machine to your own browser: clocks, band plan, solar and geomagnetic dials, propagation, a globe with greyline and great-circle paths, DX spots coloured by your log, satellites, weather, a callsign lookup, a CW trainer and the pocket references. Snapshot architecture -- a collector fetches sources on its own schedule, the page reads the snapshots -- so the page never talks to the internet itself and the parts that need no internet keep working with the WAN unplugged.

Why you would want it

HamClock answers "what is the band doing" on one screen; Hill answers it for a laptop or a second monitor with your own log and station in the picture, and without an outbound dependency the page can be broken by. It is the Hammunition family's dashboard: built alongside this installer, by its maintainer, to be installed through it -- and the plan is for it to show the shack in front of you (rig state, live decodes, GPS fix, what this installer has set up) as those local sources are wired in. Its author's project, carried on the same evidence as everything else here.

Before it will work

A browser on this machine. An internet connection for the fetched tiers (space weather, spots, NWS); nothing for the offline tier. Optional: an ADIF log to colour spots and track DXCC/WAS, a callsign in /etc/hammunition-hill/config.toml, and API keys for the sources that want one -- the config file documents each. The station profile's gpsd is not consulted yet; position comes from the browser's geolocation.

How it installs

  • prebuilt deb from https://github.com/Renegade-Penguin/hammunition-hill/releases/download/v1.3.0/hammunition-hill_1.3.0_all.deb
  • The .deb's postinst creates the hamhill system user, enables hammunition-hill.service and starts it. That is a running service from the moment the install completes; see known_problems for what it listens on and how to stop it.

Known problems

This unit starts a service. The package enables and starts hammunition-hill.service as the hamhill system user, listening on 127.0.0.1:8073 (the packaged config's host and port; both editable). It is loopback-only by default and must stay that way -- upstream's own documentation says not to expose it to the internet, and the unit is hardened (ProtectSystem=strict, no capabilities, syscall filter) on that assumption. Inspect with systemctl status hammunition-hill; stop and disable with systemctl disable --now hammunition-hill; hammunition uninstall hammunition-hill removes the package, which stops the service, and leaves /etc/hammunition-hill/config.toml as a conffile until purged. The dependency floor is Python 3.11: on a target whose archive python3 is older (Pop!_OS 22.04, Ubuntu 22.04) apt refuses the .deb at plan time, and that refusal is correct. 1.0 is US-first -- band plans, exam pools and weather severity are US; other regulators' allocations are contributions upstream welcomes.

Keeping it current

  • probe: github release (Renegade-Penguin/hammunition-hill)
  • strategy: reinstall
  • Tagged releases with a .deb and SHA256SUMS attached to each. A release is a new digest; re-pin both.

Where to get help with the software itself

Issues on the GitHub repository. hamhill check --fetch exercises every configured source and is the first thing to run when a panel is blank.

Source: catalog/packages/hammunition-hill.yaml