APRSNET Desktop is a cross-platform desktop client designed for aprsnet.uk, supporting Windows 10/11 and Debian/Ubuntu Linux. Built using Electron, it offers a native application experience by wrapping the server's web UI.
Key Features:
System Tray Integration: Includes context menu options for Open, Reload, Disconnect, and Quit.
Native OS Notifications: Triggers alerts even when minimized to the tray.
Auto Member Login: Maintains user sessions without re-entering credentials.
Real-Time Settings Sync: Ensures updates across devices are immediate.
GPS Positioning: Plots locations via OS services or manual input.
Theme Control: Offers dark and light modes for user preference.
Audience & Benefit:
Ideal for APRS enthusiasts, network administrators, and developers seeking a robust desktop solution. It enhances efficiency by providing real-time data management and consistent settings across devices without browser dependency.
APRSNET Desktop can be installed via winget, offering a seamless experience for managing APRS data effectively.
README
APRS Client
Cross-platform desktop client for aprsnet.uk — Windows 10/11 and Debian/Ubuntu Linux.
Built with Electron: wraps the full server web UI in a native desktop application with system tray, native OS notifications, GPS positioning, auto member login, two-way filter persistence, real-time settings sync, and persistent appearance settings.
Time-lapse replay — rewinds station history at 10×–240× speed
Station detail modal with history, packet log, path tabs, QRZ.com profile
Messages centre — conversations inbox sidebar, thread view, compose bar, 5-row traffic log
Weather dashboard, UK Met Office severe weather warnings, animated RainViewer rain radar
Propagation analytics, activity and coverage meters, activity heatmap
ISS / ARISS live position and pass countdown
Utilities: passcode calculator, Maidenhead converter, beacon generator, symbol picker
Admin panel: full server configuration, API keys, webhooks, audit log, ban list, backup/restore
Geo-fence Alerts panel — create and manage server-side enter/exit rules
Member settings panel — quiet hours, map filter preferences, Ecowitt weather station configuration (API keys, MAC, beacon interval, WX SSID, pressure source, optional comment fields, Test Connection button)
Desktop Integration (client-overlay.js)
The overlay is injected into every aprsnet.uk page load and adds native desktop behaviour:
Toolbar — pinned bar at top of page showing callsign, WebSocket connection state (reads #conn-status from the DOM), GPS fix indicator, unread message count badge, and Disconnect button
Native OS notifications — incoming APRS messages trigger Windows/Linux system notifications via the Electron main process; fires even when the window is minimised to tray
Auto member login — signs in to your aprsnet.uk member account on every page load using saved credentials; the member panel and messages centre open pre-authenticated
Real-time settings sync — the app inherits the web page's member_sync WebSocket handler; when preferences are saved from Android, iOS, or another browser tab, the changes appear in the settings panel and on the map without a page reload
Two-way filter persistence (v1.2.1+) — change listeners on all 21 filter checkboxes (show-aprs, show-cwop, show-ogn, show-ships, show-lora, LoRa sub-filters, mp-drop-pistar, mp-drop-dstar, mp-drop-apdesk, etc.) capture every change and persist it via saveSettings; all 21 are restored and applied on every reconnect
GPS map marker — plots your location using the OS location services (via main.jsipcMain → webContents.send) or manual coordinates configured in the connect screen
Theme control — stores dark/light preference; applies data-theme="dark|light" to the page on every load
System Integration
System tray icon with context menu: Open, Reload, Disconnect, Quit
Minimise to tray on window close (configurable)
Launch on Windows startup with optional start-minimised mode
Single-instance lock — re-launching focuses the existing window rather than opening a second
First Run
Launch the app
Enter callsign and APRS-IS passcode
Enter your aprsnet.uk member account credentials (for auto-login, filter sync, and direct messaging)
Tick Remember me and connect automatically to skip this screen on future launches
Click Connect to APRS Net
The full web dashboard loads inside the app with the client toolbar at the top.
Settings
Click ⚙ in the toolbar to open the Desktop Settings dialog:
Setting
Description
Desktop notifications
Enable / disable OS message notifications
Minimise to tray
Window close minimises rather than quits
Launch on startup
Register with OS startup items
Auto-connect
Skip the connect screen on launch
Theme
Dark / Light — applied to the site on every page load
Full settings (callsign, passcode, member account, GPS source, appearance) are on the connect screen.
All settings are stored in settings.json in the Electron userData folder.
Cross-device Sync
The desktop client participates in the same cross-device sync as Android and iOS:
What syncs
Trigger
Direction
Map filter preferences
Login (auto)
Server → Desktop
Map filter preferences
Any checkbox change
Desktop → Server → All devices
Message history
Login (auto)
Server → Desktop (via loadMemberMessages())
New messages
Real-time
All devices → Server → Desktop (WS rx packet)
Settings changes
Any save
Any device → Server → Desktop (member_sync WS push)
Ecowitt WX config
Settings save
Desktop → Server → All devices
Building from Source
Prerequisites
Node.js 18+
npm
Install and build
git clone https://github.com/2E0LXY/APRS-Client
cd APRS-Client
npm install
# Run in development
npm start
# Build Windows installer (requires Windows or Wine)
npm run build:win -- --publish never
# Build Linux DEB
npm run build:linux -- --publish never
Every push to main builds installers; pushing a v* tag publishes them as a Release.