-
2.0 Stable
released this
2026-08-22 07:11:03 +00:00 | 5 commits to main since this releaseAfter nine months of effort, I'm proud to announce the second major release of Spothole!
This is a major behind-the-scenes update with breaking changes to the API and configuration file, along with a huge overhaul in how some of the software's internals work, particularly looking up SIG references and callsigns.
For Web UI Users
The big changes in Spothole v2.0 are all under the hood. In terms of new features you'll notice, check out the new ability to highlight "wanted" calls, and the "distance" column in the main spot list.
For Client Developers
The good news is, backwards compatibility and the
v1API calls all still work, so there is nothing you need to change immediately. However, I recommend you update to thev2API when you can. There are only a few minor breaking changes which may not even affect you, depending on how your software calls the API. Please see the API changelog for more information and specific notes about updating from v1 to v2.For Self-Hosters
Please note that the config file (
config.yml) has significantly changed its structure and a number of property names have changed as well. I recommend starting from scratch by copyingconfig-example.ymltoconfig.ymland re-populating any fields you had set for your instance, such as the URL, server owner callsign, GMA and ClubLog API keys, etc.If you would like to run Spothole in a docker container, a Dockerfile and documentation is now available for this.
For Developers
The developer docs (minimal as they are) have been updated to show the new locations of areas of source code. The major structural change is the move from
spotproviders,alertprovidersandsolarconditionprovidersinto sub-directories ofproviders, where they are now joined by new providers which allow lookups of SIG reference and callsign data. SIG reference lookup now operates using downloaded static data (e.g. CSVs) from each SIG, to spare the third-party servers from too much load, and the provider classes sort out regular repeating lookups.Full Changelog
Features
- Complete rework of how SIG references are looked up, based on downloaded static data (e.g. CSVs) from each SIG rather than live queries to their server for every reference
- Moved callsign lookup to another provider subclass tree
- Introduced API v2, including breaking change to the API to allow for future upstream posting of spots to other services e.g. cluster, POTA. This feature has not yet been enabled, but the v2.0 API changes provide the groundwork to support it in future.
- API changes to keep QRZ/HamQTH credentials out of server logs, provide more consistent variable names, add support for the new provider types.
- Add "altitude" (when relevant) and "type" to SIG ref lookups using the API
- Add backwards compatibility hooks for v1 APIs
- Support for reCAPTCHA on spot submission
- Support for highlighting of "wanted" calls and partial calls in the web UI
- Add support for SANPCPA and GMA Islands SIGs
- Add location lookup for KRMNPA SIG
- Support Toilets on the Air at HOPE 26
- Add "distance" column to main spot list
- Add Dockerfile and documentation for running Spothole in docker
- Improve cache handling for all data types
Bug Fixes
- Fix a bug where duplicate spots and alerts could sometimes be registered
- Fix ZLOTA location lookup
- Fix incorrect IOTA locations
- Fix a large number of places where errors could be logged (including full exception stack traces) due to invalid user input when calling APIs
- Fix inconsistencies about whether dashes or underscores are used in certain config properties and variable names
- Fix inconsistencies in how log formatting was applied across the codebase
- Fix some incompatibilities with older Python versions
- Static analysis fixes and enforce better formatting using ruff
Thanks
Thanks in particular are due to Dan S50U, Matt W1CDN, Norby LX1NO, Andrew VK3ARR, Mario DL4MFM, Mark M5TEA, Michael G7VJR, Rob G7LAS, Ed DD5LP, Raph F4LUB, Luc ON7KEC, Richard GD4OFB, Daniel PY2TDB, Alan VK1AO, Andrew WK1AD, Ullrich DF5WC, Wayne N3CDF, Jonathan G4IVV, Erik N2EPE, Sorin YO9TSN, Matt HB9HWI, Priit ES1TEB, and Leigh KG7WED for providing assistance, feedback, bug reports, feature requests or just showing me something cool they built with the Spothole API. (There are probably more of you that I have forgotten, sorry!)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads