APRSBox is a lightweight APRS operations application for Raspberry Pi and Linux systems with a native deployment model. The repository contains two FastAPI applications:
app.main: the web GUIapp.core_main: the APRS runtime process responsible for traffic monitoring, outbound queue processing, and periodic schedulers
The project is no longer "GUI only". It already includes a working SQLite-backed configuration model, authenticated GUI, APRS runtime services, Packet Routing flows, APRS-IS uplink runtime, and native installation scripts for OpenRC and systemd hosts.
If you want to install APRSBox container just use this command:
docker run -d \
--name aprsbox \
--restart unless-stopped \
-p 8000:8000 \
-v aprsbox_data:/opt/aprsbox/data \
-v aprsbox_logs:/opt/aprsbox/logs \
sq9mddpl/aprsbox:1.8.25.devOpen the web interface: http://127.0.0.1:8000
Docker installation detected. In-app system actions are disabled. Update APRSBox by pulling a newer Docker image and recreating the container with the same volumes. Restart or stop APRSBox using Docker commands.
Example update flow:
docker pull sq9mddpl/aprsbox:<new-tag>
docker stop aprsbox
docker rm aprsbox
docker run -d \
--name aprsbox \
--restart unless-stopped \
-p 8000:8000 \
-v aprsbox_data:/opt/aprsbox/data \
-v aprsbox_logs:/opt/aprsbox/logs \
sq9mddpl/aprsbox:<new-tag>If you want to install APRSBox on a target Linux machine, the fastest path is a single installer command.
- run one command
- the script installs packages, creates the Python environment, initializes the database, installs services, and starts the app
Installer-supported targets
- Alpine Linux
- Debian, Raspberry Pi OS / Raspbian, and Debian-like systems exposing
ID_LIKE=debian
Alpine Linux (run as root):
curl -fsSL https://raw.githubusercontent.com/SQ9MDD/APRSBox/main/scripts/install.sh | \
env APRSBOX_GIT_URL=https://github.com/SQ9MDD/APRSBox.git APRSBOX_GIT_BRANCH=main shRaspberry Pi OS / Debian / Debian-like (use sudo):
curl -fsSL https://raw.githubusercontent.com/SQ9MDD/APRSBox/main/scripts/install.sh | \
sudo env APRSBOX_GIT_URL=https://github.com/SQ9MDD/APRSBox.git APRSBOX_GIT_BRANCH=main shAfter installation
- web GUI:
http://<host>:8000/login - default login:
admin - default password:
aprs
Current APRS runtime behavior:
- RX:
- connects to enabled TCP or serial KISS TNC interfaces
- reads KISS frames
- decodes AX.25 UI frames to TNC2 when possible
- stores frames in SQLite
- updates heard-station views, band condition processing, and APRS message ingestion
- TX:
- queues outbound jobs in SQLite
- processes jobs from the core worker
- supports
beacon,status,object, APRS messages (direct,query,ack), bulletins / announcements, WX, and DIGI TX jobs - builds TNC2 lines and wraps them into KISS frames
- sends them via active monitor connection (with direct transport fallback)
- Packet Routing (DIGI Flows):
- source is currently
receiver_rf - supports filters (
dupe,path,strict,direct_only,digi,callsign,packet_type,icon,distance) - supports targets
tx_rf,tx_aprsis,action_log,action_drop
- source is currently
- APRS-IS uplink:
- managed automatically from enabled Packet Routing flows with
tx_aprsistarget - includes strict guard for blocked path tokens and malformed third-party frames
- provides runtime diagnostics and counters in GUI
- managed automatically from enabled Packet Routing flows with
- Scheduling:
- station beacon scheduler
- station APRS Status scheduler
- object scheduler with jitter spacing between object transmissions
- bulletin / announcement scheduler with jitter spacing between message transmissions
- WX scheduler
Important current limitation:
- Runtime transport supports
TCPmodem definitions withhost:portandSERIALLmodem definitions withdevice_pathplusbaud_rate. - Packet Routing source runtime is currently limited to
receiver_rf.
APRSBox to lekka aplikacja APRS dla Raspberry Pi i systemów Linux z natywnym modelem instalacji. Repozytorium zawiera dwie aplikacje FastAPI:
app.main: web GUIapp.core_main: proces runtime odpowiedzialny za monitoring ruchu, kolejkę outbound i schedulery okresowe
Projekt nie jest już wyłącznie szkieletem GUI. W repo są działające elementy runtime APRS: RX/TX KISS, kolejka outbound w SQLite, Packet Routing (DIGI Flows), uplink APRS-IS, wiadomości APRS oraz schedulery beacon/status/object/bulletin/WX.
Najprostszy przekaz dla mniej zaawansowanego użytkownika jest taki:
- uruchamiasz jedno polecenie
- skrypt robi resztę sam
To znaczy:
- instaluje wymagane pakiety systemowe
- tworzy virtualenv Pythona
- kopiuje aplikację do
/opt/aprsbox/app - inicjalizuje bazę SQLite
- zakłada konto admin
- instaluje serwisy
aprsbox-webiaprsbox-core - uruchamia aplikację i sprawdza health check
Alpine Linux:
curl -fsSL https://raw.githubusercontent.com/SQ9MDD/APRSBox/main/scripts/install.sh | \
env APRSBOX_GIT_URL=https://github.com/SQ9MDD/APRSBox.git APRSBOX_GIT_BRANCH=main shRaspberry Pi OS / Debian:
curl -fsSL https://raw.githubusercontent.com/SQ9MDD/APRSBox/main/scripts/install.sh | \
sudo env APRSBOX_GIT_URL=https://github.com/SQ9MDD/APRSBox.git APRSBOX_GIT_BRANCH=main shPo instalacji:
- panel WWW:
http://<host>:8000/login - domyślny login:
admin - domyślne hasło:
aprs