APRS Net

📡 ✕ RX: 0 STN: 0
Range
–

ℹ
📡
Loading recent activity...
0 packets · 0 stations · 0s

Map Style

Trail Length

📜 Load History

Map loads live packets only by default. Click Load to fetch history.

Sign in to customise which station types appear on the map. Anonymous users see all stations by default.

Station Filters

No path shown


APRS-IS · WebSocket · UDP · REST API · Webhooks

📌 APRS Objects & Items

⚠ Sign in as a member to create or edit APRS objects. Objects are transmitted to APRS-IS with your callsign as the originator.

Active Objects
Name Owner Position Symbol Comment Last Seen

APRS objects are temporary points pushed to the network with a name, position and comment. Commonly used for events, emergencies, search-and-rescue, repeater locations, and net meeting points. They expire after a set time unless re-beaconed.

📌 Create APRS Object

⚠ This object will be transmitted to APRS-IS with YOUR callsign as the originator. It will be visible to everyone on the network. Use responsibly.

🕸 APRS Mesh Network

Force-directed graph of digipeater relay relationships. Drag nodes. Larger = more relayed. Lines show recent relay activity.

Digipeater
Station
Hub (high traffic)

Latest Heard Stations

Icon Callsign Device Path Last Heard Coordinates Raw Packet

Tick "LoRa Network" in the map sidebar to fetch data, or click Refresh above.

Last Seen TX Callsign iGate (*digipeated) ASL (m/ft) SNR (dB) RSSI (dBm) Distance
📡
Messages
Conversations
💬
No conversations yet
Log in to send a message
📡 Net Check-in
BG
💬
Select a conversation or tap ✏ to start a new one
📡 Quick Net Check-in
Or message a callsign
Route:
📡 Net Quick Check-in — tap to pre-fill
0 / 67
TRAFFIC LOG

Server Health

Uptime

0s

RX / TX Packets

0 / 0

RX / TX Bytes

0 B

Dropped

0

TCP Clients

0

Upstream

None Monitor

📈 Activity Trends (last 60 min, this session)

Packets / minute

Unique stations / minute

Peak pkts/min
0
Avg pkts/min
0
Total stations seen
0
Total packets
0
Connected Clients
CallsignTypeSoftwareAddressStatus

Data Export & Monitoring

⬇ GeoJSON ⬇ KML 📊 /metrics 🔒

GeoJSON/KML: all stations + objects in memory. Prometheus /metrics: requires admin credentials (HTTP Basic Auth). For Grafana: add credentials in the datasource config.

💬 APRS Net Support Group

Questions, feedback and announcements

📍 Geo-fence & Alerts

📡 Server Geo-fence Rules

Synced to Android and iOS apps. Evaluated server-side on every packet.

Not signed in — sign in to sync geo-fence rules to your Android/iOS apps too.

⚡ Browser Smart Rules

Run in your browser only. Active while this tab is open. No sign-in needed.

Trigger types: callsign appears, callsign silent, station enters/exits zone, comment keyword, weather threshold.

🔔 Browser Notifications

Sign in to your member account to enable geo-fence push notifications.
💬 APRS Net Support Group

Questions, feedback and announcements

👁 Station Watchlist

Add callsigns to watch. You'll get a browser notification and the station will be highlighted on the map whenever it's heard.

No stations being watched. Add a callsign above.

Recent Alerts

No alerts yet

ℹ️ How it works

Callsigns are matched with or without SSID — watching M0ABC will alert for M0ABC, M0ABC-9, M0ABC-10 etc. Wildcards supported: G* matches all G-prefix callsigns.

🌦 Weather Dashboard

🌡
Avg Temp
--
💧
Avg Humidity
--
🌬
Max Wind
--
📡
WX Stations
--

No weather stations heard yet. Waiting for CWOP/WX packets...

🔧 APRS Utilities

🔑APRS-IS Passcode

Calculate the APRS-IS passcode for any amateur callsign.

--

Based on the standard APRS-IS passcode algorithm (XOR hash of callsign, SSID stripped).

📐Maidenhead / QTH Locator

Convert between lat/lon and Maidenhead grid square.

--
Maidenhead grid square

📡APRS Beacon Generator

Build a valid APRS position packet string.

Generated packet:

Fill in fields above...

🎯Symbol Picker

Click a symbol to see its code. Use in beacon generator or TNC config.

🏆 Leaderboard & Community

📡
Active Stations
--
📦
Packets Today
--
🚗
Mobile Stations
--
🌦
WX Stations
--
🏅 Most Packets (this session)
#CallsignPacketsLast Heard
📏 Farthest Stations Heard
#CallsignDistanceBearing
⚡ Most Recently Heard
#CallsignTimeType
🚀 Fastest Moving
#CallsignSpeedCourse

