Skip to content

About

Repo for APRS PropView - Propagation at your antenna

Topics

Resources

Stars

48 stars

Watchers

3 watching

Forks

Latest commit

 

History

165 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APRS PropView

Real-time APRS monitoring and VHF propagation insight

Track RF and APRS-IS stations on a live map, explore propagation evidence, and operate a digipeater or IGate from one browser dashboard. Available for Windows, Linux, Raspberry Pi, macOS, and Docker, with desktop, mobile, and club-display views.

Download latest release · User guide · Installation · Changelog

security: bandit GitHub Downloads (all assets, all releases) GitHub Release Date

https://aprs-propview.k5yvy.chatgpt.site/

GitHub Twitter YouTube

  • APRS PropView promo img

    Contents

    Features

    Capability What you can do
    Live station map Separate direct RF, relayed RF, and APRS-IS; inspect directional paths, Maidenhead grids, range rings, and packet-flow animation.
    Propagation intelligence Compare My Station and Regional meters, confidence and event phases; explore longest paths, coverage, heatmaps, and watched-path alerts.
    RF and internet operation Use multiple KISS/AGWPE ports, receive-only TNC2 feeds, WIDEn-N digipeating, and bidirectional IGating.
    Messaging and station tools Send APRS messages and OTA activity spots; configure beacons, bulletins, objects, GPS, and smart beaconing.
    Weather awareness View current conditions, APRS weather mesh, radar, NWS alerts, GOES lightning, and space-weather context.
    Alerts and integrations Notify through Discord, email, or email-to-SMS; publish MQTT metrics, Home Assistant entities, and automation events.
    Flexible displays Choose themes, fonts, units, and offline map tiles; use the phone companion or rotating club display.
    Guided operation Follow setup presets and readiness checks, inspect source health, back up settings, and enable optional operator login.
    image

    Experimental built-in modem: 1200-baud Bell 202 AFSK reception and transmission through a soundcard, with audio diagnostics and serial/VOX PTT options. Further testing is needed on Linux, Raspberry Pi, and macOS; performance varies by platform and audio interface. See the modem guide and platform compatibility notes.

    Reading propagation evidence: APRS-IS traffic and packet animation do not establish reception by your radio. My Station uses direct RF; Regional includes relayed RF. Optional PSK Reporter context stays separate from APRS RF scoring. Sporadic-E results are unconfirmed hypotheses.

    Full feature reference

    Expand a category for the complete feature inventory.

    Map, tracking, and propagation
    • Digipeater — WIDEn-N compliant packet digipeating via KISS TNC (serial or TCP)
    • IGate — Bidirectional RF ↔ APRS-IS gateway with proper q-construct handling and third-party IS→RF forwarding
    • RF Station Tracking — Separate list of stations heard directly on RF
    • APRS-IS Station Tracking — Separate list of stations received from APRS-IS
    • Propagation Map — Interactive Leaflet map with APRS sprite icons, adjustable marker size, directional arrowed path lines, map-created APRS objects, and light/dark theme toggle
    • Maidenhead Grid Overlay — Zoom-aware field, square, and subsquare labels with click-to-select support for the watched-path builder
    • QTH and Watch Scopes — One-click 25/50/100-mile local range rings at the home station or any configured watched-path target, with its target-area radius highlighted separately
    • Custom/Offline Map Tiles — Point the map at a local XYZ tile server or use the map Cache control to store the visible map area in map_tile_cache/ for offline/field use
    • Dual Propagation Meters — Header gauges: "VHF Propagation My Station" (direct-heard RF only) and "Regional VHF Propagation" (all RF including via digipeater), each with configurable scoring thresholds
    • Evidence Confidence & Event Lifecycle — Each propagation meter explains its freshness and sample confidence; sustained one-minute observations progress through developing, confirmed/peak, and fading event phases
    • Unified Source Health — Header panel reports LIVE, DELAYED, STALE, WAITING, OFFLINE, or configured state for RF, APRS-IS, weather, alerts, GOES GLM, radar, and satellite imagery
    • Configurable Path Lines — Directional station-to-station lines support distance or custom coloring, weight, opacity, solid/dashed/dotted patterns, and offset arrows for bidirectional paths
    • Digipeater-Routed Lines — RF stations heard through known digipeaters draw TX-to-digi-to-RX paths instead of misleading direct-heard lines
    • Moving Station Cleanup — If APRS-IS later reports the same moving callsign at a newer different position, the stale RF marker and path line are removed from the map
    • Callsign Labels — Toggle persistent callsign labels above each station icon on the map
    • Map Callsign Search — Expandable/collapsible map search box with Enter-to-jump and Esc-to-collapse keyboard handling
    • Auto-Fit Zoom — Automatically zoom the map to fit all visible stations; zooms back in as stations expire; overridden by manual pan/zoom
    • Station Ghosting — Configurable fade effect (pulsing dashed border) for stations not heard recently
    • Station Expiry — Automatically remove stations from the map after a configurable "last heard" timeout
    • Mobile Companion — Touch-optimized /mobile page with bottom tab bar for phone browsers (via Tailscale or LAN)
    • Tailscale/VPN Mobile Access - Documentation for safely using /mobile away from home through Tailscale or another private VPN without public port forwarding
    • Filters — Filter stations by last-heard time, distance, packet type, callsign, source, and direct/via-digipeater RF path
    • Solar Data Widget — Live HF propagation summary image (solar flux, K-index, band conditions) from hamqsl.com in the Propagation tab
    • Real-time Updates — WebSocket-driven live dashboard
    • Connection Status UX - Unified RF/APRS-IS/WebSocket status pills with connected/retrying/disconnected states and a header notification drawer for TCP RF issues and received APRS messages
    Analytics
    • Longest Path Leaderboard — Daily ranking of the longest RF paths heard
    • Propagation Heatmap — Hour-by-hour visualization of propagation activity over time
    • Station Reliability Scoring — Grade (A–F) for each station based on packet consistency
    • Best Time of Day — Identify peak propagation windows from historical data
    • Sporadic-E Diagnostics — Select 6-hour, 24-hour, or 7-day analysis windows and see RF station counts, strongest stations, qualifying-distance counts, near misses, and path-quality weighting details
    • Weather Analytics Dashboard — Pop-out dashboard for current weather, gauges, history, records, forecast, and map context
    • DXView Link - Propagation tab link opens VHF DXView centered on the configured station latitude/longitude
    Alerts
    • Band Opening Detection — Automatic alerts when propagation thresholds are exceeded
    • Watched VHF Paths — Monitor a target station by callsign, grid, or coordinates and alert when direct-heard RF enhancement reaches the target bearing and distance
    • Optional Map Visualizations — Independently enable propagation aura, path reveals, map color harmony, condition backdrops, expressive home marker rings, watched-path flow, quiet direct-heard activity moments, and Off/Basic/Enhanced live packet animation with station bursts and directional hop-by-hop flow
    • Antenna-Aware Opportunity Scoring — Include local/target antenna height, transmit power, antenna gain, EIRP, and radio-horizon context in watched-path confidence
    • Callsign-Assisted Target Builder — Look up station coordinates through Callook, HamDB, QRZ XML, or HamQTH, with worldwide grid/coordinate overrides
    • Alert Tuning Helper — Analyze recent RF path history and recommend more selective band-opening thresholds from your local baseline
    • Status/DX Reports — Optional compact APRS status beacons with the best direct DX station, bearing, counts, and propagation level
    • Dynamic, MHeard, and Weather Alert Beacons — Rotate preset status messages, beacon direct-heard RF stations, or beacon severe weather alert text with preview-before-transmit controls
    • Scheduled Bulletins and APRS Objects — Periodically transmit configured BLN bulletins and APRS objects over RF, APRS-IS, or both, with preview and one-shot transmit controls
    • Alert Destination Tests — Send preformatted test messages to selected Discord, Email, and SMS destinations from Settings
    • Quiet Hours — Configurable quiet time window (HH:MM 24h) to suppress notifications
    • Message Notifications — Get notified via Discord/Email/SMS when APRS messages are received
    • MQTT Publishing — Publish retained propagation metrics, score/level topics, Home Assistant Discovery sensors and binary sensors, watched callsign entities, status snapshots, typed automation events, and alert events to brokers such as Mosquitto, Home Assistant, Node-RED, or EMQX
    • Discord Webhooks — Push notifications to a Discord channel
    • Email (SMTP) — Email alerts via any SMTP server
    • SMS Gateway — Text alerts via carrier email-to-SMS gateways
    Weather
    • Current Conditions Banner - Live weather banner on the map view (temperature, wind, humidity, pressure, feels-like) powered by Open-Meteo
    • WXnow.txt Transmit - Beacon APRS weather packets from a local WXnow.txt file, with weather SSID, RF/APRS-IS routing, optional position, and stale-file cutoff
    • WXnow Condition Fallback - Use local WXnow measurements while still querying Open-Meteo for general condition text/icon
    • APRS Weather Station Popups - Decode and show human-readable APRS weather station data, including non-timestamped position weather packets
    • Metric/Imperial Weather Display - Switch map weather and APRS WX station displays between °F/mph/in and °C/m/s/mm
    • US Zip Code & ICAO Location - Set your weather location by entering a US zip code or worldwide ICAO airport code
    • Severe Weather Alerts - NWS active alerts displayed as color-coded banners (red for warnings, orange for watches/advisories)
    • Configurable Alert Range - Select how far from your location to monitor severe weather banners/beacons in radius mode (default 40 miles)
    • NWS Alert Awareness - Current conditions, animated radar overlays, and NWS alert banners/polygons for weather situational awareness
    • Weather Radar Overlay - Optional animated radar tiles layered directly on the map with adjustable opacity for fast visual storm tracking
    • GOES GLM Lightning Overlay - Optional live NOAA GOES-19 East or GOES-18 West optical-lightning flashes with automatic satellite selection, a bounded rolling memory window, and configurable nearby-lightning alerts
    • Remote Awareness Alerts - Give each watched location its own weather- and lightning-alert radius, cooldown, and Discord/email/SMS destinations
    • APRS Weather Mesh - Compare nearby APRS weather stations by freshness, measurement completeness, and short-term trends at selectable 50–500 mile ranges
    • NOAA Space Weather Context - Show current Kp and NOAA G/R/S scales beside propagation evidence, with optional threshold alerts and explicit evidence-correlation wording
    • Optional PSK Reporter Context - Corroborate station-specific 50 MHz+ digital paths on a five-minute, provider-friendly cadence without mixing them into APRS RF scores
    • Rotating Club Display - Open a read-only /kiosk view that cycles through live map, propagation, weather, and RF-activity layouts with configurable timing and fullscreen controls
    • NWS Alert Polygons - Optional US map overlay for severe weather polygons, with an independent map-only radius (default 80 miles) and per-category filters for warnings, watches, flood, winter, marine, fire/heat, and other alerts
    • NWS Zone Geometry Fallback - Watches or zone-based alerts without native polygons can draw affected county/zone geometry when available
    • Adaptive Alert Polling - Automatically increases alert checks to a 1-minute cadence when selected trigger events, such as Tornado Watch or Severe Thunderstorm Watch, become active
    • Point or County/Zone Scope - Monitor alerts for your exact station point or switch to a county/forecast-zone UGC target for broader warning coverage
    • Adaptive Refresh Strategy - Weather condition refresh stays user-configurable while alert polling cadence can increase automatically during elevated severe-weather scenarios
    APRS Messaging
    • Send & Receive — Two-way APRS messaging with auto-ACK and retry support
    • Click to Reply — Click any received message to auto-populate the TO callsign for quick reply
    • Message Log — Filterable message history (All / Sent / Received)
    • Message Sort Order — Switch messages between newest-first and oldest-first ordering
    • Sibling SSID Inbox Option — Optionally receive messages addressed to the same base callsign with another SSID, such as W1AW-7 while running W1AW-1
    • Packet Sort and Digipeat Filter — The Packets tab loads recent packet history, sorts newest or oldest first, and can show packets your station digipeated
    • Mobile Message Refresh — Mobile UI includes a manual message refresh button and closer parity with desktop message behavior
    • RF + IS Routing — Select RF, APRS-IS, or combined routing for messages
    Configuration and station operation
    • Web-based Configuration — Edit all settings from the browser (saved to config.toml)
    • Category-Based Settings Workspace — Navigate Station, Radio, APRS, Tracking, Propagation, Alerts, Display, and Integrations without scrolling one long page
    • Settings Search And Deep Links — Search all controls, retain the selected category, and link directly to routes such as #settings/propagation
    • Unsaved Change Guidance — Modified sections pulse yellow, appear in navigation, and clear only after a successful save
    • Precise Save Impact — Save confirmation distinguishes settings applied immediately, browser refresh requirements, and full application restart requirements
    • Section Reset And Validation Routing — Restore one section to its last saved values and automatically open the category containing an invalid field
    • Actionable Setup Checklist — Callsign, location, receive-source, APRS-IS, and save checks link directly to the setting that needs attention
    • Operating Mode Presets — Show the preset matching the current form, identify manually combined settings as a custom configuration, or stage receive-only RF, RF plus APRS-IS, receive-only IGate, digipeater, bidirectional IGate, or mobile settings for review before saving
    • Contextual Setup Guide — Summarize the active station topology and link directly to the RF/TNC, APRS-IS, IGate, digipeater, GPS-source, and beacon settings relevant to it
    • Transmit-Safe Saves — Review newly enabled transmit capabilities before they become operational, export a configuration backup, optionally protect transmit settings, or reload the last saved configuration
    • Basic and Advanced Views — Keep routine station, receiver, map, propagation, watched-path, and alert controls visible while optional transmit and integration features stay one click away
    • Configuration Readiness — Flag missing identity/location/source settings, APRS-IS login/filter issues, and transmit-capable choices before operation
    • Clickable Connection Diagnostics — Select the RF, APRS-IS, or WebSocket header indicator for a plain-language status report and direct settings links
    • Actionable Empty States and Cross-Navigation — Empty station, analytics, alert, weather, and watched-path views point to the relevant setup page
    • APRS Terminology Help — Explain Direct RF, Regional RF, APRS-IS, IGate, digipeating, watched paths, Maidenhead grids, and passcodes inside the application
    • Alert Setup Assistant — A short workflow connects baseline collection, threshold recommendations, notification channels, test alerts, and saving
    • Settings Import/Export — Back up or restore config.toml before experimenting with RF, APRS-IS, host, or port settings
    • Hot-Reload Settings — Most settings apply immediately without restarting the server
    • Preview and Transmit Now — Preview station, WXnow, status, MHeard, dynamic, and weather-alert beacon text before one-shot transmit
    • Last Transmitted History — Settings panel shows recent station, WXnow, status, MHeard, and weather-alert transmissions
    • Beacon Path Selector — Choose digipeater path for beacons (DIRECT, WIDE1-1, WIDE1-1,WIDE2-1, etc.)
    • Minute-based Timers — All timer settings (beacon interval, dedupe, cleanup, cooldown) displayed in minutes for simplicity
    • Pick Location on Map — Click the map to set your station coordinates
    • GPS Ingestion — Use browser/mobile GPS, own APRS position packets, NMEA serial/TCP/UDP streams, or gpsd to move the map marker or update station coordinates
    • Robust NMEA Handling - NMEA serial/TCP/UDP ingestion tolerates chunked GPS streams used by common GPS software and devices
    • Smart Beaconing — Optional GPS-speed-aware station beacon intervals for mobile/portable use
    • Map Object Creation — Drop APRS objects from the map, choose symbol/comment/routing, and save them into the scheduled object list
    • APRS Symbol Picker — Visual icon chooser with both primary and alternate symbol tables
    • Callsign + SSID Selector — Uppercase callsign input with SSID dropdown (0–15) and descriptions
    • APRS-IS Filter Helpers — Generate fixed r/35/-79/80 or r/35.5/-79.8/80 range filters, or moving/mobile m/80 filters, with support for additional javAPRS filter tokens
    • Metric System Option — General unit preference controls distances, weather temperature, wind, and precipitation displays
    • Collapsible Sidebar — Toggle button to collapse/expand the sidebar for a larger map view
    • Persistent Weather Banner — Weather conditions stay visible on the map unless disabled in settings
    • Font Selector — Choose from multiple fonts in Settings for crisp, readable text
    • Opening Browser Selector - Choose the browser APRS PropView opens on startup, or select Do not open automatically / launch_browser = "none" for headless/service deployments
    • About Tab — Application version, build info, diagnostics, update checks, and attribution
    • Help & User Guide — In-app help modal covering every feature, control, and setting
    • Installer-Based Updates - Windows setup installs can detect GitHub setup assets, download the newer installer from the About tab, close APRS PropView cleanly, and launch setup while keeping user settings and data intact
    • Update Checker - Automatically checks the latest GitHub release, supports disabling checks entirely, hides Windows-only installer actions on Linux/macOS, and lets you control the periodic recheck interval for long-running installs
    • Persistent UI State — Map toggles, zoom, position, theme, line time filter, station type filters, callsign labels, auto-fit, and settings complexity are saved to the browser and restored on next launch
    • Mobile Packet Motion — The mobile map can show the same Off, Basic, or Enhanced live packet setting as desktop, with a local Motion toggle and reduced-motion support
    • Linux/Pi Friendly Configuration — Example config and install guide include multi-port RF, AGWPE TCP, private APRS-IS feeds, scheduled packets, and smart beaconing notes
    • Station Cleanup — Automatic pruning of stale stations from memory with real-time UI removal
    • Station Blocklist — Ignore one callsign/SSID or every SSID belonging to a base callsign before packets enter station, message, propagation, or history data
    • Malformed APRS Position Protection — Reject invalid uncompressed coordinates instead of misinterpreting them as compressed positions and plotting them in the wrong region
    • Watched Path Map Toggle — Show or hide watched VHF path lines from the map Line options
    APRS-IS Policy Compliance
    • Lossless APRS packet handling across RF and APRS-IS transports (no UTF-8 re-encoding or trailing-space trimming)
    • Country-neutral callsign handling with APRS-safe character checks and APRS-IS placeholder protection
    • Minimum 10-minute beacon interval enforced per APRS-IS usage policy
    • Read-only mode: unverified connections (passcode -1) cannot transmit or gate
    • Private/local APRS-IS-style servers that omit banners or logresp can still feed received packets; without verification the connection remains read-only
    • RF→IS gating does not deduplicate or suppress traffic except for NOGATE / RFONLY
    • IS→RF gated packets do not request further digipeating (no WIDE path)
    • IS→RF gated packets use APRS third-party format to avoid loops
    • APRS-IS filter token syntax validation
    • APRS-IS range filter guidance for fixed and mobile clients
    • Policy guidance displayed in the settings UI

    Installation

    Choose your platform

    Platform Start here
    Windows Download APRSPropViewSetup-<version>.exe or portable APRSPropView.exe from Releases. Packaged apps do not require Python.
    Linux / Raspberry Pi Follow the Linux/Pi service guide. Python 3.11+ is required; prefer 64-bit Raspberry Pi OS.
    macOS Use the source instructions below; see cross-platform setup for native dependencies and app bundles.
    Docker / app registries Use Docker Compose below or the container guide for TrueNAS SCALE, Portainer, Unraid, CasaOS, and ZimaOS.

    What you need: a modern browser, Python 3.11+ for source installs, and a VHF radio with a supported TNC/audio interface for RF operation. APRS-IS-only operation works without RF hardware. Internet reception supports read-only login; sending requires a verified callsign/passcode connection.

    Windows: install and launch

    1. Download the setup installer or portable executable from the latest release.
    2. Run setup for an installed app and Start Menu shortcuts, or place the portable executable in a writable folder and launch it.
    3. If the browser does not open, visit http://localhost:14501/.

    Run from source

    Clone the repository before following any source or Docker commands:

    git clone https://github.com/RF-YVY/APRS-PropView.git
    cd APRS-PropView

    Windows (PowerShell), with Python 3.11+ installed:

    py -3 -m venv .venv
    .\.venv\Scripts\python.exe -m pip install -r requirements.txt
    .\.venv\Scripts\python.exe main.py

    Linux / Raspberry Pi / macOS:

    python3 -m venv .venv
    .venv/bin/python -m pip install -r requirements.txt
    .venv/bin/python main.py

    For system libraries, audio/serial permissions, and native modem compilation, follow cross-platform setup. The dashboard uses http://localhost:14501/ by default; config.toml is created on first launch.

    Linux / Raspberry Pi service

    Install the prerequisites in the Linux/Pi guide, then run from the repository root:

    sudo bash ./scripts/install_linux.sh
    sudo systemctl status aprs-propview
    journalctl -u aprs-propview -f

    Docker / app registry

    docker compose up -d

    Open http://localhost:14501/. Compose stores persistent data in ./data, mounted at /data inside the container. Registry installs use ghcr.io/rf-yvy/aprs-propview:latest with persistent storage mounted at /data. See the Docker guide for RF access, USB passthrough, environment settings, and deployment examples.

    First-run setup

    1. Identify your station. Enter callsign/SSID, position, and symbol in Settings; use the map to select your location if needed.
    2. Choose receive sources. Under Radio & TNC, configure RF ports, the experimental modem, APRS-IS, or a combination. Operating-mode presets stage settings for review before saving.
    3. Verify connectivity. Inspect the RF/APRS-IS indicators, packet list, and Data source health. A connected browser does not confirm an RF connection.
    4. Review transmit settings. Check beacon routes, paths, intervals, digipeater, IGate, scheduled packets, and modem TX before enabling them. APRS-IS → RF is off by default; receive-only ports cannot transmit.
    5. Save and check operation. Resolve readiness/validation messages and follow any restart guidance. Export a configuration backup.
    6. Personalize your dashboard. Choose themes, units, map layers, weather location, watched paths, and notification destinations. Reopen the illustrated setup guide from About/Help.

    Everyday operation

    Task Where to start
    Inspect reception Click a station marker; compare RF/APRS-IS station lists and packet history.
    Filter stations Stations controls source, direct RF, labels, and station types.
    Center, fit, or create an object View; manual pan/zoom pauses auto-fit.
    Select overlays Layers, including Heard me, radar visibility/animation, and RF line-history controls.
    Style RF and watched paths Appearance → Lines.
    Assess propagation Click either propagation meter, inspect confidence/freshness, then review Analytics or a watched path.
    Diagnose a source Select a connection indicator or inspect Data source health and About/Help.

    Mobile and club display

    • Desktop: http://localhost:14501/
    • Phone: http://HOST-ADDRESS:14501/mobile
    • Club display: http://HOST-ADDRESS:14501/kiosk

    Replace HOST-ADDRESS with the application's LAN or private VPN address. Configure the web bind address for remote access as described in the platform guide. localhost refers to the device running the browser. Scheduled backend operation continues when a browser is closed.

    Send OTA Activity Spot

    Operators can open Send OTA Activity Spot beside Transmit Beacon. Select POTA, SOTA, WWFF or SIOTA, then enter the activity reference, operating frequency in MHz, mode and optional comment. Activity profiles supply the supported modes, recipient and APRS command formatting. The editable operator callsign defaults to the configured station call without its SSID. Each request transmits with that operator as its APRS sender; the station configuration and APRS-IS login remain unchanged. This lets multiple operators at an activation send their own spots.

    Automatic routing prefers a transmit-enabled RF interface, then a verified APRS-IS connection. Expand + more options to override the route, simulate a spot without publishing, inspect the packet, request current POTA/SOTA/WWFF spots with a mode filter and optional result count, or request general/type/activity help (APRS, SMS or Winlink examples). Help requests are sent over APRS, not through an SMS or email gateway. Only fields needed for the selected feature are shown.

    The formatter enforces the 67-character APRS message limit. Test mode adds aptest; APSPOT treats any posting message containing test as a simulation. Responses for recently used operator calls appear in Messages, and the APRS-IS reply filter includes those calls for the running session. A successful transport send does not guarantee publication: destination services may require registration, and RF replies depend on a return path.

    Spotting service and format credit: APSPOT by Josh, VK2MES. Command documentation.

    Configuration reference and offline maps

    Configuration reference

    All settings are in config.toml and can be edited from the web UI Settings tab.

    Section Purpose
    [station] Callsign, SSID (0–15), position, symbol, beacon interval, beacon path
    [digipeater] Enable/disable, WIDEn-N aliases, dedupe window
    [igate] Enable/disable, RF→IS and IS→RF gating
    [aprs_is] Server, port, passcode, filter string
    [kiss_serial] / [kiss_tcp] Legacy single-port settings kept for older config files
    [[rf_ports]] Named multi-port RF setup for serial KISS/TNC2 monitor and TCP KISS ports; preferred for all new setups
    [web] Web interface bind address, port, font, custom map tile source, ghost time, expire time
    [tracking] Station age limits and cleanup intervals
    [messaging] APRS message history retention and sibling-SSID inbox behavior
    [database] SQLite database path
    [propagation] Scoring thresholds for My Station and Regional propagation meters
    [status] Compact APRS status beacon settings: DX summaries, dynamic preset text, direct-RF MHeard summaries, and optional severe weather alert beacons
    [smart_beaconing] Optional GPS-speed-aware station beacon intervals for mobile operation
    [bulletins] Scheduled APRS BLN bulletin packets, route, interval, and message list
    [aprs_objects] Scheduled APRS object packets, route, interval, symbols, positions, and comments
    [alerts] Band opening thresholds, Discord/email/SMS notification settings
    [weather] Weather enabled, location code (zip/ICAO), WXnow/Open-Meteo current-condition options, banner alert range, radar overlay, map-only alert polygon range, alert scope, and adaptive polling
    [wxnow] APRS weather transmit from WXnow.txt, including SSID, beacon interval, stale cutoff, position mode, path, and RF/APRS-IS route
    [gps] Browser, own-packet, serial, TCP, UDP, and gpsd GPS ingestion
    [mqtt] Optional broker settings for propagation, Home Assistant Discovery, watched callsigns, retained status snapshots, automation events, and alert publishing

    Offline maps

    APRS PropView uses standard Leaflet XYZ tiles. For grid-down or field setups, run a local tile server and point the web map at it:

    [web]
    map_tile_source = "custom"
    map_tile_url = "http://127.0.0.1:8080/tile/{z}/{x}/{y}.png"
    map_tile_attribution = "OpenStreetMap contributors"
    map_tile_max_zoom = 14

    The local server can be backed by downloaded OpenStreetMap data or a prepared tile archive. Keep the max zoom realistic for the area you cache; zoom levels above 14 grow quickly. The tile proxy won't fetch a tile above map_tile_max_zoom (19 for the default OpenStreetMap source), though tiles already in the cache are served at any zoom.

    The map's Cache control downloads the currently visible base-map tiles at the current zoom into map_tile_cache/. Cached tiles are served by APRS PropView itself through /api/map-tiles/{z}/{x}/{y}, so already-cached areas remain visible later without internet access.

    Use the control while you still have internet connectivity:

    1. Pan and zoom to the area you expect to operate in.
    2. Click Cache and wait for the button to report Done.
    3. Repeat at any zoom levels you need offline; each zoom level is cached separately.

    If a tile is already cached, PropView reuses it. If a tile is missing while the upstream tile server is unreachable, the map will show a blank/missing tile for that spot until it can be downloaded later. The cache is preserved by Windows installer upgrades and Linux/Pi service updates.

    Offline maps do not provide internet APRS, weather, radar, or other external feeds. NWS alert coverage is US-focused.

    Remote access and operator login

    User login is optional under Settings → Security and off by default when no password has been configured. With login off, the UI stays unlocked and the User login button is hidden. Anyone who can reach the application can change settings and use transmit controls. Enabling login is recommended for unattended or public-facing instances.

    Turn on Enable User login to set a password directly in the browser, including for headless Pi installations. The current browser signs in; other viewers must sign in independently. Sessions last 15 minutes, 1 hour or 8 hours. Existing configured passwords retain protection on upgrade; signed-in users can turn it off in Security. Local tray/Start menu and terminal password recovery remain available.

    See Public hosting and operator access for setup, password recovery, reverse-proxy guidance, and upgrade notes.

    Updates and backups

    • Windows setup: use About to check releases and select Install Update when a setup asset is available. Automatic checks can be disabled or scheduled at a chosen interval.
    • Source: stop the app, run git pull, reinstall requirements.txt with your virtual environment's Python, then restart.
    • Linux/Pi service: run git pull in the source checkout, rerun sudo bash ./scripts/install_linux.sh, then sudo systemctl restart aprs-propview.
    • Docker: follow the container update procedure and retain the /data mount.

    Refresh the browser after restarting the backend. Choose packaged builds matching your OS and CPU architecture. See the changelog for release-specific changes.

    Back up the active data directory: config.toml, propview.db, map_tile_cache/, and user_audio/. Windows installer and Linux/Pi service updates preserve these files. Configuration export covers settings; back up the database, tiles, and audio separately. Settings saves retain config.toml.bak; stop the app before restoring it.

    Tracking settings control raw packet retention (default 7 days) and detailed history retention (default 30 days). Expired RF observations become daily summaries; first-heard identities survive cleanup.

    Documentation and developer builds

    Guide Covers
    User guide Controls, configuration, station operation, and troubleshooting.
    Linux / Raspberry Pi Service installation, permissions, and maintenance.
    Docker Containers, persistent storage, and app registries.
    Cross-platform setup Dependencies, native builds, headless deployments, and macOS packaging.
    Platform compatibility Supported targets, validation status, and limitations.
    Built-in modem Audio, PTT, diagnostics, and experimental operation.
    Public hosting Operator login, password recovery, and reverse proxies.
    Node-RED Automation integration.
    Example configuration Available configuration sections and defaults.
    Build Windows executables and macOS app bundles

    Build a Windows portable executable

    pip install pyinstaller
    python build_exe.py

    This produces dist/APRSPropView.exe — a single portable file. On first run it creates config.toml next to the exe and launches the browser.

    Build a Windows setup installer

    Install Inno Setup 6, then build a versioned setup executable:

    winget install JRSoftware.InnoSetup
    python build_installer.py

    This produces dist/APRSPropViewSetup-<version>.exe. The installer defaults to a per-user install under %LOCALAPPDATA%\Programs\APRS PropView, lets users choose a different install folder, creates Start Menu shortcuts, and installs the current APRSPropView.exe.

    Installer upgrades replace the application executable and bundled files only. User data such as config.toml, propview.db, map_tile_cache/, and user_audio/ is left in place. Publish both APRSPropView.exe and the setup asset on GitHub releases; assets named like APRSPropViewSetup-<version>.exe are detected by the in-app update checker so users can click Install Update in the About tab. On Linux, Raspberry Pi, and macOS, users still see release notices but installer-based update buttons are hidden because those platforms update from source or platform-specific builds.

    Build a macOS app bundle

    Build the local test .app bundle on a macOS machine:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt pyinstaller pillow
    python build_macos.py

    This produces dist/APRS PropView.app. On first launch, the app stores config.toml, propview.db, map_tile_cache/, and user_audio/ in:

    ~/Library/Application Support/APRS PropView/
    

    The local .app build is unsigned unless you set MACOS_CODESIGN_IDENTITY before running build_macos.py. Unsigned builds are suitable for local testing, but public macOS releases should be code-signed and notarized.

    For a public macOS release, build on macOS, then sign, zip, and notarize the bundle with your Apple Developer credentials. Use the macOS builder script on a Mac or macOS CI.

    For Linux executable builds, native modem dependencies, and current platform-specific instructions, use cross-platform setup.

    Maintain the in-app documentation

    Edit docs/USER_GUIDE.md, then run python build_user_guide.py with the optional documentation dependency markdown-it-py installed. The generator updates in-app help, static/documentation.html, and HTML copies of the public-hosting, modem, Linux and Docker companion guides. It does not change release-history documents.

    Support and project information

    Questions, suggestions, or bugs? Open an issue. Thanks to everyone who has contributed reports, testing, and ideas.

    Support development through Give Thanks via PayPal or the Buy Me a Coffee button above.

    Created by Brett Wicker — K5YVY, with assistance from an AI agent. Wicker Made, LLC · k5yvy.radio@gmail.com

    Licensed under Apache License 2.0. See LICENSE, NOTICE, and TRADEMARKS.md.

    About

    Repo for APRS PropView - Propagation at your antenna

    Topics

    Resources

    Stars

    48 stars

    Watchers

    3 watching

    Forks

    Releases

    Packages

    Contributors

    Languages