This project implements an APRS (Automatic Packet Reporting System) server using APRSC, designed to communicate with an iGate and provide real-time visualization of a tracked module on a map interface.
The system is built on Ubuntu Server 24.04 LTS and integrates APRSC with web-based management tools to create a functional APRS infrastructure. It allows receiving, processing, and displaying APRS packets from trackers via an iGate.
- OS: Ubuntu Server 24.04 LTS
- Processor: Any modern CPU or single-board computer.
- Memory: 256 MB to 512 MB
- Storage: 5 GB
- Internet access
- User with sudo priviliges
- Available ports:
- 14580 (APRS-IS)
- 14501 (status)
- 80 (web)
- 10000 (interface)
sudo apt update && sudo apt upgrade -yFirst, it's necessary to configure package repository for apt. Create a file a using:
deb http://aprsc-dist.he.fi/aprsc/apt noble mainAdd the gpg key used to sign the packages:
gpg --keyserver keyserver.ubuntu.com --recv D43AD4708A2DA1139F250B3294E40E5320D8AE3C
sudo gpg --export D43AD4708A2DA1139F250B3294E40E5320D8AE3C > /etc/apt/trusted.gpg.d/aprsc.key.gpgNext, download the package indexes and install aprsc:
sudo apt-get update
sudo apt-get install aprscsudo apt install -y git docker.io docker-compose nginx php php-fpmEnable docker:
sudo systemctl enable docker
sudo systemctl start dockerVerify the installation:
docker --versiongit clone https://github.com/qvarforth/trackdirectsudo apt install wget
wget http://www.webmin.com/download/deb/webmin-current.deb
sudo dpkg -i webmin-current.deb
sudo apt --fix-broken install -yStart Webmin and check its status:
sudo systemctl start webmin
sudo systemctl status webminYou can access your Webmin interface by opening a web browser and navigating to your server's IP address and port. The default port will be 10000, which can be later changed:
https://<server-ip>:10000
Open the tools tab inside the Webmin dashboard and click the File Manager tab. Look for the copied repository and open the config folder.
<Your_copied_path>/trackdirect/config
Edit the configuration file and define the main parameters:
Main Parameters:
ServerId:my_callsingPassCode:my_passcodeMyAdmin:"my_user, my_callsing"
Listening Ports:
- TCP/UDP 10152 → backbone (full feed)
- TCP/UDP 14580 → clients/igate
- UDP 8080 → packet sending
APRS-IS Uplink Configuration:
Uplink "Core rotate" full tcp rotate.aprs.net 10152
Logs and Resources:
- Run directory:
RunDir data - Log rotation:
LogRotate 10 5 - File/connection limits:
FileLimit 10000 - HTTP Status and Upload enabled on ports 14501 and 8080
Example configuration snippet:
ServerId TI3SRV
PassCode 18094
MyAdmin "Server, TI3SRV"
# Listening ports
Listen fullfeed tcp 10152 fullfeed
Listen fullfeed udp 10152 fullfeed
Listen igate tcp 14580
Listen igate udp 14580
Listen dupesent udp 8080
# Uplink
Uplink "Core rotate" full tcp rotate.aprs.net 10152
# Resources
RunDir data
LogRotate 10 5
FileLimit 10000Important
You can use this link to generate a passcode based on your callsign:
https://www.iz3mez.it/aprs-passcode/
sudo docker compose up -dVerify the APRSC container appears as Up:
docker psOpen a browser and go to:
http://<SERVER_IP>
View docker logs:
docker compose logs -fRestart services:
docker compose restartCheck used ports:
sudo lsof -i -P -nFix container startup issues:
docker compose down
docker compose up --build -dReal-time visualization of APRS stations on a web map, with storage and historical data access.

- Real-time APRS packet processing
- Integration with RF-based iGate
- Centralized APRS-IS server
- Web-based system management
- Scalable architecture
.
├── config/
├── scripts/
├── docs/
└── README.md
- Use firewall (ufw)
- Strong Webmin credentials
- Limit connections
aprsc: APRS-IS server that manages packet traffic- Connection to the global APRS network via uplink
TrackDirect: real-time map visualization- WebSocket for dynamic updates
- PostgreSQL for historical data storage
- Tracker sends APRS packets
- iGate retransmits to APRS-IS
aprscreceives and processes- TrackDirect collects data
- Data is stored in PostgreSQL
- Data is displayed on the map
- Carlos Gutierrez
- Jorge Schofield
Canonical Ltd., ``Ubuntu Server Documentation (LTS),'' 2024. [online]. Available: https://ubuntu.com/server/docs. [Accessed: 2026].
Canonical Ltd., ``Ubuntu Server Guide,'' 2024. [online]. Available: https://help.ubuntu.com. [Accessed: 2026].
Webmin Developers, ``Webmin Documentation,'' 2024. [online]. Available: https://www.webmin.com. [Accessed: 2026].
aprsc Developers, ``aprsc: APRS-IS Server Software,'' 2024. [online]. Available: https://github.com/hessu/aprsc. [Accessed: 2026].
B. Bruninga, ``APRS Protocol Reference Specification,'' 2000. [online]. Available: http://www.aprs.org/doc/APRS101.PDF. [Accessed: 2026].
TrackDirect Project, ``TrackDirect: APRS Tracking Platform,'' 2024. [online]. Available: https://github.com/qvarforth/trackdirect. [Accessed: 2026].
IETF, ``RFC 6455: The WebSocket Protocol,'' 2011. [online]. Available: https://datatracker.ietf.org/doc/html/rfc6455. [Accessed: 2026].
Educational and experimental APRS deployment project.