📟Top Devices & Software

Aggregated from aprs-deviceid tocall database (CC BY-SA 2.0)

📊Propagation Analytics

Computed from the server's packet history buffer.

🕐 Best Time of Day

Loading…

00h06h12h18h23h

🗓 7-Day Activity Heatmap

🛰 Longest RF Paths (most digi hops)

#CallsignHopsPath

⭐ Station Reliability Grades

Grade A–F based on packet count + consistency over time

GradeCallsignPacketsSpanAvg Gap
📻 Active Nets & Groups Detected

Analysing traffic for NTS nets, tactical groups and message clusters...

📋 Recent APRS Messages

No messages heard yet

🛸 ISS / ARISS APRS

ISS Position

Loading...

Next Pass Over Your Location

Requires location access

ARISS Callsign

RS0ISS / NA1SS

Freq: 145.825 MHz FM

Digipeater

RS0ISS-4

Path: RS0ISS or ARISS

Recent ARISS Packets

Loading from aprs.fi...
Time From To / Via Comment Coords

Heard via ISS on this gateway

Stations received by this gateway that were digipeated via RS0ISS or ARISS:

CallsignLast HeardPosition

No ISS-digipeated packets received yet

How to use ARISS APRS

Tune to 145.825 MHz FM · Set your path to ARISS or RS0ISS · Check pass times at heavens-above.com ↗ · Live ISS track at aprs.fi ↗

📚 APRS Net Help & Documentation

Quick Navigation

🚀 Getting Started 🗺 Map & Stations 👤 Member Accounts 📨 Messaging 📡 Station Tracking ✨ Features Tour 🚀 Enhanced Features Desktop & Mobile Apps 🔌 Connect Clients ⚙ REST API 🪝 Webhooks 🛠 Admin Guide 🔧 Utilities ❓ Troubleshooting

🚀 Getting Started

APRS Net is a real-time APRS-IS gateway that shows live amateur radio packet activity on an interactive map. You can use it as a guest (read-only) or create a free account to unlock messaging, watchlists, and offline message storage.

Three ways to use this site:

  1. Browse anonymously — view the live map, station details and weather data without logging in
  2. Create a member account — click 👤 Login in the header, then "Create a new account". Saves your watchlist across devices and stores APRS messages while you're offline
  3. Connect an APRS client — point APRSDroid, YAAC, Direwolf or your radio to www.aprsnet.uk:14580 using your callsign and APRS-IS passcode

🗺 Map & Stations

Sidebar controls

  • Map Style: switch between Street, Satellite, Topo and Dark themes
  • Day/Night: overlay the daylight terminator on the map
  • Trail Length: how far back to show station movement trails
  • Station Filters: toggle Ham APRS, CWOP Weather, OGN Gliders, Objects/Items, Pi-Star/MMDVM
  • Hide Static: hide stations that haven't moved for > 5 min
  • PHG Circles: show coverage prediction circles for stations broadcasting PHG (Power-Height-Gain) data. Works for Ham, LoRa, MMDVM, and all other station types.
  • Geo-fence Alerts: set custom rules under the Alerts panel to notify you when a station enters or leaves a geographic area. Web rules are stored in your browser. Signed-in members can also create server-synced rules (pushed to Android/iOS) via Settings → Geo-fence Alerts in the mobile apps.
  • Smart Search (Ctrl+K / ⌘K): search callsigns, comments, messages, and device types. Selecting a result flies the map to that station automatically.
  • Cluster Markers: groups dense areas into numbered clusters

Map interactions

  • Click station: opens Station Detail with full info
  • Hover station: callsign tooltip with type
  • 📍 My Location: centres map on your browser location
  • ◀ Sidebar tab: collapses the left sidebar to maximise map space

👤 Member Accounts

Members get persistent watchlists across devices, server-side storage for APRS messages received while offline, and quick access to their callsign passcodes.

Create an account

  1. Click 👤 Login in the header (top right)
  2. Choose "Create a new account"
  3. Enter your callsign — your APRS-IS passcode is calculated automatically and shown live
  4. Set a password (6+ characters), optionally add your name and email
  5. Click Create Account — you're logged in

👁 Watchlist tab

Add callsigns to watch. Wildcards supported (G*, M0ABC*). When a watched station appears on map you get a desktop notification. Watchlist syncs to the server — works on any device you log in from.

📨 Messages tab

Any APRS message sent to your callsign while you're offline is stored here (up to 500 messages). Unread messages show with a blue left border. Mark all read once you've reviewed them.

