A portable, field-deployable emergency communications cluster built on Raspberry Pi 5 nodes, featuring PXE booting, modular overlays, mesh networking, RF monitoring, and GPS-based time synchronization.
This project is in active early development. Some architectural decisions are still evolving, but all current functionality, tooling, and documentation are represented here without omission.
Development Stage: Early / Iterative
Focus: Emergency communications, rapid deployment, portability
Philosophy: Document everything that exists, even if it may change
No design decisions have been artificially “locked in” yet. This README represents the current reality, not a finalized specification.
-
Overview
-
Core Features
-
Hardware Overview
-
Software Stack
-
Node Types
-
Quick Start
-
Installation & Deployment
-
Documentation Center
-
Operations & Maintenance
-
Directory Structure
-
Planned Versions
-
Contributing
-
License
-
Acknowledgments
This repository contains all configurations, scripts, and documentation required to build, deploy, and operate a portable Raspberry Pi 5 cluster server intended for emergency communications and isolated-network scenarios.
The cluster is designed to function as a cohesive, multi-role system, supporting:
-
PXE-booted diskless nodes
-
Modular, node-specific overlays
-
RF monitoring and digital communications
-
Mesh networking via Reticulum and LoRa
-
GPS-based time synchronization
-
Automated deployment, monitoring, and recovery
The system is suitable for field operations, experimentation, and learning, with an emphasis on reliability over elegance.
-
Centralized boot server
-
DHCP, DNS, TFTP, and NFS services
-
Diskless or semi-diskless node operation
-
Consistent OS images across nodes
-
Node-type and node-specific customizations
-
Simplified updates and rollback
-
Separation of base OS and role-specific tooling
-
Ham radio digital modes (FLdigi, Winlink, JS8Call)
-
APRS and packet radio support
-
VHF/UHF transceiver integration
-
SDR Trunk
-
CubicSDR
-
Dump1090 / Dump978
-
PyAware (ADS-B)
-
Reticulum-based peer-to-peer mesh
-
LoRa integration
-
Mosquitto MQTT broker
-
FreeTAKServer integration
-
GPS-based reference time
-
NTP / Chrony services
-
Improved correlation across RF and log data
-
UFW firewall
-
Fail2Ban
-
SSH key-only access
-
Security monitoring scripts
-
Automated SSH key rotation
-
4x Raspberry Pi 5 (4 GB or 8 GB)
-
PoE HATs
-
Managed PoE switch (VLAN/QoS capable)
-
Battery power supply with AC passthrough
-
USB SDRs
-
GPS receiver
-
LoRa HATs or dongles
-
SSD storage where applicable
See docs/HARDWARE.md
for wiring, power design, and component specifications.
The Portable Pi 5 Cluster Server is designed as a modular, field-deployable emergency communications cluster. It combines PXE booting, mesh networking, RF monitoring, and GPS-based time synchronization in a unified, portable system.
┌─────────────────────────────────────────────────────────────┐
│ Portable Pi 5 Cluster │
├─────────────────────────────────────────────────────────────┤
│ ┌───────────────────────┐ ┌─────────────┐ ┌─────────────┐
│ │ Boot Node (Primary) │──▶│ ISR Node │ │ Mesh Node │
│ │ DHCP/TFTP/DNS/NFS/GPS │ │ (RF Monitor)│ │ (LoRa Mesh) │
│ └───────────────────────┘ └─────────────┘ └─────────────┘
│ │
│ ▼
│ VHF Node (Radio Interface)
└─────────────────────────────────────────────────────────────┘
Network: 10.0.0.0/8 primary, 192.168.0.0/16 secondary
- Services: DHCP (67/68)
- TFTP (69), DNS (53)
- NFS (2049), SSH (22)
- NTP (123)
| Node | Primary Functions | Notes |
|---|---|---|
| Boot Node | PXE booting, DHCP, DNS, NFS, Time sync (chrony + GPS), Cluster monitoring | Centralized management, overlay deployment |
| ISR Node | RF spectrum monitoring, ADS-B decoding, SDR data collection | Passive monitoring and logging |
| Mesh Node | LoRa-based Reticulum mesh networking | |
| VHF Node | Digital VHF/UHF transceiver interface | Supports ham radio protocols and emergency comms |
-
Boot Node provides OS images and configuration overlays to all other nodes via PXE/NFS.
-
ISR Node collects spectrum data and communicates relevant alerts over the mesh.
-
Mesh Node forms a peer-to-peer decentralized network, relaying messages between ISR, VHF, and other field nodes.
-
VHF Node interfaces with analog/digital radios, bridging the cluster to external comms networks.
-
All nodes synchronize time via GPS/NTP, ensuring coordinated logging and event tracking.
-
Monitoring & Dashboard The Boot Node hosts a Flask-based dashboard for real-time cluster monitoring, node health, and system alerts.
Base System
-
Raspberry Pi OS
-
OverlayFS
-
PXE boot via dnsmasq
-
NFS root filesystem
RF & Communications
-
FLdigi
-
Winlink
-
JS8Call
-
Direwolf
-
CQRLog
Mesh & Networking
-
Reticulum
-
Mosquitto MQTT
-
FreeTAKServer
Monitoring & Visualization
-
SDR Trunk
-
CubicSDR
-
Dump1090 / Dump978
-
PyAware
-
OLED status display
-
Flask-based dashboard (planned)
-
System Services
-
Chrony (GPS/NTP)
-
UFW
-
Fail2Ban
-
Rsync
-
SSH
-
GNU Parallel
The Tactical Operations Web Interface provides real-time monitoring, control, and tool integration for the Portable Pi 5 Cluster.
-
Cluster Overview: Node statuses, deployment state, and purpose-driven roles
-
Health Metrics: CPU, memory, disk, temperature, uptime, auto-refresh
-
Control Operations: Deploy boot node, update all nodes, reboot/shutdown individually or cluster-wide
-
Performance Analysis: Node and cluster-wide resource metrics
-
Backup & Recovery: Create, restore, verify backups
-
Tool Integration: Manage node-specific tools (ADSB, Mesh, SDR) with status indicators
-
Demo Mode: Local testing with simulated data, no cluster required
-
Production Mode: Connects via SSH to real nodes, full operational control
cd web && ./run.sh
Access locally: http://127.0.0.1:5000
Connect to cluster: set DEMO_MODE=False and HOST=0.0.0.0
The dashboard exposes REST API endpoints for:
-
Cluster & node status
-
Health checks and validation
-
Node operations (reboot, shutdown, update)
-
Backup management
-
Tool-specific control (starting/stopping integrated apps)
| Node Type | IP Address | Primary Role |
|---|---|---|
| Boot Node | 192.168.1.10 | PXE, DHCP, DNS, NFS, Time |
| ISR Node | 192.168.1.20 | Passive RF monitoring |
| Mesh Node | 192.168.1.30 | LoRa mesh networking |
| VHF Node | 192.168.1.40 | Digital VHF/UHF communications |
Node roles are logical, not rigid. Responsibilities may shift as development progresses.
Want to deploy in ~30 minutes?
cd ~/Portable-Pi-5-Cluster-Server && sudo ./scripts/deployment-coordinator.sh
This interactive deployment covers:
Pre-flight system checks
-
Configuration validation
-
Boot node setup (DHCP, DNS, TFTP, NFS, NTP)
-
Worker node provisioning
-
Performance tuning
-
Security hardening
-
Initial backup creation
Four Deployment Phases
-
System Setup
-
OS updates
-
Hostname
-
Initial security hardening
-
-
Install Services
- All required packages
-
Configure Services
-
Deploy configuration files
-
Enable services
-
-
Verify Setup
- 70+ automated tests
See docs/SETUP.md
and docs/QUICK-START.md
The project includes a fully structured documentation system.
-
docs/QUICK-START.md– Rapid deployment -
docs/SETUP.md– Full installation guide -
docs/TROUBLESHOOTING.md– Problem resolution -
docs/INDEX.md– Complete documentation map
-
INFRASTRUCTURE.md– System architecture -
SECURITY-BASELINE.md– Security standards -
GIT-WORKFLOW.md– Version control practices -
FOLDER-STRUCTURE.md– Repository organization
-
operations/OPERATIONS.md– Daily / weekly / monthly tasks -
deployments/– Pre/Post deployment checklists -
scripts/SCRIPTS-REFERENCE.md– Script documentation
make status
make diagnose
sudo systemctl status dnsmasq nfs-server chrony ufw
sudo journalctl -f
./operations/backups/backup-restore-manager.sh create
./operations/backups/backup-restore-manager.sh restore
Portable-Pi-5-Cluster-Server/
├── docs/
├── scripts/
├── deployments/
├── operations/
├── config/
├── INFRASTRUCTURE.md
├── SECURITY-BASELINE.md
├── README.md
└── ...
-PXE boot operational
-
NFS, SSH, VNC
-
Basic overlays
-
Full overlay implementation
-
SDR, LoRa, Reticulum
-
GPS time sync
-
Mesh networking finalized
-
MQTT broker
-
HTTP dashboard
-
LogWatch reporting
-
Power optimization
-
Thermal monitoring
-
Finalized casing
-
Fully documented
-
Tested
-
Replicable deployment
Contributions are welcome, especially those aligned with:
-
Emergency communications
-
Reliability
-
Documentation clarity
See CONTRIBUTING.md.
MIT License. See LICENSE.