From 07e6d8dfef4f833bf649dad387fa8b196ab00f09 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:14:45 +1000 Subject: [PATCH 01/13] Make rig-bridge/README.md markdown lint happy --- rig-bridge/README.md | 131 ++++++++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 64 deletions(-) diff --git a/rig-bridge/README.md b/rig-bridge/README.md index ad4d9bb9..65339b9c 100644 --- a/rig-bridge/README.md +++ b/rig-bridge/README.md @@ -16,8 +16,8 @@ It also connects FT8/FT4 decoding software (WSJT-X, JTDX, MSHV, JS8Call) to Open 4. [Connecting Your Radio](#connecting-your-radio) 5. [Connecting to OpenHamClock](#connecting-to-openhamclock) 6. [Digital Mode Software (FT8, JS8, etc.)](#digital-mode-software) -7. [APRS via Local TNC](#aprs-via-local-tnc) -8. [Antenna Rotator](#antenna-rotator) +7. [APRS via Local TNC _(Beta)_](#aprs-via-local-tnc-beta) +8. [Antenna Rotator](#antenna-rotator-alpha) 9. [HTTPS Setup (needed for openhamclock.com)](#https-setup) 10. [Troubleshooting](#troubleshooting) 11. [Glossary](#glossary) @@ -69,41 +69,43 @@ Select **Simulated Radio** in the setup screen. A fake radio will drift through ### Step 1 — Download and run Rig Bridge -**Option A — Installer from the OpenHamClock Settings tab (recommended)** +#### Option A — Installer from the OpenHamClock Settings tab (recommended) > Requires **Node.js** and **git** to be installed on your computer. 1. In OpenHamClock, open **Settings → Rig Bridge**. 2. Tick **Enable Rig Bridge**. 3. Click the download button for your operating system — **Windows**, **Mac**, or **Linux**. +4. Install Rig Bridge + - **Windows** -**Windows** + Open your Downloads folder and double-click `install-rig-bridge.bat`. + A Command Prompt window will open, download Rig Bridge, and start it automatically. -4. Open your Downloads folder and double-click `install-rig-bridge.bat`. - A Command Prompt window will open, download Rig Bridge, and start it automatically. + - **macOS** -**macOS** + Open **Terminal** (Applications → Utilities → Terminal) and run: -4. Open **Terminal** (Applications → Utilities → Terminal) and run: - ```bash - chmod +x ~/Downloads/install-rig-bridge.sh - ~/Downloads/install-rig-bridge.sh - ``` - The script downloads Rig Bridge and starts it. Leave the Terminal window open. + ```bash + chmod +x ~/Downloads/install-rig-bridge.sh + ~/Downloads/install-rig-bridge.sh + ``` -**Linux** + The script downloads Rig Bridge and starts it. Leave the Terminal window open. -4. Open a terminal and run: - ```bash - chmod +x ~/Downloads/install-rig-bridge.sh - ~/Downloads/install-rig-bridge.sh - ``` - The script downloads Rig Bridge and starts it. Leave the terminal open. + - **Linux** ---- + Open a terminal and run: + + ```bash + chmod +x ~/Downloads/install-rig-bridge.sh + ~/Downloads/install-rig-bridge.sh + ``` + + The script downloads Rig Bridge and starts it. Leave the terminal open. 5. Once Rig Bridge is running, return to OpenHamClock **Settings → Rig Bridge** and click - **Open Setup UI** — this opens **http://localhost:5555** in a new tab. + **Open Setup UI** — this opens **** in a new tab. 6. Copy the **API Token** shown at the top of that page. 7. Back in OpenHamClock **Settings → Rig Bridge**, paste the token into the **API Token** field. 8. Confirm **Host** is `http://localhost` and **Port** is `5555`. @@ -113,7 +115,7 @@ Now configure your radio in the Rig Bridge Setup UI — see [Connecting Your Rad To update Rig Bridge in the future, see [Updating Rig Bridge](#updating-rig-bridge). -**Option B — Run from source with Node.js** +#### Option B — Run from source with Node.js If you have Node.js installed: @@ -127,7 +129,7 @@ node rig-bridge.js Once Rig Bridge is running, open your web browser and go to: -**http://localhost:5555** +**** > **What is localhost:5555?** `localhost` means "this computer" — Rig Bridge is running on your own machine, not on the internet. `5555` is just the "door number" (port) it listens on. Nothing is sent to the internet. @@ -150,7 +152,7 @@ See [Connecting to OpenHamClock](#connecting-to-openhamclock) below. To update to the latest version, re-run the installer script you downloaded during setup with the `--update` flag. Your radio configuration is preserved automatically. -**Windows** +### Windows Open Command Prompt, navigate to your Downloads folder, and run: @@ -158,10 +160,9 @@ Open Command Prompt, navigate to your Downloads folder, and run: install-rig-bridge.bat --update ``` -> You cannot pass arguments by double-clicking a `.bat` file — open Command Prompt first -> (`Win + R` → type `cmd` → Enter), then run the command above. +> You cannot pass arguments by double-clicking a `.bat` file — open Command Prompt first (`Win + R` → type `cmd` → Enter), then run the command above. -**macOS / Linux** +### macOS / Linux ```bash ~/Downloads/install-rig-bridge.sh --update @@ -200,7 +201,7 @@ all source files. | FT-710 | Menu → CAT RATE | **38400** | | FT-DX10 | Menu → CAT RATE | **38400** | -**In Rig Bridge setup (http://localhost:5555):** +**In Rig Bridge setup ():** 1. Radio Type → **Yaesu** 2. Serial Port → select your radio's COM port (see tip below) @@ -230,13 +231,13 @@ all source files. 4. Stop Bits → **1** 5. CI-V Address → use the value for your model: -| Radio | CI-V Address | -| ------- | ------------ | -| IC-7300 | 0x94 | -| IC-7610 | 0x98 | -| IC-9700 | 0xA2 | -| IC-705 | 0xA4 | -| IC-7851 | 0x8E | + | Radio | CI-V Address | + | ------- | ------------ | + | IC-7300 | 0x94 | + | IC-7610 | 0x98 | + | IC-9700 | 0xA2 | + | IC-705 | 0xA4 | + | IC-7851 | 0x8E | 6. Click **Save & Connect** @@ -258,12 +259,12 @@ all source files. These connect over your local network using the TCI protocol — no USB cable needed. -**Step 1 — Enable TCI in your SDR software** +#### Step 1 — Enable TCI in your SDR software - **Thetis:** Setup → CAT Control → tick **Enable TCI Server** (default port: 40001) - **ExpertSDR:** Settings → TCI → Enable (default port: 40001) -**Step 2 — In Rig Bridge setup:** +#### Step 2 — In Rig Bridge setup 1. Radio Type → **TCI / SDR** 2. Host → `localhost` (or the IP address of the machine running the SDR software if it is on a different computer) @@ -272,7 +273,7 @@ These connect over your local network using the TCI protocol — no USB cable ne You should see in the Rig Bridge log: -``` +```text [TCI] ✅ Connected to ws://localhost:40001 [TCI] Device: Thetis ``` @@ -293,7 +294,7 @@ Rig Bridge will automatically reconnect if the SDR software is restarted. You should see: -``` +```text [SmartSDR] ✅ Connected — Slice A on 14.074 MHz ``` @@ -303,13 +304,13 @@ You should see: If you already have flrig or rigctld (Hamlib) controlling your radio, Rig Bridge can connect to them. This way you do not need to change anything in your existing workflow. -**flrig:** +#### flrig 1. Radio Type → **flrig** 2. Host → `127.0.0.1` (or the IP where flrig runs) 3. Port → **12345** -**rigctld:** +#### rigctld 1. Radio Type → **rigctld** 2. Host → `127.0.0.1` @@ -362,28 +363,28 @@ For example: Rig Bridge runs on a Raspberry Pi or shack PC connected to the radi This lets you control your radio at home from anywhere in the world through the openhamclock.com website. -**Step 1 — Install Rig Bridge on your home computer** +#### Step 1 — Install Rig Bridge on your home computer Download and run Rig Bridge on the computer that is connected to your radio (see [Getting Started](#getting-started)). -**Step 2 — Configure your radio** +#### Step 2 — Configure your radio -Open http://localhost:5555 and set up your radio. Make sure the green "connected" dot appears. +Open and set up your radio. Make sure the green "connected" dot appears. -**Step 3 — Enable HTTPS on Rig Bridge** +#### Step 3 — Enable HTTPS on Rig Bridge The openhamclock.com website uses a secure connection (HTTPS), and browsers will not allow it to talk to a non-secure Rig Bridge. You need to enable HTTPS first — see the [HTTPS Setup](#https-setup) section for the full walkthrough. -**Step 4 — Connect from OpenHamClock** +#### Step 4 — Connect from OpenHamClock -1. Go to https://openhamclock.com → **Settings → Rig Bridge** +1. Go to → **Settings → Rig Bridge** 2. Host: `https://localhost` — Port: `5555` 3. Paste your API Token 4. Click **Connect Cloud Relay** How it works behind the scenes: -``` +```text Your shack openhamclock.com ──────────── ──────────────── Radio (USB) ←→ Rig Bridge ──HTTPS──→ Your browser @@ -420,7 +421,7 @@ All of these are **bidirectional** — OpenHamClock can also send replies, stop **Step 2 — In Rig Bridge:** -1. Open http://localhost:5555 → **Plugins** tab +1. Open → **Plugins** tab 2. Find **WSJT-X Relay** and tick **Enable** 3. Click **Save** @@ -472,9 +473,11 @@ If you have a traditional hardware TNC connected via serial port: Rig Bridge can control antenna rotators via [Hamlib's](https://hamlib.github.io/) `rotctld` daemon. 1. Start rotctld for your rotator model, for example: - ``` + + ```bash rotctld -m 202 -r /dev/ttyUSB1 -t 4533 ``` + 2. In Rig Bridge → Plugins tab → find **Rotator** → tick **Enable** 3. Host → `127.0.0.1`, Port → `4533` 4. Click **Save** @@ -487,7 +490,7 @@ Rig Bridge can control antenna rotators via [Hamlib's](https://hamlib.github.io/ **Yes**, if you use openhamclock.com or any other HTTPS-hosted version of OpenHamClock. -**No**, if you run OpenHamClock locally on your own computer (e.g. http://localhost:3000) — you can skip this section. +**No**, if you run OpenHamClock locally on your own computer (e.g. ) — you can skip this section. ### Why is HTTPS needed? @@ -499,16 +502,16 @@ Rig Bridge solves this by generating its own security certificate — a small fi #### Step 1 — Enable HTTPS in Rig Bridge -1. Open **http://localhost:5555** in your browser +1. Open **h** in your browser 2. Click the **🔒 Security** tab 3. Tick **Enable HTTPS** 4. Rig Bridge will generate a certificate automatically (takes a few seconds) 5. **Quit and restart Rig Bridge** -6. From now on, open **https://localhost:5555** (note the `s` in `https`) +6. From now on, open **** (note the `s` in `https`) #### Step 2 — Deal with the browser warning -The first time you open https://localhost:5555 after enabling HTTPS, your browser will show a security warning. This is expected — the certificate is genuine, but your browser does not yet trust it. +The first time you open after enabling HTTPS, your browser will show a security warning. This is expected — the certificate is genuine, but your browser does not yet trust it. **Chrome / Edge:** @@ -534,7 +537,7 @@ Installing the certificate permanently tells your computer to trust Rig Bridge's **Easiest way — use the Install button:** -1. Make sure you are on **https://localhost:5555** (accepted the warning in Step 2) +1. Make sure you are on **** (accepted the warning in Step 2) 2. Go to the **🔒 Security** tab 3. Click **⬇ Download Certificate** — save the file `rig-bridge.crt` 4. Click **Install Certificate** — Rig Bridge will try to install it automatically @@ -587,10 +590,10 @@ certutil -addstore -f ROOT %APPDATA%\openhamclock\certs\rig-bridge.crt 1. Download the certificate from the Security tab 2. Open a terminal and run: -```bash -sudo cp ~/Downloads/rig-bridge.crt /usr/local/share/ca-certificates/ -sudo update-ca-certificates -``` + ```bash + sudo cp ~/Downloads/rig-bridge.crt /usr/local/share/ca-certificates/ + sudo update-ca-certificates + ``` 3. Import the certificate into your browser: - **Chrome / Chromium:** Settings → Privacy & Security → Manage Certificates → Authorities → Import @@ -609,7 +612,7 @@ Now that Rig Bridge is running on HTTPS, update the address in OpenHamClock: #### Step 5 — Verify everything works -- The padlock icon appears in your browser's address bar when visiting https://localhost:5555 ✓ +- The padlock icon appears in your browser's address bar when visiting ✓ - The status bar in OpenHamClock shows Rig Bridge as connected ✓ - Clicking a spot tunes your radio ✓ @@ -617,10 +620,10 @@ Now that Rig Bridge is running on HTTPS, update the address in OpenHamClock: If you ever want to go back to plain HTTP (for example, if you stop using openhamclock.com): -1. Open https://localhost:5555 → **🔒 Security** tab +1. Open → **🔒 Security** tab 2. Untick **Enable HTTPS** 3. Restart Rig Bridge -4. Open **http://localhost:5555** again and update OpenHamClock settings to `http://localhost` +4. Open **** again and update OpenHamClock settings to `http://localhost` ### Certificate storage location @@ -730,7 +733,7 @@ Rig Bridge exposes a simple HTTP API — compatible with the original rig-daemon ### Project structure -``` +```text rig-bridge/ ├── rig-bridge.js # Entry point ├── core/ From 453e297ea4c5df7f25745dd2d23fd30226f8a2e8 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:23:24 +1000 Subject: [PATCH 02/13] Make CONTRIBUTIONG.md markdown lint happy --- CONTRIBUTING.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 060bf3e1..ce1ff4ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ docker compose up ## Project Structure -``` +```text src/ ├── components/ # React UI panels (DXClusterPanel, SolarPanel, etc.) ├── hooks/ # Data fetching hooks (useDXCluster, usePOTASpots, etc.) @@ -71,9 +71,11 @@ See an issue you want to fix? Claim it so others know it's being worked on: 1. Find an issue you'd like to work on 2. Leave a comment containing exactly: - ``` + + ```text /assign ``` + 3. The bot will assign the issue to you and react with 👍 No write access required — any GitHub user can self-assign. Once assigned, feel free to ask questions in the issue thread before diving in. If you claimed something and it's no longer on your radar, just leave a comment so someone else can pick it up. @@ -83,9 +85,11 @@ No write access required — any GitHub user can self-assign. Once assigned, fee Fixed the bug or confirmed a resolution? Close the issue directly: 1. Leave a comment containing exactly: - ``` + + ```text /close ``` + 2. The bot will close the issue and react with 🚀 ### Submitting Code @@ -101,7 +105,7 @@ Fixed the bug or confirmed a resolution? Close the issue directly: Branch off `Staging` and use a descriptive prefix: -``` +```text feature/my-new-panel fix/pota-frequency-display docs/update-readme From da40a2eda9176cc77a38fdd4ca73b94bfe84b9ca Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:30:13 +1000 Subject: [PATCH 03/13] Make ROADMAP.md markdown lint happy --- ROADMAP.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index fe1ad91d..627ad181 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -134,10 +134,12 @@ Adopted year-based versioning: X = year, Y = visual/UI, Z = backend. The jump fr We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions. All PRs target the `Staging` branch. -- **Issues**: https://github.com/accius/openhamclock/issues +- **Issues**: - **Discussions**: GitHub Issues or the Community tab in Settings - **Security**: See [SECURITY.md](SECURITY.md) for vulnerability reporting --- + + _Last updated: 2026-03-26_ From 090a3ce9090334d93081936d54dad4484de4ff37 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:33:21 +1000 Subject: [PATCH 04/13] remove offending blank line in ROADMAP.md between markdown lint exception and what we want to allow --- ROADMAP.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 627ad181..0056a51e 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -140,6 +140,4 @@ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for setup instr --- - - -_Last updated: 2026-03-26_ +_Last updated: 2026-03-26_ From 169e550275c946e5286b26e9565d87c08db5ad24 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:36:05 +1000 Subject: [PATCH 05/13] Make SECURITY.md markdown lint happy --- SECURITY.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index 7c10f0d7..83eb40b8 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -57,14 +57,14 @@ For vulnerability reports, please use one of the **private channels** below. The #### Primary: GitHub Private Vulnerability Reporting -- **URL**: https://github.com/accius/openhamclock/security/advisories/new +- **URL**: - **Advantages**: Structured submission, built-in secure communication, CVE assignment support - **Expected acknowledgment**: Automated immediate, human review within 7 days #### Secondary: Encrypted Email -- **Address**: chris@cjhlighting.com -- **PGP Key**: Available at https://github.com/accius.gpg (or keybase.io/accius) +- **Address**: +- **PGP Key**: Available at (or keybase.io/accius) - **Fingerprint**: `[Will be added - use PGP key for sensitive communications]` - **Use when**: GitHub reporting is unavailable or for highly sensitive disclosures @@ -358,8 +358,8 @@ If you follow this policy, we commit to: Users and operators can stay informed of security updates via: -- **GitHub Security Advisories**: https://github.com/accius/openhamclock/security/advisories -- **GitHub Releases**: https://github.com/accius/openhamclock/releases (security fixes tagged) +- **GitHub Security Advisories**: +- **GitHub Releases**: (security fixes tagged) - **CHANGELOG.md**: Maintained in the repository - **Watch/Subscribe**: Enable "Security alerts" in your GitHub repository watch settings @@ -370,12 +370,14 @@ When a security update is released: 1. **Review the advisory**: Understand the impact and affected versions 2. **Check your version**: `git log -1 --pretty=format:"%H"` or `grep version package.json` 3. **Update immediately** for Critical/High severity: + ```bash git pull npm install npm audit fix docker-compose up -d --build # if using Docker ``` + 4. **Verify the fix**: Check that your version includes the patch commit 5. **Monitor for anomalies**: Review logs for signs of prior exploitation @@ -439,7 +441,7 @@ This policy will be reviewed and updated: For questions about this policy (not vulnerability reports): - **General security questions**: Open a public Discussion on GitHub -- **Policy clarifications**: Email chris@cjhlighting.com (non-confidential) +- **Policy clarifications**: Email (non-confidential) For **vulnerability reports**, see **§4 Reporting a Vulnerability**. From 3cd8d5afd3bbe196f0857e13af74858a70b9cc5c Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:38:27 +1000 Subject: [PATCH 06/13] Make AddOns/APRS-AutoPos/README.md markdown lint happy --- AddOns/APRS-AutoPos/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AddOns/APRS-AutoPos/README.md b/AddOns/APRS-AutoPos/README.md index e39a82cb..1ccec85d 100644 --- a/AddOns/APRS-AutoPos/README.md +++ b/AddOns/APRS-AutoPos/README.md @@ -29,4 +29,4 @@ The script polls the `aprs.fi` API at the configured interval. If a new position --- -_Developed by DO3EET_ +_Developed by DO3EET_ From a79d6e7927361925c20b453c33c0222cc11785af Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:40:08 +1000 Subject: [PATCH 07/13] Make AddOns/HFJ350M-Calculator/README.md markdown lint happy --- AddOns/HFJ350M-Calculator/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AddOns/HFJ350M-Calculator/README.md b/AddOns/HFJ350M-Calculator/README.md index 91a116c0..2b53555e 100644 --- a/AddOns/HFJ350M-Calculator/README.md +++ b/AddOns/HFJ350M-Calculator/README.md @@ -35,4 +35,4 @@ The tool also displays the **Sensitivity** (kHz/cm) for each band, helping you u --- -_Developed by DO3EET_ +_Developed by DO3EET_ From 1e43818b0abe12d53f603f81184880f07f247f8a Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:41:23 +1000 Subject: [PATCH 08/13] Make AddOns/Self_Hosting_Guide.md markdown lint happy --- AddOns/Self_Hosting_Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AddOns/Self_Hosting_Guide.md b/AddOns/Self_Hosting_Guide.md index c4e6428d..02a93acb 100644 --- a/AddOns/Self_Hosting_Guide.md +++ b/AddOns/Self_Hosting_Guide.md @@ -43,4 +43,4 @@ Avoid using `*://*/*` as a match pattern. This would allow the script to run on --- -_73 de DO3EET_ +_73 de DO3EET_ From db34d68ff3b9db9dacf54cc56a906b99af4c6aa0 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:43:05 +1000 Subject: [PATCH 09/13] Make docs/ARCHITECTURE.md markdown lint happy --- docs/ARCHITECTURE.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index bae54ce3..91c69fe1 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -10,7 +10,7 @@ OpenHamClock is a full-stack JavaScript application: - **Backend**: Express.js server that proxies 40+ external APIs, manages SSE/WebSocket connections, and serves static files - **Deployment**: Docker on Railway (production), `npm run dev` for local development -``` +```text ┌──────────────────────────────────────────────────────┐ │ Browser (React) │ │ App.jsx → Layout → Panels + WorldMap + Plugins │ @@ -30,7 +30,7 @@ OpenHamClock is a full-stack JavaScript application: ## Directory Structure -``` +```text openhamclock-main/ ├── index.html # Vite entry point → builds to dist/index.html ├── server.js # Express backend (all API routes, SSE, data aggregation) @@ -148,7 +148,7 @@ openhamclock-main/ Every data panel follows the same pattern: -``` +```text useXxxSpots.js (hook) → XxxPanel.jsx (component) → Layout.jsx ├── fetch /api/xxx ├── renders data list ├── arranges panels ├── polling interval ├── handles click events └── passes props @@ -165,10 +165,12 @@ useXxxSpots.js (hook) → XxxPanel.jsx (component) → Layout.jsx ### Adding a Map Layer Plugin 1. Create `src/plugins/layers/useMyLayer.js` following the plugin interface: + ```js export const meta = { name: 'my-layer', label: 'My Layer', ... }; export const useLayer = ({ map, enabled, config }) => { ... }; ``` + 2. The layer registry auto-discovers it — no manual registration needed 3. See `src/plugins/OpenHamClock-Plugin-Guide.md` for the full API From 186e6a0f84b48dfe91c05ebcb6a659dc3bdd7f15 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:43:47 +1000 Subject: [PATCH 10/13] Make docs/DOCKER.md markdown lint happy --- docs/DOCKER.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DOCKER.md b/docs/DOCKER.md index 55e17f1f..351179bf 100644 --- a/docs/DOCKER.md +++ b/docs/DOCKER.md @@ -8,7 +8,7 @@ cd openhamclock docker compose up -d ``` -Open **http://localhost:3000** — that's it. OpenHamClock runs with sensible defaults. +Open **** — that's it. OpenHamClock runs with sensible defaults. ## Customize Your Station From 15dc042cf68d551560a58f1dc6c06b6fa48559f8 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:45:13 +1000 Subject: [PATCH 11/13] Make docs/emcomm-roadmap.md markdown lint happy --- docs/emcomm-roadmap.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/emcomm-roadmap.md b/docs/emcomm-roadmap.md index 62a80618..0ffc9050 100644 --- a/docs/emcomm-roadmap.md +++ b/docs/emcomm-roadmap.md @@ -121,14 +121,14 @@ Operators check in to a net by sending an APRS message: **Check in:** -``` +```text TO: EMCOMM Body: CQ NETNAME ``` **Check out:** -``` +```text TO: EMCOMM Body: U NETNAME ``` @@ -139,7 +139,7 @@ Example: Sending `CQ HOTG Deployed to Shelter Alpha` to EMCOMM checks you in to For operators without APRS TX capability, the server provides a REST endpoint: -``` +```text POST /api/aprs/net/checkin Body: { "callsign": "W1ABC", "netName": "HOTG", "status": "At EOC" } ``` @@ -179,7 +179,7 @@ Incoming APRS messages addressed to your callsign appear in the message stream. ### Message Endpoint -``` +```text POST /api/aprs/message Body: { "to": "W1ABC", "message": "Need water at Shelter B" } ``` @@ -291,7 +291,7 @@ The rig-bridge includes a Winlink gateway plugin (`rig-bridge/plugins/winlink-ga ## Architecture -``` +```text ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ Radio/TNC │────▶│ APRS Daemon │────▶│ OpenHamClock │ │ (Direwolf) │◀────│ (rig-bridge │◀────│ (Node.js) │ From 950a3a76db14e23dc95dc464aa197b72d42ac19e Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:45:43 +1000 Subject: [PATCH 12/13] Make docs/N1MM-SETUP.md markdown lint happy --- docs/N1MM-SETUP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/N1MM-SETUP.md b/docs/N1MM-SETUP.md index 8dafd14b..968b436c 100644 --- a/docs/N1MM-SETUP.md +++ b/docs/N1MM-SETUP.md @@ -6,7 +6,7 @@ OpenHamClock can receive live QSO data from N1MM+ (and DXLog) during contests. E N1MM+ has a built-in feature that broadcasts UDP packets every time you log a contact. OpenHamClock listens for these broadcasts and plots each QSO on the map with band-colored arcs. -``` +```text N1MM+ ──── UDP (port 12060) ────▶ OpenHamClock Server │ ▼ From d9b06228599043f3099eb22a1c054048753c73e0 Mon Sep 17 00:00:00 2001 From: Alan Hargreaves Date: Tue, 7 Apr 2026 00:46:47 +1000 Subject: [PATCH 13/13] Make dxspider-proxy/README.md markdown lint happy --- dxspider-proxy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dxspider-proxy/README.md b/dxspider-proxy/README.md index 483adb09..cc5cf79e 100644 --- a/dxspider-proxy/README.md +++ b/dxspider-proxy/README.md @@ -180,7 +180,7 @@ CALLSIGN=YOURCALL npm start Once deployed, update your OpenHamClock configuration to use this proxy as a DX cluster source: -``` +```text https://your-proxy-url.railway.app/api/dxcluster/spots ```