Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

OffGridComm is a decentralized, low-bandwidth communications platform built for ham radio frequencies. Inspired by classic BBS systems and modern mesh networks, it is designed for asynchronous, legally compliant communication in offline and grid-down environments.

License

Notifications You must be signed in to change notification settings

GeorgeCottrell/OffGridComm

Repository files navigation

# OffGridComm
**OffGridComm** is a decentralized, low-bandwidth communications platform built for ham radio frequencies. Inspired by classic BBS systems and modern mesh networks, it is designed for asynchronous, legally compliant communication in offline and grid-down environments.
---
## 🎯 Purpose
OffGridComm enables licensed amateur radio operators to:
* Send and receive direct or group messages
* Participate in Usenet-style interest-based discussion boards
* Relay messages node-to-node using amateur radio frequencies (no internet required)
* Operate with a clean, ANSI-art capable text-based interface (TUI)
* Ensure message authenticity through callsign-based identity
* Support mouse and keyboard navigation via modern terminal emulators (e.g. PuTTY, SyncTERM)
---
## πŸ” Legal Compliance
OffGridComm is designed in full alignment with **FCC Part 97** regulations:
* No encryption is used
* All messages are tied to valid amateur radio callsigns
* All content is non-commercial
* Supports only licensed operators as authenticated users
---
## 🚧 MVP (Minimum Viable Product)
### βœ… Phase 1 Goals:
* [ ] TUI interface with ANSI display and mouse/keyboard navigation
* [ ] Callsign-based login and identity system
* [ ] Message composition, viewing, and local storage
* [ ] Group message board system (like Usenet)
* [ ] RF packet exchange between nodes (via AX.25 or other modes)
* [ ] Local deduplication and message propagation system
* [ ] Static offline callsign database verification
### πŸ”œ Phase 2 Goals:
* [ ] Internet-connected nodes can fetch up-to-date callsign databases
* [ ] Online nodes compress and sign these updates
* [ ] Offline nodes receive updates via RF from trusted peers
* [ ] Support international callsign data via modular country-specific importers
* [ ] RF-safe distribution of additional resources (weather, bulletins, software updates)
---
## 🧱 Architecture Overview
OffGridComm provides **two user interfaces** built on the same backend system:
* **ANSI Terminal Interface (TUI)**: For classic BBS-style navigation via terminal clients (PuTTY, SyncTERM)
* **Built-in Web Server**: Offers a retro-themed browser-based interface inspired by AOL and CompuServe
Both interfaces share the same core logic and data store, ensuring:
* Seamless access to messages and boards regardless of client
* Consistent authentication and identity tracking
* Unified user experience whether connecting via RF terminal or local browser
Each **OffGridComm Node** includes:
* TUI frontend with ANSI support (`ratatui`)
* Message system (direct, group)
* Identity/auth engine (callsign + password)
* RF interface layer (Direwolf, soundmodem, etc.)
* Node sync protocol (custom, store-and-forward)
* Optional internet module to fetch and rebroadcast trusted data updates
The built-in web server also supports **initial configuration mode**, allowing operators to:
* Set their callsign, location, and license details
* Detect and configure connected RF hardware
* Review logs and monitor synchronization status
* Manage local storage and network preferences
This configuration mode is accessible from a local browser (e.g., via `http://192.168.0.1:8080`) and optionally supports **embedded PHP pages** served by the built-in file handler for users familiar with that environment.
> Future versions will support automated scheduling, message compression, and regional relays.
---
## πŸ› οΈ Built With
* Rust 🦠 (core logic + TUI)
* `ratatui`, `crossterm`, and `tui-input` (terminal UI)
* `serde`, `serde_json`, `ron`, and `toml` (serialization and config)
* `sqlx` and `rusqlite` (SQLite database support)
* `tokio`, `axum`, `tower`, `hyper`, and `tokio-tungstenite` (async runtime and web stack)
* `argon2`, `blake3`, `uuid`, and `rand` (crypto and identity)
* `flate2`, `lz4_flex`, and `zstd` (compression)
* `reqwest` and `dotenvy` (HTTP and environment handling)
* `serialport` and `ax25` (RF transport, serial interface)
* `tracing`, `anyhow`, and `thiserror` (logging and error handling)
---
## πŸ“‘ Supported Transmission Modes
OffGridComm is designed to be transport-agnostic. Supported RF communication modes include:
* **AX.25 (1200/9600 baud)** β€” Reliable and open
* **VARA FM** (optional) β€” Fast, soundcard-based modem up to 25 kbps
* **JS8Call / FreeDV / FT8** (planned) β€” Ultra-low-bandwidth for extreme conditions
* **Microwave Mesh (HamWAN / AREDN)** β€” High-speed regional links
> Note: VARA FM is proprietary software and requires a license for full-speed operation.
### πŸ” Multi-Mode Interoperability
Nodes can operate multiple transmission modes in parallel, depending on available hardware and configuration:
* A single node can send and receive via **AX.25**, **VARA FM**, and other modes simultaneously
* Messages can be routed intelligently based on bandwidth, reliability, or intended recipients
* Broadcasts may be sent redundantly over multiple modes to maximize reach
This architecture allows interoperability between modern and legacy packet systems while enabling performance scaling across a diverse RF environment.
### πŸ”Š What About Voice Communication?
While OffGridComm is designed primarily for asynchronous text-based messaging, higher-quality **two-way audio communication** is under consideration for supported modes:
* **VARA FM (full license)** and **FreeDV** offer potential for intelligible low-rate voice
* Quality will depend on mode, SNR, and hardware setup
Planned voice support:
* Push-to-talk style audio exchange
* Optional voice mail-style asynchronous clips
* ID tagging and callsign framing for FCC compliance
These will be opt-in features for compatible nodes with voice-capable configurations.
---
## πŸ”„ Callsign Verification Strategy
OffGridComm uses a hybrid approach:
* A static snapshot of a public callsign database (FCC or other)
* Optional self-attestation or license submission during setup
* Optional download of updated databases by internet-connected nodes
* Propagation of updates over RF using signed and timestamped update packages
This ensures:
* Fully offline verification capability
* Legal operator compliance
* Prevents impersonation or rogue node behavior
International support is provided via modular importers for country-specific licensing databases.
---
## πŸ” Password Handling and FCC Compliance
OffGridComm does not transmit or share passwords over RF. All passwords are:
* Used only for **local login authentication**
* Stored securely on-device using modern password hashing (e.g., Argon2)
* Never transmitted, encrypted or otherwise, in compliance with FCC Part 97
Operator identity over the network is established via:
* Publicly visible callsigns
* Optional node-origin signatures (plaintext verifiable)
This design ensures both user accountability and regulatory compliance without compromising privacy or system integrity.
---
## ⚠️ Legal Notice
You must be a **licensed amateur radio operator** to use OffGridComm over RF bands. Unauthorized or encrypted use over amateur frequencies is **prohibited** and may violate local or national laws.
---
## πŸ“œ License
This project is licensed under the [MIT License](LICENSE), unless otherwise stated.
---
## 🀝 Contributions
Pull requests, feature proposals, and bug reports are welcome β€” especially from licensed hams, emergency radio operators, and radio hackers.
---
## πŸ“± Stay Tuned
OffGridComm is in active development. Future versions will support:
* Automated propagation scheduling
* RF beaconing and mesh discovery
* Custom protocol modes for extreme QRP conditions
* Print/PDF field deployment guides
Join the wave of resilient, decentralized communication.

About

OffGridComm is a decentralized, low-bandwidth communications platform built for ham radio frequencies. Inspired by classic BBS systems and modern mesh networks, it is designed for asynchronous, legally compliant communication in offline and grid-down environments.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /