๐ŸŒ 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.

RARSMS
APRS-IS
Discord
Web Interface
PocketBase

โœจ 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

# Prevent duplicate messages from APRS retransmissions
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

๐ŸŽ‰ Core System Complete

โœ… 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

  1. Deploy with Docker using zero-configuration setup: docker compose up --build
  2. Access the web interface at http://localhost:8090/ for live APRS monitoring
  3. Login as admin using generated credentials to manage callsigns and configuration
  4. Send a message to RARSMS via APRS from your authorized callsign
  5. Watch messages appear instantly in both the web interface and Discord channel
  6. Club members respond using Discord's reply feature to create threaded conversations
  7. Monitor activity through the statistics dashboard with real-time analytics
  8. 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:

*14:34 UTC* ๐Ÿ“ป **KK4PWJ-10**
Testing the new bridge system
Reply: APRS KK4PWJ-10 your message here

๐Ÿ“ป 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.