📡 Callsigns tab

Add additional callsigns you own (e.g. M0ABC-9, M0ABC-10). Each one's APRS-IS passcode is shown. Messages to any of your callsigns are stored for offline delivery.

⚙ Settings tab

Change your display name, email, or password (requires current password). Your callsign cannot be changed after registration.

📨 Messaging

Send APRS messages directly through the web interface. Messages are sent through the APRS-IS network with your callsign and passcode.

From Messages panel

  1. Click Messages in the header
  2. Enter your callsign and APRS-IS passcode
  3. Type the destination callsign and message
  4. Click Send

From Station Detail

  1. Click any station on the map
  2. Click ✉ Send Message in the footer
  3. Destination is pre-filled, type your message
  4. Click Send

⚠ Don't know your passcode? Use the 🔧 Utils panel → Passcode Calculator, or check your member dashboard.

📡 Station Tracking

Follow a moving station in real-time with full position history displayed as a cyan trail on the map.

  1. Click a station on the map to open Station Detail
  2. Click 📡 Track in the footer
  3. Map centres on the station, draws cyan polyline trail with ▲ arrows showing direction of travel
  4. Tooltip on trail shows position count, distance covered and average speed
  5. Map auto-follows — re-centres every 3 seconds on new positions
  6. Drag the map to temporarily pause auto-follow (resumes after 30s)
  7. Click 📡 G1ABC ✕ in header (or ⛔ Stop Tracking in detail modal) to stop

Static stations can also be tracked — useful for watching when a vehicle starts moving.

✨ Features Tour

🌦 Weather Panel

Live weather dashboard pulling from CWOP stations. Gauges for temperature, wind, pressure, humidity, rainfall. Click a station for historical graphs over the last hour.

👁 Watch Panel

List of stations you're watching. Add via the input or from any station detail modal. Notifications appear when watched stations transmit.

🛸 ISS Panel

Live ISS position (TLE proxied through aprsnet.uk). Pass prediction using SGP4 orbital mechanics shows when ISS will be overhead at your location. ARISS announcements pulled from aprs.fi.

🔧 Utilities Panel

Passcode calculator, Maidenhead locator converter, beacon generator (build a position packet), APRS symbol picker.

🏆 Leaderboard

Live rankings: most active stations, fastest moving (vehicles only — WX excluded), longest path traversed, most-recently-heard. Active nets & groups detected from message traffic.

📡 LoRa Stations (two sources)

LoRa (via APRS-IS) — sidebar filter, ON by default. Identifies LoRa-APRS stations from your live APRS-IS feed by their TOCALL prefix (APLR*, APLG*, APLT*, APLO*) or LoRa keyword. Get the most comprehensive coverage as nearly all LoRa iGates gate to APRS-IS. Marked with a small purple L badge on the map icon.

"LoRa Network" overlay — OFF by default. Adds the lora-aprs.live overlay with iGates (📡 purple), Trackers (🛰 green) and signal-quality lines colour-coded by SNR: green (>-3dB), yellow (-3 to -12), orange (-12 to -18), red (<-18). Background fetch enriches APRS-IS LoRa stations with SNR/RSSI data when available — click any LoRa station to see signal details. Data from lora-aprs.live.

🌙 / ☀ Theme Toggle

Switch between dark and light mode (top right). Map tiles always stay daylight regardless of theme. Preference saved across sessions.

🔗 Packet Path Visualiser

In Station Detail, click Show Path to draw lines on the map showing the digipeater hops a packet took to reach the gateway.

📢 MOTD Banner

Server announcements appear at the top of the page. Dismissable banners stay dismissed across reloads. Also shows unread APRS message count for logged-in members.

🚀 Enhanced Features Guide

A detailed guide to the advanced monitoring, analytics and notification features. Each explains what it does, where to find it, and how to read it.

📶 Propagation Range

Where: Top header bar, next to the station count (hidden on narrow mobile screens — use the Mobile site there).

A 10-segment bar showing how many stations are currently heard at each distance from your own station (the location set in Settings / the connect form). Each segment is one distance band in miles:

0-5   5-10   10-20   20-40   40-80   80-160   160-200   200-500   500-1000   1000+

  • Segment colour = stations heard in that band right now: grey = none, blue = 1, green = 2-3, yellow = 4-7, orange = 8+.
  • LOW / MED / HIGH label = the furthest band with at least two stations heard. LOW = nothing meaningful beyond 40 mi, MED = 40-200 mi, HIGH = 200 mi or further.

Note: this server is internet-connected (APRS-IS), so "stations heard" includes traffic gated in from elsewhere — it shows your effective visibility radius on the network, not literal RF propagation. Stations with invalid (0,0 or out-of-range) coordinates are excluded. Hover the bar for a per-band breakdown.

