About this project

VLX FrameFlow is a modular Go suite designed to transform Debian-based Single Board Computers (SBCs) and VPS instances into professional-grade live broadcasting hardware. It functions as the Edge Acquisition & Transport tier within the broader VLX Stream Flow ecosystem, which also includes VisionBridge for composition and ChatBridge for control. Key capabilities include: 1. **High-Availability Bonding Router**: Aggregates multiple internet connections using dual-protocol bonding. UDP traffic (such as SRT video streams) is aggregated via MLVPN, while TCP traffic (telemetry, API, general internet) uses MPTCP combined with Shadowsocks as a transparent proxy. This ensures resilient uplinks even if one connection fails. 2. **Multi-Camera Streaming Encoder**: Utilizes V4L2 and FFmpeg to capture video and audio from connected cameras, encoding them into SRT streams. These streams are pushed over the bonded tunnel to a relay server (MediaMTX), enabling zero-drop fallback and high-quality transmission. 3. **Real-Time GPS Telemetry**: Integrates with gpsd to auto-detect USB/serial GPS hardware. It reads location data and POSTs JSON telemetry to remote endpoints, allowing for real-time tracking and integration with other ecosystem components like ChatBridge. 4. **Server Relay & Control**: The server component runs on a VPS, acting as a relay node and firewall manager. It forwards commands from companion apps (like ChatBridge) back to the SBC client securely through the MLVPN tunnel. It also manages the local MediaMTX service for ingest and egress. 5. **Remote Management UI**: Provides a lightweight, embedded Svelte single-page application (SPA) accessible via a web browser. The frontend polls the backend API to display system status, systemd states, and colorized console output, allowing operators to manage the field unit remotely. Architecture & Deployment: - The suite separates roles into Client (SBC) and Server (VPS). The Client runs as an unprivileged user via user-space systemd, enforcing security by refusing root execution for CLI modules. The Server requires root privileges to manage routing and firewall rules. - Configuration is handled via shell-sourced environment files and YAML peer definitions, supporting deterministic slot models for multi-client setups. - The project is licensed under GNU General Public License v3.0.