9M2PJU
amateur radio
APRS
automatic packet reporting system
freebsd
amateuradio, APRS, aprsc, APRSIS, aprsnetwork, digipeater, dualstack, freebsd, hamradio, igate, networkinfrastructure, opensource, packetradio, radiooperator, rfcommunications, serverconfiguration, systemadmin, TCP, udp
9M2PJU
0 Comments
How to Run aprsc APRS-IS Server on FreeBSD
Running an APRS-IS server with aprsc
on FreeBSD is a powerful way to contribute to the APRS network or run your own regional server. Below I’ll walk you through a solid example configuration based on a working aprsc.conf
file with explanations for each section.
Understanding the aprsc.conf File
Here’s a typical aprsc.conf
you might use — based on your shared config:
# Unique server ID for this APRS server
ServerId 9M2PJU
# Passcode for this server ID, assigned via the APRS passcode generator
PassCode 12345
# Administrator contact info
MyAdmin "Piju, 9M2PJU"
MyEmail 9m2pju@hamradio.my
### Directories
# Directory to store persistent data, such as state and logs
RunDir /usr/local/piju/aprsc/data
# Log rotation: max file size (MB) and number of files
LogRotate 100 50
### Intervals and timeouts
# How long to wait for upstream server data before switching
UpstreamTimeout 5s
# How long to wait before disconnecting a client due to inactivity
ClientTimeout 48h
### TCP/UDP listeners
# Listen on both IPv4 and IPv6 for various port types
Listen "Full feed" fullfeed tcp :: 10152
Listen "" fullfeed udp :: 10152
Listen "Full feed" fullfeed tcp 0.0.0.0 10152
Listen "" fullfeed udp 0.0.0.0 10152
Listen "Client-Defined Filters" igate tcp :: 14580
Listen "" igate udp :: 14580
Listen "Client-Defined Filters" igate tcp 0.0.0.0 14580
Listen "" igate udp 0.0.0.0 14580
Listen "UDP submit" udpsubmit udp :: 8080
### Uplink configuration
# Connect as a full feed to the APRS core network
Uplink "Core rotate" full tcp rotate.aprs.net 10152
### HTTP server for status and uploads
HTTPStatus 0.0.0.0 14501
HTTPUpload 0.0.0.0 8080
HTTPStatusOptions ShowEmail=1
Key Configuration Notes
ServerId & PassCode
- ServerId is your unique server identifier visible on APRS networks. Use your callsign or a distinct tag.
- PassCode must match your ServerId and be generated from a trusted APRS passcode generator (e.g., https://pass.hamradio.my).
Directories and Logs
RunDir
points to where persistent state files and caches are stored — ensure this directory exists and is writable by the aprsc user.LogRotate
helps keep logs manageable, rotating files after hitting size limits.
Listeners
- You must listen on TCP and UDP ports on both IPv4 (
0.0.0.0
) and IPv6 (::
). - The
fullfeed
ports (10152) provide a full stream of APRS data (filtered for duplicates). - The
igate
ports (14580) are for clients like digipeaters, iGates, or APRS software that connect with filters they define. udpsubmit
on port 8080 allows lightweight position uploads over UDP.
Uplink
- Your server connects upstream to the main APRS backbone via
rotate.aprs.net
on port 10152 with a full feed. - The
full
keyword means your server both receives and forwards data upstream.
HTTP Server
HTTPStatus
provides a web interface with connection stats and server status on port 14501.HTTPUpload
allows users to upload position data via HTTP POST on port 8080.ShowEmail=1
optionally shows the admin email on the status page.
Preparing FreeBSD for aprsc
- Create directories:
mkdir -p /usr/local/piju/aprsc/data
chown -R aprscuser:wheel /usr/local/piju/aprsc
Replace aprscuser
with the user running aprsc.
- Firewall rules:
Allow inbound TCP and UDP on ports 10152, 14580, 8080, and 14501. - Run aprsc:
/usr/local/sbin/aprsc -f /path/to/aprsc.conf
- Check logs for errors in
/var/log
or wherever configured.
Final Tips
- Always generate your PassCode for your ServerId; don’t guess it.
- For production, run aprsc as a dedicated user with limited permissions.
- Monitor uptime and client connections via the HTTPStatus web page.
- Consider automatic service management with an rc.d script for FreeBSD.
Summary
This config example is verified for current aprsc
versions and is fully compatible with FreeBSD’s networking model. You have IPv4/IPv6 dual-stack listeners, client and uplink connections, and HTTP monitoring — all essentials for a robust APRS-IS server.
Post Comment