📡 High Activity Alert

Where: A green banner that slides down from the very top of the page.

Fires automatically when network traffic spikes to an unusually busy level (an internal activity score above 80/100, based on packets-per-minute over the last 10 minutes) — a heads-up that something is happening on the network worth looking at. It auto-hides after 30 seconds, can be dismissed with the ✕, has a 30-minute cooldown so it never spams, and is silenced (banner still shows, but no beep) during your Quiet Hours.

📡 Range Lines (to you)

Where: Sidebar checkbox (left panel, under the station filters).

When enabled, draws a dashed line from every recently-heard station to your own station (the location set in Settings / the connect form) — showing how far your gateway's effective reach currently extends. This does not show RF paths between other stations — over an internet-fed APRS-IS connection there is no way to know who heard whom over the air. Lines are colour-coded by distance:

  • Green — within 10 mi (local)
  • Lime — 10-40 mi (nearby)
  • Yellow — 40-160 mi (regional)
  • Orange — 160-500 mi (distant)
  • Purple — over 500 mi (DX / long distance)

Hover any line to see the callsign and exact distance in miles/km. Stations with invalid (0,0 or out-of-range) coordinates are excluded. Lines refresh automatically every 30 seconds.

📈 Propagation Analytics

Where: The 🏆 Board panel (header button) — scroll to the "Propagation Analytics" card. It auto-loads when you open the panel; press 🔄 Refresh to recompute.

Four analytics views computed from the server's stored packet history:

  • Best Time of Day — a 24-bar histogram showing which hours of the day have the most packet traffic. The peak hour is highlighted. Helps identify when the network is most active.
  • 7-Day Activity Heatmap — a day × hour colour grid. Darker/brighter indigo cells mean more packets in that hour. Hover any cell for the exact count. Spot daily and weekly patterns at a glance.
  • Longest RF Paths — a ranking of the stations heard via the most digipeater hops. A high hop count means the packet travelled through many relays to reach the gateway.
  • Station Reliability Grades — every station graded A–F based on how consistently it transmits. An A-grade station beacons regularly over a long period; an F-grade one was heard only briefly or erratically. The table shows packet count, time span, and average gap between packets.

🌧 Weather Radar Overlay

Where: Sidebar checkbox (left panel, under the station filters).

Overlays animated rain-radar imagery on the map, sourced from RainViewer (global coverage, no setup needed). The radar loops through the last couple of hours plus a short forecast, updating every 0.6 seconds. Semi-transparent so station markers stay visible on top. Toggle off when you don't need it to keep the map clean.

⚠ UK Severe Weather Warnings

Where: A coloured banner at the very top of the page (appears only when a warning is active).

Shows live UK National Severe Weather Warnings from the Met Office. The banner colour matches the warning severity: 🟡 Yellow, 🟠 Amber, 🔴 Red. The most severe active warning is shown. Dismiss with the ✕ — it won't reappear unless a genuinely new warning is issued. Checked every 15 minutes. This works with no setup; an optional Met Office DataHub API key (Admin panel) is only needed for future detailed-forecast features.

↩ Click-to-Reply

Where: The Messages panel.

Any APRS message you receive shows the sender's callsign as a clickable button. Tap it and the "To" field is instantly filled with that callsign, the Messages panel opens, and the cursor jumps to the message box — so you can reply in seconds without retyping the callsign.

🔍 Auto-Fit Zoom & 👻 Station Ghosting

Where: Sidebar checkboxes (left panel, under the station filters).

Auto-Fit Zoom — when on, the map automatically zooms and pans so every visible station fits on screen. As soon as you manually pan or zoom, it switches itself off so you stay in control.

Station Ghosting (on by default) — stations not heard for 30+ minutes gradually fade out and gain a pulsing dashed ring, so you can instantly tell fresh stations from stale ones. The older a station, the more transparent it becomes. A new packet snaps it back to full brightness.

📬 Message Notifications & 🌙 Quiet Hours

Where: Notifications appear automatically; Quiet Hours is set in your Member account → Settings tab.

Logged-in members get notified about APRS messages: a prominent toast on login if messages arrived while you were away, a live toast when a new message comes in, a desktop browser notification if the tab is in the background, plus a red count badge on the member button.

Quiet Hours — set a start and end time (e.g. 22:00–07:00) to silence notification toasts and beeps overnight. The count badge still updates quietly, so nothing is missed — it just won't make noise. Handles windows that cross midnight.

📨 Offline Message Delivery

Where: Automatic — no setup beyond having a member account.

