APRStac runs as a single binary with no dependencies. Download the correct version for your platform from the downloads page.
On first run, APRStac creates a default configuration file (aprstac.toml) and a SQLite database (aprstac.db) in the working directory. Your browser will open automatically to the web interface at http://localhost:14501.
Navigate to Settings → Station to configure your callsign, SSID, symbol, and position. If you have a GPS module connected, you can enable auto-position updates under Settings → GPS.
APRTAC to identify itself in the APRS network.By default, APRStac only listens on 127.0.0.1 (your local machine). To access it from other devices on your LAN, such as your phone or another computer, go to Settings → General and enable Enable Local Network Access. This binds the server to 0.0.0.0, making it available on all network interfaces.
After enabling, restart APRStac. Then access the web interface from any device on your network using your computer's IP address, for example http://192.168.1.100:14501.
Ports are your connections to the APRS network, and the source for all input/output data for the application. All ports are configured from Settings → Ports.
Connect a local TNC via serial port. Select the serial device (e.g., /dev/ttyUSB0 on Linux, COM3 on Windows), set the baud rate (typically 9600 or 1200), and enable the port.
Connect to a local or remote KISS TNC over the network. Enter the host and port. This can be a software TNC such as Direwolf, SoundModem, or even VARA's KISS mode.
Connect to the APRS Internet System. Enter a regional server (e.g., rotate.aprs2.net), port 14580, your callsign, and APRS-IS passcode — you can obtain your APRS-IS passcode here. Optionally, enable IGating afterwards to get RF → APRS-IS and APRS-IS → RF packet forwarding.
Share packets on your local network via UDP broadcast on port 14581. Useful for linking multiple APRStac instances on a LAN. This will allow devices on a flat network to communicate without configuring special IP/ports to do so, if your network allows broadcast traffic.
Bridge a Meshtastic LoRa device over your network. Enter the device's IP address and port (default 4403). See Meshtastic Integration for details.
Real APRS frames sent by other APRStac stations over Meshtastic devices are fully supported. Those packets can be IGated to APRS-IS and digipeated to other ports, just like packets heard on a traditional TNC. You can optionally check a box to import native Meshtastic nodes onto your map, but you will be unable to message them directly with the APRStac application.
Bridge a Meshtastic LoRa device connected via USB. Select the serial port (auto-detected at 115200 baud). See Meshtastic Integration for details.
Real APRS frames sent by other APRStac stations over Meshtastic devices are fully supported. Those packets can be IGated to APRS-IS and digipeated to other ports, just like packets heard on a traditional TNC. You can optionally check a box to import native Meshtastic nodes onto your map, but you will be unable to message them directly with the APRStac application.
Connect to a VARA FM software modem for connected-mode packet sessions over VHF/UHF. Enter the host and command/data ports of your running VARA FM instance. Note: VARA FM ports can only be used for BBS and Fileshare at this time.
Host a private, encrypted APRS reflector. The server listens for TCP connections from Reflector Clients and distributes all received packets to every connected client. All traffic is encrypted with AES-256 using a shared password. Configure a bind address, port, and password.
Connect to a remote Reflector Server to securely share APRS traffic over the internet. Enter the server hostname, port, and the same password configured on the server. All traffic is AES-256 encrypted end-to-end. Packets received from the reflector are parsed and displayed like any other APRS source, and your local packets are forwarded to the server for distribution to other connected stations.
A pre-configured reflector client that connects to the public APRStac reflector using encrypted communication. No setup required, just enable the port. You can use it to send position reports, messages, and connect to BBS or Fileshare hosts of other stations on the public reflector. Stations using the public reflector can be seen at aprstac.com/map.html.
Bridge to a TAK Server using mTLS authentication. Upload your TAK data package's client .p12 file (and optionally a truststore .p12), enter the password, and APRStac will exchange Cursor on Target (CoT) events with the server — translating positions and messages to/from APRS in both directions.
The email gateway forwards APRS messages to your email inbox and lets you reply from email back to APRS stations.
Note: Gmail, Hotmail, and Yahoo are not supported due to their restrictions on third-party IMAP/SMTP access. You can use your own dedicated mail server, or by becoming a patreon, you get your own aprstac email account and instructions for use.
Navigate to Settings → Email and configure:
EMAIL-9)Any APRS station can send an email through your gateway by addressing a message to your listen callsign. The message body should be formatted as:
recipient@example.com Your message text here
The first word (the email address) is used as the destination. Everything after it becomes the email body. For example, sending this APRS message to EMAIL-9:
john@gmail.com Hello from the field!
will deliver an email to john@gmail.com with the body "Hello from the field!" and the sender's callsign in the subject line.
To send an APRS message from your email, compose a new email (or reply to a forwarded one) to your gateway's email address. Set the subject line to the destination callsign (e.g., KN4MKB-7), and write your message in the email body. APRStac polls your IMAP inbox and transmits the body as an APRS message addressed to the callsign in the subject. The reply is sent from your listen callsign.
Keep your message under 67 characters, which is the maximum length for an APRS message. Anything beyond that will be truncated.
APRStac can use Meshtastic LoRa devices to transport APRS and AX.25 packets, supporting APRS packet transport over the mesh.
Add a Meshtastic port under Settings → Ports:
4403)115200 baud)Enable Import Nodes to pull position data from all nodes in the mesh handshake and ongoing position broadcasts.
APRStac distinguishes between two kinds of data on the mesh:
[Mesh] badge but tagged as local-only. These are never forwarded to other configured ports or APRS-IS.BBS and Fileshare connected-mode sessions work over Meshtastic ports. Timer values are automatically relaxed to account for mesh latency. Expect slow connections when using connected-mode packet over the Meshtastic network.
APRStac can post APRS packets to a Discord channel as formatted embeds using a webhook. This is useful for monitoring station activity from Discord.
Each packet is posted as a color-coded Discord embed with the station callsign, decoded data, and raw packet. Packets with position data include a clickable link to aprs.fi.
APRStac includes a built-in tile cache and MBTiles reader for offline map operation, ideal for field deployments or Raspberry Pi setups without reliable internet.
By default, APRStac fetches map tiles from OpenStreetMap and caches them in a separate SQLite database (tiles.db). Cached tiles are served instantly on subsequent views. The cache uses LRU eviction with a configurable maximum size (default 10 GB).
Supported tile layers: street (OpenStreetMap), topo (OpenTopoMap), satellite (ArcGIS), and dark (CartoDB).
For fully offline operation, place pre-downloaded .mbtiles files in the mbtiles/ directory (created automatically next to the database). Then select the file under Settings → Map.
You can download free raster MBTiles files from these sources:
Three modes are available:
View cache statistics and clear the cache from Settings → Map. The API also exposes tile cache endpoints for programmatic access.
APRStac includes a full BBS (Bulletin Board System) that supports public postings and private user-to-user messages over LoRa Meshtastic, Native APRS via KISS TNC, VARA FM, and TCP/IP modes like the reflector client and UDP broadcast. You can host your own BBS for other stations to connect to, and connect to other BBS stations using either a modern web interface or a traditional terminal.
Navigate to BBS → Host to configure your BBS:
MSG:KN4MKB,W4XYZ).All commands are case-insensitive. Short forms are shown in parentheses. If a command is entered without its required argument (e.g., just P instead of P subject), the BBS will prompt for the missing information interactively.
(L)IST [N] — list the N most recent posting subjects (default 10)(R)EAD # — read a posting by its number(P)OST <subject> — compose a new public posting (enter content, then send RRR on a new line to finish)(S)END <callsign> — send a private message to a callsign (prompts for subject, then content, RRR to finish)(M)SG [N] / MESSAGES [N] — list your private messages (default 10)(O)PEN # — open and read a private message by ID (marks it as read)(U)NREAD [N] — list only your unread messages(D)EL # / DELETE # — delete a private message by ID(E)XIT — disconnect from the BBSYou can also create and manage postings from the BBS → Postings tab and messages from the BBS → Messages tab in the web interface without needing an RF connection.
Navigate to BBS → Connect, select a port, enter the remote BBS callsign, and click Connect. If the remote station is running APRStac, you will automatically see the modern web interface. Otherwise, you will see the traditional terminal interface.
When connecting to another APRStac BBS, the client automatically detects the remote system and switches to a modern web interface with action buttons for viewing posts, composing new posts and messages, and managing your inbox. All commands are sent as standard BBS text over RF under the hood. A Terminal toggle lets you switch to the raw terminal view at any time.
APRStac includes a file hosting and transfer system that operates over AX.25 connected mode, allowing stations to share files over LoRa Meshtastic, Native APRS via KISS TNC, VARA FM, and TCP/IP modes like the reflector client and UDP broadcast.
Navigate to Fileshare → Host to configure your fileshare:
Navigate to Fileshare → Files to manage your hosted files. Drag and drop a file onto the upload area, or click to browse. Each file can be up to 10 MB. Click the delete button next to any file to remove it.
When a file is uploaded, APRStac automatically compresses it using the best of three algorithms (zstd, gzip, and brotli). Whichever produces the smallest result is stored. If none of them beat the original size, the file is kept uncompressed. This is fully automatic and requires no configuration.
Navigate to Fileshare → Connect, select a port, enter the remote station's fileshare callsign, and connect. The remote station's file list will load automatically. Click any file to begin the download. A progress indicator will show the transfer status.
Files are transferred as base64-encoded chunks over AX.25 I-frames with MD5 checksum verification on completion. Compressed files are automatically decompressed on arrival, so the downloaded file is always the original uncompressed version. Completed downloads can be found in the Files tab of the Fileshare page.
APRStac stations can broadcast a situational readiness status alongside their normal position beacon. Each station reports a state for eight fixed categories, giving nearby operators a quick at-a-glance picture of local resources and needs.
Each report covers eight categories: Food, Water, Shelter, Power, Medical, Comms, Fuel, and Personnel. Every category is set to one of four states:
Navigate to Settings → Station and find the Status Beacon section. Set each category to the appropriate state, enable the beacon, and choose a transmit interval. Your status is sent as a standard APRS status report on every beacon-enabled port.
When a status report is received from another station, it populates two places in the UI:
Only the most recent status per callsign is kept. Stations that have never sent a status report do not appear on the Status Report page and show no status chips in their info box.
APRStac supports HTTPS using TLS certificates. To enable encrypted web communication, add the paths to your certificate and private key in aprstac.toml:
tls_cert = "/etc/letsencrypt/live/yourdomain.com/fullchain.pem"
tls_key = "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
When both fields are set, the server serves HTTPS instead of HTTP. When omitted, the server runs over HTTP as usual. Any valid PEM certificate and key will work, including Let's Encrypt.
Start the server with --reflector to run in reflector-only mode:
./aprstac-server --reflector
This starts a Reflector Server on 0.0.0.0:14502 and a view-only station map on 0.0.0.0:14501. The map displays stations that send packets to the reflector server, with no ability to modify settings, send messages, or access other features. The encryption password is hardcoded to aprstac.com. This is how the public reflector map is displayed at aprstac.com/map.html.
When digipeater mode is enabled, APRStac will repeat received packets back out of the ports that are enabled to do so. Beyond repeating on the same port a packet arrived from, APRStac will also repeat that packet out of other configured digi-enabled ports if the packet meets the repeat criteria. This is what enables cross-medium traffic — a packet heard on any port can be digipeated out over others, such as Meshtastic, KISS, Reflector link, a UDP broadcast segment, and vice-versa.
A packet must meet all of the following to be repeated across ports:
TCPIP or TCPXX (prevents re-digipeating internet-sourced packets).WIDEn-N, TRACEn-n, or RELAY alias with hops remaining and the has-been-repeated bit not yet set.