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
RunDirpoints to where persistent state files and caches are stored — ensure this directory exists and is writable by the aprsc user.LogRotatehelps 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
fullfeedports (10152) provide a full stream of APRS data (filtered for duplicates). - The
igateports (14580) are for clients like digipeaters, iGates, or APRS software that connect with filters they define. udpsubmiton port 8080 allows lightweight position uploads over UDP.
Uplink
- Your server connects upstream to the main APRS backbone via
rotate.aprs.neton port 10152 with a full feed. - The
fullkeyword means your server both receives and forwards data upstream.
HTTP Server
HTTPStatusprovides a web interface with connection stats and server status on port 14501.HTTPUploadallows users to upload position data via HTTP POST on port 8080.ShowEmail=1optionally 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/logor 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