If someone sends an APRS message to your callsign while you're offline, the server stores it. The moment any client logs in with your callsign — the web messenger, APRSDroid, a radio, anything — the queued messages are delivered to it as normal APRS packets. Messages survive until you collect them.

📱 Mobile Companion Site

Where: Visit /mobile on your phone, or use the "📱 Mobile" link in the footer.

A touch-optimised version of the site with a native-app-style bottom tab bar: Map (full-screen live map), Stations (searchable list — tap to locate), Messages (recent APRS messages), and Status (network activity and server stats). It uses the same live data feed as the desktop site but with a stripped-down, thumb-friendly layout.

Desktop & Mobile Apps

As well as this website, APRS Net is available as native applications for Windows and Android. The apps wrap this same dashboard and add native conveniences: GPS positioning from your device, system notifications for incoming messages, saved settings (callsign, member account, appearance), single sign-on and auto-connect.

Windows Desktop Client

A desktop application for Windows 10 and 11. Runs in its own window with a system-tray icon, native desktop notifications, and an optional launch-on-startup. Plots your own location on the map and lets you send APRS messages from a toolbar composer.

Download the Windows installer (.exe)

Android App

A native Android app delivering the full dashboard with a touch-friendly layout, native GPS via Android location services, push notifications for messages, and saved settings between launches.

Download the Android app (.apk)

Both apps are open source under GPL v3 and are dedicated to www.aprsnet.uk - there is nothing to configure beyond your callsign. The APK installs by sideloading: download it, allow installation from your browser or file manager, then open it. There is also a lightweight mobile web page at /mobile if you prefer not to install anything.

🔌 Connect to this Server

This server accepts connections from APRS clients, hardware trackers, web apps, and automation tools. Use the right protocol for what you're building.

Server endpoints at a glance

ServiceAddressAuth
APRS-IS TCPwww.aprsnet.uk:14580Callsign + passcode
UDP (hardware)www.aprsnet.uk:14580None
WebSocketwss://www.aprsnet.uk/wsJSON auth or anonymous
REST APIhttps://www.aprsnet.uk/api/*X-API-Key header
WebhooksPush to YOUR URLAdmin configured

📡 APRS-IS over TCP (most common)

This is the standard APRS-IS protocol. Use any APRS client, software TNC, or radio with APRS gating capability.

Host:www.aprsnet.uk Port:14580 Protocol:APRS-IS TLS:None (plain TCP) Filter (optional):filter r/53.7/-1.6/400

How to log in:

  1. Enter your callsign (e.g. G7XYZ)
  2. Enter your APRS-IS passcode — calculated from your callsign. Find yours at apps.magicbug.co.uk/passcode or aprsdirect.com
  3. Optional: set a filter to limit packets you receive (e.g. filter r/53.7/-1.6/400 for 400km around Wakefield)

If you're a member of this server, your saved callsign/passcode are used automatically — just sign in from the header.

🛠 Recommended clients & setup notes

📱 APRSDroid (Android)

Free on F-Droid & Play Store. Settings → Connection Preferences:
APRS Server: www.aprsnet.uk:14580

