๐ Universal Communication Bridge with Live Web Interface
RARSMS is a modern universal communication bridge that seamlessly connects amateur radio (APRS) with Discord and features a comprehensive web interface. Built with intelligent protocol adaptation and real-time monitoring, it provides live APRS packet viewing, role-based administration, configuration management, and comprehensive testing infrastructure for reliable 24/7 amateur radio operations.
โจ Key Features
๐ Universal Message Interchange
Send one message to multiple protocols automatically with smart adaptation that fits each protocol's capabilities and character limits while preserving critical information.
๐ RARSMS Prefix Filtering
Only routes APRS messages intended for the system - messages addressed to RARSMS or starting with "RARSMS" from authorized callsigns.
๐ง Intelligent Protocol Adaptation
Messages automatically adapt to each protocol's limitations - APRS (67 chars) gets concise text, Discord gets rich embeds with maps and formatting.
๐ Protocol Abstraction Layer
Extensible architecture with BaseProtocol interface makes adding new communication platforms simple without disrupting existing functionality.
๐ Geographic Integration
Position packets from APRS automatically generate interactive map links in Discord with technical details and timestamps.
๐ณ Containerized Deployment
Runs reliably in Docker with graceful error handling - continues operating even with partial protocol configuration.
๐ซ Message Deduplication
Intelligent duplicate filtering prevents the same APRS message from appearing multiple times due to network retransmissions. Configurable timeout window.
๐ QRZ.com Integration
Callsigns in Discord are clickable links to QRZ.com profiles, making it easy to look up operator information with suppressed link previews for clean display.
๐ Live Web Interface
Real-time APRS packet viewer with WebSocket updates, message search, statistics dashboard, and role-based administration panel for complete system management.
๐ฅ Role-based Authentication
Secure admin authentication with user roles, callsign management, system configuration, and comprehensive testing infrastructure accessible via web interface.
๐ Real-time Analytics
Live statistics tracking message counts, protocol distribution, today's activity, and system health with beautiful visual dashboards and charts.
๐งช Comprehensive Testing
Complete frontend and backend test suites with 16+ unit tests, automated infrastructure validation, and quality assurance for production reliability.
๐ Technical Architecture
RARSMS is built with modern, reliable technologies designed for 24/7 amateur radio operations:
๐ Python + AsyncIO
High-performance async runtime
๐ก APRS-IS Telnet
Direct connection to amateur radio network
๐ค Discord Bot
Bidirectional real-time messaging
๐ Protocol Abstraction
Universal message interchange
๐ณ Docker
Containerized deployment
๐ YAML Configuration
Flexible routing rules
๐พ PocketBase Database
Real-time database with WebSockets
๐ Modern Web Interface
Responsive admin dashboard
๐งช Testing Infrastructure
Frontend & backend test suites
๐ง Configuration Highlights
Message Deduplication
deduplication_timeout: 300 # seconds (5 minutes default)
# Recommended: 120-600 seconds depending on network conditions
Configurable via config.yaml or DEDUPLICATION_TIMEOUT environment variable
๐ Current Status
โ Implemented Features
- โ APRS-IS telnet connection with proper SSID handling
- โ Bidirectional Discord bot communication with QRZ.com integration
- โ Universal message interchange format
- โ RARSMS prefix filtering
- โ Intelligent message deduplication (configurable timeout)
- โ Protocol abstraction layer
- โ Intelligent message adaptation
- โ Callsign authorization whitelist
- โ Clean Discord message formatting with clickable callsigns
- โ Docker containerization with zero-configuration deployment
- โ Graceful error handling and automatic reconnection
- โ APRS message format compliance
- โ Live Web Interface with real-time APRS packet viewing
- โ PocketBase Database with WebSocket real-time updates
- โ Role-based Authentication with admin/user roles
- โ Configuration Management via web forms (APRS, Discord, filtering)
- โ Statistics Dashboard with protocol analytics and message counts
- โ Message Search with full-text filtering capabilities
- โ Callsign Management with CRUD operations via web interface
- โ Comprehensive Testing - 16+ frontend unit tests + backend test suite
- โ Automated Setup with random admin password generation
๐ Active Development
- ๐ Enhanced position packet handling with map integration
- ๐ Message threading and conversation tracking
- ๐ Advanced analytics and reporting features
๐ Future Roadmap
- โณ TARPN Network protocol integration
- โณ Winlink gateway support
- โณ Mobile-responsive progressive web app
- โณ Multi-protocol message routing
- โณ Advanced filtering and automation rules
- โณ Integration with other amateur radio software
๐ How It Works
- Deploy with Docker using zero-configuration setup:
docker compose up --build - Access the web interface at
http://localhost:8090/for live APRS monitoring - Login as admin using generated credentials to manage callsigns and configuration
- Send a message to RARSMS via APRS from your authorized callsign
- Watch messages appear instantly in both the web interface and Discord channel
- Club members respond using Discord's reply feature to create threaded conversations
- Monitor activity through the statistics dashboard with real-time analytics
- Search message history and manage system configuration via the web interface
๐ฌ Discord Message Format
Messages appear in Discord with a clean, readable format designed for maximum clarity:
๐ป Visual Indicator
Radio emoji draws attention to new APRS activity in the channel.
๐ Clickable Callsigns
Callsigns link directly to QRZ.com profiles for instant operator lookup.
๐งน Clean Content
Technical metadata and debug information automatically filtered out.
โฐ Timestamp First
Logical flow: when โ who โ what โ how to reply for easy scanning.