9M2PJU APRS Thursday Check-in Bot

If you’re active on APRS, you’ve probably come across the #APRSThursday net — a fun global event that happens every Thursday to encourage APRS messaging.
It’s organized by Michael KC8OWL, and the idea is simple: just send a short APRS message to ANSRVR
sometime on Thursday (UTC). The format is:
CQ HOTG <Your message here>
That’s it. But like many of us, I sometimes forget to send mine. So I decided to build a little automation to take care of it.
💡 Why I Built This
I wanted something that would:
- Automatically send my check-in message every Thursday
- Run quietly in the background
- Work on my DietPi (Raspberry Pi) server
- It is easy to manage with Docker
And that’s how the 9M2PJU APRS Thursday Check-in Bot was born.
🐧 What It Does
This bot runs 24/7 and sends the following APRS message every Thursday at 9:00 PM Malaysia Time (MYT):
CQ HOTG Hello from 9M2PJU-4 APRS Bot
It connects to aprs.hamradio.my:14580
using aprslib
and sends the message exactly the way the #APRSThursday net expects.
🧪 You Can Also Test It Anytime
I also added a test mode. Just run:
docker compose run --rm aprs-bot python aprs_bot.py --test
..and it sends the message instantly. Useful for checking if your server or internet connection is working properly.
⚙️ Tech Stuff
- Written in Python
- Dockerized with a super lightweight
python:alpine
image - Runs well on low-resource devices
You just clone the repo, build it with Docker, and let it run. No need to set up cron or anything.
📥 Want to Use It?
Here’s the GitHub repo:
👉 https://github.com/9M2PJU/9M2PJU-APRS-Thursday-Check-in-Bot
Setup is simple. Just:
git clone https://github.com/9M2PJU/9M2PJU-APRS-Thursday-Check-In-Bot.git
cd 9M2PJU-APRS-Thursday-Check-in-Bot-Dockerized
docker compose up -d --build
That’s it. The bot will now check in every Thursday on its own.
💬 Final Thoughts
I built this for myself, but I figured it might help someone else, too. If you want to support the APRS community and keep message-based activity alive, this is an easy way to do it.
Feel free to fork, improve, or just use it as-is. I’ll keep updating it if I come up with new ideas.