💻 APRS Client (this server's app)

Pre-configured for this server. Download Windows or Linux build

🦊 YAAC (Yet Another APRS Client)

Java, all platforms. Configure → Ports → APRS-IS:
Hostname: www.aprsnet.uk, Port: 14580

🐺 Direwolf (software TNC)

Linux/macOS/Windows. In direwolf.conf:
IGSERVER www.aprsnet.uk:14580
IGLOGIN G7XYZ 12345

🪟 APRSIS32 (Windows)

Configure → Ports → Add APRS-IS:
Server: www.aprsnet.uk Port: 14580

🐧 Xastir (Linux)

Interface → Interface Control → Add Internet Server. Same host/port as above.

📻 Hardware Trackers (UDP)

Hardware like the Kenwood TH-D74, Yaesu FT2D, Mobilinkd TNC, and budget IoT trackers can push raw APRS packets over UDP — no login needed.

Host:Port:www.aprsnet.uk:14580 Protocol:UDP Login:None Format:Raw APRS packets, one per UDP datagram

Useful for embedded devices that can't speak the APRS-IS handshake protocol.

🌐 WebSocket API (for browsers & code)

Stream live APRS packets directly to a web app or script. This is what this page itself uses.

URL:wss://www.aprsnet.uk/ws Format:JSON messages Replay:Request via {"type":"replay_request"}

Quick start (JavaScript):

const ws = new WebSocket('wss://www.aprsnet.uk/ws');
ws.onopen = () => {
  // Optional auth - lets you SEND messages
  ws.send(JSON.stringify({
    type: 'auth', callsign: 'G7XYZ', passcode: '12345'
  }));
};
ws.onmessage = (ev) => {
  const m = JSON.parse(ev.data);
  if (m.type === 'rx') console.log('Packet:', m.packet);
};

Without auth you receive packets read-only. With auth you can transmit messages, create objects, etc. as your callsign.

⚙ REST API (snapshots, exports)

HTTP endpoints for polling data. Full reference in the next help section.

GET https://www.aprsnet.uk/api/status — server stats (no auth)
GET https://www.aprsnet.uk/api/history — X-API-Key required
GET https://www.aprsnet.uk/api/export/geojson — GeoJSON dump
GET https://www.aprsnet.uk/api/export/kml — Google Earth KML

Get an API key from Admin → API Keys. Keys can be revoked anytime.

🪝 Webhooks (push to YOUR endpoint)

Server POSTs JSON to your URL when matching packets arrive. Great for Home Assistant, Node-RED, n8n, IFTTT, Discord/Slack bots.

Configure in: Admin → Webhooks
Triggers: position · message · weather
Filter: callsign pattern, area, type
Method: POST JSON, retries on 5xx

⚠ Troubleshooting Connections

  • "Login not verified" — your passcode doesn't match the callsign. Recalculate at magicbug.co.uk/passcode. Passcodes are integers, not your radio licence number.
  • "Connection refused" — your firewall or network blocks port 14580. Try from a phone hotspot to confirm. Corporate/school networks often block this.
  • No packets arriving — set a wide filter like filter r/53.7/-1.6/2000 or check this server's own status panel. If this server is upstream-disconnected, no clients will see traffic.
  • WebSocket keeps reconnecting — usually a network/proxy issue. Open browser DevTools (F12) → Network → WS to see the actual error. Corporate proxies sometimes strip the Upgrade header.
  • Hardware tracker silent — UDP is fire-and-forget; you won't get an error if packets don't arrive. Check the server's Status panel to see if your packets are landing (look for your callsign in the Connected Clients table).
  • Can't send messages — you must authenticate with a valid passcode. Read-only WebSocket clients can receive but not send.
  • QRZ.com profile shows "subscription required" — your QRZ XML subscription has lapsed; renew at shop.qrz.com.

⚙ REST API

Base URL: https://www.aprsnet.uk/api

EndpointAuthDescription
GET /api/statusNoneServer stats, upstream connection, packet counts
GET /api/historyAPI KeyLast hour of positions (JSON array)
GET /api/objectsNoneCurrently active APRS objects/items
GET /api/messagesNoneLast hour of APRS messages
GET /api/arissNoneARISS info proxied from aprs.fi
GET /api/tleNoneISS TLE elements (cached 6h)
GET /api/versionNoneServer version & build info
GET /api/motdNonePublic message of the day
GET /api/export/geojsonNoneAll stations + objects as GeoJSON
GET /api/export/kmlNoneAll stations + objects as KML (Google Earth)
POST /api/member/registerNoneCreate member account
POST /api/member/loginNoneReturns session token
GET /api/member/profileTokenMember profile, watchlist, callsigns
GET /api/member/messagesTokenStored offline APRS messages
GET /metricsAdminPrometheus metrics endpoint
GET /demoNoneRead-only demo mode (sets cookie)

API Keys: generate via Admin → API Keys. Send as X-API-Key: ... header. Member Tokens: after login, send as X-Member-Token: ... header.

🪝 Webhooks

Get notified when watched events happen. Configure in Admin → Webhooks.

Event types:

  • message — every APRS message received (filter by callsign)
  • watched — a callsign on the server-wide watchlist transmits
  • object — a new APRS object appears
  • upstream — upstream APRS-IS connection state changes

Payload (POST JSON):

{
  "event": "message",
  "from": "G1ABC", "to": "M0XYZ",
  "text": "Hello", "ts": 1715000000,
  "callsign": "G1ABC"
}

🛠 Admin Guide

⚠ This section requires admin login. Click Admin in the header.

👥 Member Management

View all members, search by callsign or name. Per-member actions:

  • Edit — update name, email, callsigns
  • Msgs — view their stored APRS messages
  • Pass — set a new password (forces re-login)
  • Logout — kill all sessions across devices
  • Delete — permanently remove account & data

🚫 Ban List

Block specific callsigns from being broadcast. Wildcards supported (e.g. SPAM*). Banned packets are silently dropped from WebSocket and TCP client streams.

📢 MOTD

Banner shown at top of every page. Four levels: info / success / warning / error. Optionally user-dismissable.

💾 Backup & Restore

Download a single JSON file containing all members, bans, MOTD, webhooks, API keys and config. Restore by uploading. Recommended weekly backup.

📋 Audit Log

Every admin action logged: who, what, when, target, IP. Member registrations also logged. Last 100 entries shown by default.

⚡ Hot Reload Config

Change APRS-IS filter, upstream server, server name etc. without restarting. Changes apply immediately to the upstream connection.

🔑 API Keys

Generate keys for /api/history access (Grafana, dashboards, scripts). Each key can be revoked individually.

⬆ Self-Update

If a new GitHub release is available, the ⬆ button appears in the header. Pulls, rebuilds and restarts via systemd. Audit-logged.

🔧 Utilities (the 🔧 Utils panel)

Passcode Calculator

Enter a callsign → get the APRS-IS passcode. Same algorithm used by all APRS-IS servers.

Maidenhead Locator

Convert between latitude/longitude and Maidenhead grid (e.g. IO83qe). Supports field/square/subsquare precision.

Beacon Generator

Build a complete APRS position packet from lat/lon, symbol, comment and PHG fields. Copy-paste straight into your TNC.

Symbol Picker

Visual browser of all APRS symbols. Click any to copy its symbol code (e.g. /> for a car).

❓ Troubleshooting

Connection indicator is orange / "Upstream: None"

The WebSocket is connected but the upstream APRS-IS connection is reconnecting. Usually clears within 30 seconds. If persistent, check the admin panel → Status tab.

"ERR_TOO_MANY_REDIRECTS" in console

Chrome HSTS cache issue. Go to chrome://net-internals/#hsts, scroll to "Delete domain security policies", enter aprsnet.uk and delete. Repeat for www.aprsnet.uk.

Messages aren't sending

Check your APRS-IS passcode is correct. Get it from the Utils panel or your member dashboard. Each callsign has a unique passcode — using the wrong one silently fails.

Map shows no stations

Check that filter checkboxes in the sidebar are ticked. By default Ham APRS, CWOP, OGN and Objects are on. Pi-Star/MMDVM is off by default — tick it if you want digital voice gateways. If still empty, refresh the page — replay should fill the map within 5 seconds.

Light mode text hard to read

Report it via the GitHub issue tracker. Each panel has been tested but new components might have contrast issues.

Advanced APRS Go Server · · GNU GPL v3

© 2026 Daren Loxley 2E0LXY · Source on GitHub

💬 APRS Net Support Group

🔐

Admin Login

Enter your admin credentials

Want to explore? Enter demo mode

Core Configuration

Server Identity

APRS-IS Uplink

APRS-IS Subscription Filter

These filters control what data the upstream APRS-IS server sends to your gateway. They do not affect packets your gateway transmits. Multiple filters can be combined — if any filter matches, the packet is passed. Prefix a filter with - to exclude matching packets.

ℹ️ Leave blank or use auto to automatically use a range filter based on your geofence centre below.

Advanced — filter builder helpers (rarely needed)
r/lat/lon/dist Range Filter
Pass position packets & objects within dist km of a point. Up to 9 range filters allowed. Also passes messages to stations within range.
m/dist My Range Filter
Range filter centred on your own last known position on APRS-IS. Requires your callsign to be heard on the network.
f/call/dist Friend Range Filter
Range filter centred on another station's last known position. Useful for tracking a friend or vehicle. Up to 9 allowed.
p/aa/bb/... Callsign Prefix Filter
Pass all traffic from callsigns starting with these prefixes. E.g. G M0 2E passes all UK callsigns.
b/call1/call2/... Budlist (Exact Callsign) Filter
Pass all traffic from these exact callsigns (including SSID). Wildcard * allowed e.g. 2E0LXY* matches all SSIDs.
t/poimqstunw Packet Type Filter
Pass only selected packet types. Combine letters freely e.g. t/pw for positions and weather only.
a/latN/lonW/latS/lonE Area (Bounding Box) Filter
Pass packets within a rectangular area. Enter NW corner and SE corner. South/West are negative. Up to 9 area filters.
d/digi1/digi2/... Digipeater Filter
Pass packets that have been digipeated through specific stations. Useful for seeing all traffic via a local digi. Wildcard * allowed.

⚠️ Exclude Mode

Any filter above can be negated by prefixing with -. Enable this to add the next filter as an exclusion. E.g. r/53.7/-1.5/200 -p/CW = range filter BUT exclude CWOP stations.

Leave blank or type auto to use geofence centre + radius. Full filter docs ↗

Drop Filters

Geofence Boundary

When enabled, packets outside this radius are dropped server-side regardless of APRS-IS filter.

🔑 Third-Party API Keys

Free key from aisstream.io. Used when users enable the Live Ships overlay. Defaults to a built-in fallback key if blank.

QRZ.com XML Lookup (operator profile data)

QRZ XML subscription credentials. When configured, clicking any callsign on the map shows their QRZ photo, address, name, grid, license class etc. Cached 24h per callsign. Server keeps password in server_config.json (plain text - keep that file readable only by root).

Met Office DataHub (optional - site forecast API)

Optional. The UK Severe Weather Warnings overlay works without a key (public Met Office RSS feed). A DataHub key from datahub.metoffice.gov.uk is only needed for the future site-specific forecast feature. Leave blank if unsure.

Change Admin Password

🔗 Webhooks

POST JSON to external URLs on APRS events. Works with Node-RED, Home Assistant, n8n.

No webhooks configured

POST {"event":"position","timestamp":...,"callsign":"M0ABC","data":{...}}

🗝 API Keys

Issue keys for third-party access to /api/history without admin credentials.

Copy now - shown once only:

No API keys

Usage: curl -H "X-API-Key: aprs_..." /api/history

⬆ Software Update Available

Downloads latest release, rebuilds binary and restarts service (~30s). Page will reconnect automatically.

👥 MEMBER MANAGEMENT

Click Refresh to load members

🚫 BAN LIST

Banned callsigns are dropped from APRS-IS broadcast. Wildcards allowed (e.g. SPAM*)

📢 MESSAGE OF THE DAY

Banner displayed at the top of every page. Also shows unread message count to logged-in members.

✓ Saved

💾 BACKUP & RESTORE

Download all server state (members, bans, MOTD, webhooks, API keys, config) as a single JSON file. Restore by uploading a previously downloaded backup.

📋 AUDIT LOG

RELOADED SUCCESSFULLY

Advanced APRS Go Server · Daren Loxley, 2E0LXY · GitHub ↗  ·  Demo Mode ↗ · 📱 Mobile ↗ · 💬 Support Group ↗ · GPL v3 ↗

QRZ ↗ aprs.fi ↗

Position

Last Heard

Path

PHG Range

Comment / Status

Weather Data

Raw Packet

Position History ( points)

✉ Send APRS Message

Enter your callsign and APRS-IS passcode to send a message to

QRZ ↗ aprs.fi ↗

Last Position

Last Heard

Path

PHG Range

Speed / Course

Packets heard

👤 Operator Profile (QRZ.com)

partial cached
Looking up…
👤
Class:
Grid:
Country:
County:
Born:
QSL:
View on QRZ.com →

Weather Data

📡 LoRa Signal Data

lora-aprs.live ↗

Comment / Status

Latest Raw Packet

📡 Stations heard by this digipeater

—

Stations whose packets passed through this station as a digipeater. Click any callsign to inspect, or use the buttons below to visualise on the map.

📶 Digipeaters this station has used

—

Stations that have relayed this station's packets (acting as digipeaters).

🌐 Nearby stations

Other live stations within 50 mi (80 km) sorted by distance.

Speed Over Time (mph / km/h)

Position History ( points)

All packets heard this session for

Only the most recent packet stored per station. Connect longer to see more.

Decoded path from latest packet:

Path Explanation

🌡 Temperature °C

💧 Humidity %

📊 Pressure hPa

🌬 Wind Speed km/h

🌧 Rain 1h mm

QRZ ↗
👤

Member Login

Access your APRS account

Your APRS-IS passcode will be:

APRS Passcode
Callsigns
Unread Msgs

Watchlist synced to server — active across all devices

Messages sent to your callsign while offline are stored here

No stored messages

All callsigns associated with your account. Messages to any of these are stored when you are offline.

🌙 Quiet Hours

Suppress notification toasts & beeps during this window. Badges still update silently.

Map Filter Preferences

Hide categories of traffic on the map. These preferences sync to the Android app whenever you sign in there with the same account.

🌤 Weather Station (Ecowitt)

Polls your Ecowitt station and beacons APRS WX packets on your chosen schedule. Beaconing is handled server-side — no app needs to stay open.

Optional comment fields


🔍 ESC to close
↑↓ navigate · Enter to open · Ctrl+K to toggle

⏯ Time-Lapse Replay

Watch APRS activity unfold visually. Stations appear in chronological order at the chosen speed. Use this to spot movement patterns, peak times, and net activity.

--:--0 packets shown

Note: Live packets pause during replay and resume after

⚡ New Alert Rule

🛣 Trip Reconstruction

Distance
-
Duration
-
Avg Speed
-
Stops
-

A stop is detected when the station stays within ~50m for 5+ minutes. Stops are shown as yellow circles on the map.