Rationalise docs part 3 #151

This commit is contained in:
Ian Renton
2026-09-23 17:50:04 +01:00
parent c9d0a7652c
commit 2d14342089
14 changed files with 76 additions and 87 deletions
+7 -24
View File
@@ -1,4 +1,4 @@
# ![Spothole](/static/img/logo.png)
# ![Spothole](https://git.ianrenton.com/ian/spothole/raw/branch/main/static/img/logo.png)
Spothole is a utility to aggregate "spots" from amateur radio DX clusters and xOTA spotting sites, and provide an open
JSON API as well as a website to browse the data, and its own telnet server for integration with desktop loggers.
@@ -17,42 +17,25 @@ individual data source presents its data.
Spothole itself is also open source, Public Domain licenced code that anyone can take and modify.
Supported data sources include DX Clusters, the Reverse Beacon Network (RBN), the APRS Internet Service (APRS-IS), POTA,
SOTA, WWFF, GMA, WWBOTA, HEMA, Parks 'n' Peaks, ZLOTA, WOTA, BOTA, LLOTA, WWTOTA, Tiles on the Air, the UK Packet
Repeater Network, NG3K, and any site based on the xOTA software by nischu. It also integrates with QRZ.com and HamQTH,
retrieves solar data from various sources, provides information about upcoming contests, and more.
You can read more about Spothole on [the "About" page of the main server instance](https://spothole.app/about).
You can read more about Spothole on [the "Help" pages of the main server instance](https://spothole.app/help).
![Screenshot](/images/screenshot2.png)
![Screenshot](/images/screenshot3.png)
## Accessing the public version
You can access the public version's web interface at [https://spothole.app](https://spothole.app), and
see [https://spothole.app/apidocs](https://spothole.app/apidocs) for the API details.
This is a Progressive Web App, so you can also "install" it to your Android or iOS device by accessing it in Chrome or
Safari respectively, and following the menu-driven process for installing PWAs.
You are more than welcome to use the data and the API that Spothole provides to power your own software, to run your own
Spothole server, or to modify it in any way. More details can be found in the following sections:
Spothole server, or to modify it in any way. More details can be found
in [the "Help" pages of the main server instance](https://spothole.app/help).
* [Embedding Spothole in another website](docs/embedding.md)
* [Writing your own client](docs/clients.md)
* [Running your own copy](docs/running.md)
* [nginx reverse proxy configuration](docs/nginx.md)
* [systemd service file](docs/systemd.md)
* [Running in Docker](docs/docker.md)
* [Use of multiple cluster logins](docs/multicluster.md)
* [Modifying the source code](docs/modifying.md)
![Screenshot](/images/screenshot4.png)
![Screenshot](/images/screenshot3.png)
## Thanks
[Spothole's "About" page](https://spothole.app/about) contains the full details of the thanks I owe to the various
[Spothole's "Thanks" page](https://spothole.app/help/thanks) contains the full details of the thanks I owe to the
various
programme teams, software library providers, bug fixers etc. The extra detail below contains the extra detail of
specific files in this repository which are not all my own work and may be subject to other licences.
+1 -1
View File
@@ -77,7 +77,7 @@
</div>
<script src="/static/js/add-spot.js?v=1790181726"></script>
<script src="/static/js/add-spot.js?v=1790182205"></script>
<script>$(document).ready(function () {
$("#nav-link-add-spot").addClass("active");
}); <!-- highlight active page in nav --></script>
+1 -1
View File
@@ -85,7 +85,7 @@
</div>
<script src="/static/js/alerts.js?v=1790181726"></script>
<script src="/static/js/alerts.js?v=1790182205"></script>
<script>$(document).ready(function () {
$("#nav-link-alerts").addClass("active");
}); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -76,8 +76,8 @@
</div>
<script src="/static/js/spotsbandsandmap.js?v=1790181726"></script>
<script src="/static/js/bands.js?v=1790181726"></script>
<script src="/static/js/spotsbandsandmap.js?v=1790182205"></script>
<script src="/static/js/bands.js?v=1790182205"></script>
<script>$(document).ready(function () {
$("#nav-link-bands").addClass("active");
}); <!-- highlight active page in nav --></script>
+5 -5
View File
@@ -1,6 +1,6 @@
{% extends "skeleton.html" %}
{% block head_extra %}
<link rel="stylesheet" href="/static/css/style.css?v=1790181726" type="text/css">
<link rel="stylesheet" href="/static/css/style.css?v=1790182205" type="text/css">
<link href="/static/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
<link href="/static/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
<link href="/static/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
@@ -16,10 +16,10 @@
window.fetchEventSource = fetchEventSource;
</script>
<script src="/static/js/utils.js?v=1790181726"></script>
<script src="/static/js/ui-ham.js?v=1790181726"></script>
<script src="/static/js/geo.js?v=1790181726"></script>
<script src="/static/js/common.js?v=1790181726"></script>
<script src="/static/js/utils.js?v=1790182205"></script>
<script src="/static/js/ui-ham.js?v=1790182205"></script>
<script src="/static/js/geo.js?v=1790182205"></script>
<script src="/static/js/common.js?v=1790182205"></script>
{% end %}
{% block body %}
<div class="container">
+1 -1
View File
@@ -284,7 +284,7 @@
</div>
<script src="/static/vendor/js/chart-4.4.9.umd.min.js"></script>
<script src="/static/js/conditions.js?v=1790181726"></script>
<script src="/static/js/conditions.js?v=1790182205"></script>
<script>$(document).ready(function () {
$("#nav-link-conditions").addClass("active");
}); <!-- highlight active page in nav --></script>
+1 -43
View File
@@ -1,7 +1,7 @@
{% extends "help_page.html" %}
{% block help_content %}
<h2 class="mt-4">FAQ</h2>
<h2 class="mt-4">Frequently Asked Questions (FAQ)</h2>
<h4 class="mt-4">"Spots"? "DX Clusters"? What does any of this mean?</h4>
<p>This is a tool for amateur ("ham") radio users. Many amateur radio operators like to make contacts with others
who are doing something more interesting than sitting in their home "shack", such as people in rarely-seen
@@ -21,48 +21,6 @@
"DX" operator. "Modes" are the type of communication they are using. For example you might see "CW" which is
Morse Code, or voice "modes" like SSB or FM, or more exotic "data" modes which are used for computer-to-computer
communication.</p>
<h4 class="mt-4">What data sources are supported?</h4>
<p>Spothole can retrieve spots from: <a href="https://www.dxcluster.info/telnet/">Telnet-based DX clusters</a>, the
<a href="https://www.reversebeacon.net/">Reverse Beacon Network (RBN)</a>, the <a
href="https://www.aprs-is.net/">APRS Internet Service (APRS-IS)</a>, <a href="https://pota.app">POTA</a>,
<a href="https://www.sota.org.uk/">SOTA</a>, <a href="https://wwff.co/">WWFF</a>, <a
href="https://www.cqgma.org/">GMA</a>, <a href="https://wwbota.net/">WWBOTA</a>, <a
href="http://www.hema.org.uk/">HEMA</a>, <a href="https://www.parksnpeaks.org/">Parks 'n' Peaks</a>, <a
href="https://ontheair.nz">ZLOTA</a>, <a href="https://www.wota.org.uk/">WOTA</a>, <a
href="https://llota.app">LLOTA</a>, <a href="https://wwtota.com">WWTOTA</a>, <a
href="https://tilesontheair.com/">Tiles on the Air</a>, the <a href="https://ukpacketradio.network/">UK
Packet Repeater Network</a>, and any site based on the <a href="https://github.com/nischu/xOTA">xOTA
software by nischu</a>.</p>
<p>Spothole can retrieve alerts from: <a href="https://www.ng3k.com/">NG3K</a>, <a href="https://pota.app">POTA</a>,
<a href="https://www.sota.org.uk/">SOTA</a>, <a href="https://wwff.co/">WWFF</a>, <a
href="https://www.parksnpeaks.org/">Parks 'n' Peaks</a>, <a href="https://www.wota.org.uk/">WOTA</a> and
<a href="https://www.beachesontheair.com/">BOTA</a>. It also fetches contest dates from
<a href="https://contestcalendar.com/">WA7BNM Contest Calendar</a> and RSGB contest calendars.</p>
<p>Spothole can retrieve solar and propagation condition data from <a href="https://www.hamqsl.com">HamQSL</a>, the
<a href="https://www.swpc.noaa.gov/">NOAA Space Weather Prediction Center</a>, the <a
href="https://giro.uml.edu/">Lowell GIRO Data Center</a> and <a href="https://prop.kc2g.com/">prop.kc2g.com</a>
by KC2G.</p>
<p>Spothole can also perform lookups for callsign data on behalf of the user from <a
href="https://qrz.com">QRZ.com</a> and <a href="https://hamqth.com">HamQTH</a>.</p>
<p>Note that the server owner has not necessarily enabled all these data sources. In particular it is common to
disable RBN, to avoid the server being swamped with FT8 traffic, and to disable APRS-IS and UK Packet Net so
that the server only displays stations where there is likely to be an operator physically present for a QSO.</p>
<p>Between the various data sources, the following activities / special interest groups are supported: Contests,
DXpeditions, Aeronautical Mobile, Maritime Mobile, EME/Moonbounce, Amateur Satellite, QRP, Parks on the Air
(POTA), Summits on the Air (SOTA), Worldwide Flora & Fauna (WWFF), Global Mountain Activity (GMA), Worldwide
Bunkers on the Air (WWBOTA), HuMPs Excluding Marilyns Award (HEMA), Islands on the Air (IOTA), Mills on the Air
(MOTA), the Amateur Radio Lighthouse Society (ARLHS), International Lighthouse Lightship Weekend (ILLW), Silos
on the Air (SIOTA), World Castles Award (WCA), New Zealand on the Air (ZLOTA), Keith Roget Memorial National
Parks Award (KRMNPA), South Australia National Parks and Conservation Parks Award (SANPCPA), Wainwrights on the
Air (WOTA), Beaches on the Air (BOTA), Lagos y Lagunas On the Air (LLOTA), Towers on the Air, Tiles on
the Air, Worked All Britain (WAB), Worked All Ireland (WAI), Diploma Municipios de España (DME), Diploma
Faros de España (FEA), Diploma Muesos de España (DMUE), Diploma Castillos de España (DCE), Diploma Monumentos y
Vestigios de España (DMVE), Diploma Estaciones de Ferrocarril de España (DEFE), Diploma Teatri Musei e Belle
Arti (DTMBA), British Inland Waterways on the Air (BIWOTA), Castles on the Air (COTA), Polish Gmina Award (PGA),
Diplôme des Moulins de France (DMF), RaDAR Rally, and Toilets on the Air.</p>
<p>As of the time of writing in August 2026, I think Spothole captures most radio programmes that have a
defined, downloadable reference list, and almost certainly those that have a spotting/alerting API. If you know
of one I've missed, please let me know!</p>
<h4 class="mt-4">Why can I filter spots by both Activity and Source? Isn't that basically the same thing?</h4>
<p>Mostly, but not quite. While POTA spots generally come from the POTA source and so on, there are a few
exceptions:</p>
+2 -2
View File
@@ -2,9 +2,9 @@
{% block content %}
<div id="info-container" class="mt-4">
<p class="small mb-0"><a href="/help">Spothole Help</a></p>
<p class="small mb-0"><a href="/help">&laquo; Spothole Help</a></p>
{% block help_content %}{% end %}
<p class="small mt-4"><a href="/help">Back</a></p>
<p class="small mt-4"><a href="/help">&laquo; Back</a></p>
</div>
<script>$(document).ready(function () {
+3 -2
View File
@@ -9,8 +9,9 @@
<ul>
<li><a href="/help/about">About Spothole</a></li>
<li><a href="/help/using">How To Use Spothole</a></li>
<li><a href="/help/faq">FAQ</a></li>
<li><a href="/apidocs">OpenAPI Specification</a></li>
<li><a href="/help/sources">Supported Data Sources</a></li>
<li><a href="/help/faq">Frequently Asked Questions (FAQ)</a></li>
<li><a href="/apidocs">API Documentation</a></li>
<li><a href="/help/accuracy">Data Accuracy</a></li>
<li><a href="/help/privacy">Privacy</a></li>
<li><a href="/help/thanks">Thanks</a></li>
+47
View File
@@ -0,0 +1,47 @@
{% extends "help_page.html" %}
{% block help_content %}
<h2 class="mt-4">Supported Data Sources</h2>
<p>Spothole can retrieve spots from: <a href="https://www.dxcluster.info/telnet/">Telnet-based DX clusters</a>, the
<a href="https://www.reversebeacon.net/">Reverse Beacon Network (RBN)</a>, the <a
href="https://www.aprs-is.net/">APRS Internet Service (APRS-IS)</a>, <a href="https://pota.app">POTA</a>,
<a href="https://www.sota.org.uk/">SOTA</a>, <a href="https://wwff.co/">WWFF</a>, <a
href="https://www.cqgma.org/">GMA</a>, <a href="https://wwbota.net/">WWBOTA</a>, <a
href="http://www.hema.org.uk/">HEMA</a>, <a href="https://www.parksnpeaks.org/">Parks 'n' Peaks</a>, <a
href="https://ontheair.nz">ZLOTA</a>, <a href="https://www.wota.org.uk/">WOTA</a>, <a
href="https://llota.app">LLOTA</a>, <a href="https://wwtota.com">WWTOTA</a>, <a
href="https://tilesontheair.com/">Tiles on the Air</a>, the <a href="https://ukpacketradio.network/">UK
Packet Repeater Network</a>, and any site based on the <a href="https://github.com/nischu/xOTA">xOTA
software by nischu</a>.</p>
<p>Spothole can retrieve alerts from: <a href="https://www.ng3k.com/">NG3K</a>, <a href="https://pota.app">POTA</a>,
<a href="https://www.sota.org.uk/">SOTA</a>, <a href="https://wwff.co/">WWFF</a>, <a
href="https://www.parksnpeaks.org/">Parks 'n' Peaks</a>, <a href="https://www.wota.org.uk/">WOTA</a> and
<a href="https://www.beachesontheair.com/">BOTA</a>. It also fetches contest dates from
<a href="https://contestcalendar.com/">WA7BNM Contest Calendar</a> and RSGB contest calendars.</p>
<p>Spothole can retrieve solar and propagation condition data from <a href="https://www.hamqsl.com">HamQSL</a>, the
<a href="https://www.swpc.noaa.gov/">NOAA Space Weather Prediction Center</a>, the <a
href="https://giro.uml.edu/">Lowell GIRO Data Center</a> and <a href="https://prop.kc2g.com/">prop.kc2g.com</a>
by KC2G.</p>
<p>Spothole can also perform lookups for callsign data on behalf of the user from <a
href="https://qrz.com">QRZ.com</a> and <a href="https://hamqth.com">HamQTH</a>.</p>
<p>Note that the server owner has not necessarily enabled all these data sources. In particular it is common to
disable RBN, to avoid the server being swamped with FT8 traffic, and to disable APRS-IS and UK Packet Net so
that the server only displays stations where there is likely to be an operator physically present for a QSO.</p>
<p>Between the various data sources, the following activities / special interest groups are supported: Contests,
DXpeditions, Aeronautical Mobile, Maritime Mobile, EME/Moonbounce, Amateur Satellite, QRP, Parks on the Air
(POTA), Summits on the Air (SOTA), Worldwide Flora & Fauna (WWFF), Global Mountain Activity (GMA), Worldwide
Bunkers on the Air (WWBOTA), HuMPs Excluding Marilyns Award (HEMA), Islands on the Air (IOTA), Mills on the Air
(MOTA), the Amateur Radio Lighthouse Society (ARLHS), International Lighthouse Lightship Weekend (ILLW), Silos
on the Air (SIOTA), World Castles Award (WCA), New Zealand on the Air (ZLOTA), Keith Roget Memorial National
Parks Award (KRMNPA), South Australia National Parks and Conservation Parks Award (SANPCPA), Wainwrights on the
Air (WOTA), Beaches on the Air (BOTA), Lagos y Lagunas On the Air (LLOTA), Towers on the Air, Tiles on
the Air, Worked All Britain (WAB), Worked All Ireland (WAI), Diploma Municipios de España (DME), Diploma
Faros de España (FEA), Diploma Muesos de España (DMUE), Diploma Castillos de España (DCE), Diploma Monumentos y
Vestigios de España (DMVE), Diploma Estaciones de Ferrocarril de España (DEFE), Diploma Teatri Musei e Belle
Arti (DTMBA), British Inland Waterways on the Air (BIWOTA), Castles on the Air (COTA), Polish Gmina Award (PGA),
Diplôme des Moulins de France (DMF), RaDAR Rally, and Toilets on the Air.</p>
<p>As of the time of writing in August 2026, I think Spothole captures most radio programmes that have a
defined, downloadable reference list, and almost certainly those that have a spotting/alerting API. If you know
of one I've missed, please let me know!</p>
{% end %}
+2 -2
View File
@@ -113,8 +113,8 @@
const CARTODB_API_KEY = "{{ web_ui_options.get('cartodb_api_key', '') }}";
</script>
<script src="/static/js/spotsbandsandmap.js?v=1790181726"></script>
<script src="/static/js/map.js?v=1790181726"></script>
<script src="/static/js/spotsbandsandmap.js?v=1790182204"></script>
<script src="/static/js/map.js?v=1790182204"></script>
<script>$(document).ready(function () {
$("#nav-link-map").addClass("active");
}); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -125,8 +125,8 @@
</div>
<script src="/static/js/spotsbandsandmap.js?v=1790181726"></script>
<script src="/static/js/spots.js?v=1790181726"></script>
<script src="/static/js/spotsbandsandmap.js?v=1790182204"></script>
<script src="/static/js/spots.js?v=1790182204"></script>
<script>$(document).ready(function () {
$("#nav-link-spots").addClass("active");
}); <!-- highlight active page in nav --></script>
+1 -1
View File
@@ -96,7 +96,7 @@
</div>
</div>
<script src="/static/js/status.js?v=1790181726"></script>
<script src="/static/js/status.js?v=1790182205"></script>
<script>
$(document).ready(function () {
$("#nav-link-status").addClass("active");
+1 -1
View File
@@ -231,7 +231,7 @@ class WebServer:
PageTemplateHandler,
{"template_name": f"help/{page}"},
)
for page in ["about", "using", "faq", "accuracy", "privacy", "thanks"]
for page in ["about", "using", "sources", "faq", "accuracy", "privacy", "thanks"]
] + [
# Old "About" page URL, redirect for the benefit of existing links & bookmarks
(r"/about", RedirectHandler, {"url": "/help"}),