mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-09-24 16:24:32 +00:00
Rationalise docs part 3 #151
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# 
|
||||
# 
|
||||
|
||||
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).
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 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)
|
||||
|
||||

|
||||

|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
@@ -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">
|
||||
|
||||
@@ -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
@@ -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,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">« 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">« Back</a></p>
|
||||
</div>
|
||||
|
||||
<script>$(document).ready(function () {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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"}),
|
||||
|
||||
Reference in New Issue
Block a user