V.2.0.7
Reticulum Community Hub 2.0.7
This release focuses on remote operations, authentication for non-local access, Linux service deployment, and stability fixes across the gateway, UI, and LXMF sync path.
Highlights
- Adds a complete remote-access flow for the web UI, including remote target detection, login gating, and per-hub authentication state.
- Adds a protected auth validation endpoint for the UI and tightens route protection for remote backends.
- Improves remote launcher support with source-based installation, automatic
npminstallation when missing, and safer REST/WebSocket URL handling. - Expands operator documentation for LAN/WAN access and Linux
systemddeployment, including persistent API key setup.
Remote Access and Authentication
- Remote UI sessions are now scoped to the currently selected hub target, which prevents stale credentials from being reused against the wrong backend.
- The UI now enforces authentication for non-loopback backends and routes first-time remote users to the Connect page before live polling and WebSocket activity begins.
- Adds
/api/v1/auth/validateto support explicit auth checks from the UI. - Improves connection-state handling so launcher-provided targets take precedence over stale browser-saved settings.
- WebSocket handling is more reliable for remote users: the UI derives the WebSocket base URL from the REST base URL by default unless an explicit override is provided.
Remote Launching and Linux Service Operation
- Adds
run_server_ui_remote.shfor remote-friendly startup of the backend and UI from source. - The remote launcher installs the backend from the local checkout instead of PyPI.
- If
npmis not available, the launcher now attempts to install Node.js/npm using the platform package manager. - Documentation now covers:
- same-LAN Raspberry Pi access
- public-IP / cross-network access
- persistent
RTH_API_KEYconfiguration - Linux
systemdservice setup for the gateway - exact copy-paste commands for a service installation
Fixes
- Fixes a remote WebSocket configuration issue where stale saved browser values could block live updates.
- Fixes the System Dossier / app info name so the UI shows the configured hub display name instead of the package name.
- Fixes LXMF peer sync handling for integer error responses that previously caused failures such as
'int' is not iterable. - Applies the LXMF sync-offer fix to the active runtime path by patching the installed LXMF package behavior at startup.
- Hardens file and image deletion so legacy or mixed-platform attachment paths no longer produce avoidable delete failures.
- Adds outbound delivery acknowledgement handling and logs recipient delivery confirmations in the event feed.
- Prevents gateway startup when the API host/port is already bound, avoiding duplicate hub instances and ratchet contention.
- Improves telemetry memory usage by reducing retained payload state and querying latest-per-peer snapshots more efficiently.
Packaging and Release Assets
This release is published as version 2.0.7 across the Python backend, web UI, and Electron packaging metadata.
Included release artifacts:
rch_2.0.7_linux_arm64_deb.debrch_2.0.7_linux_x64_appimage.AppImagerch_2.0.7_macos_universal.dmgrch_2.0.7_windows_x64_installer.exerch_2.0.7_windows_x64_portable.exe
Upgrade Notes
- For remote deployments, set
RTH_API_KEY(or legacyRCH_API_KEY) before starting the gateway. - For Linux
systemddeployments, remember that the backend gateway and the UI are separate services. - If you use the sample UI service definition, replace placeholder values such as
YOUR_SERVER_IPwith the real server address before starting the UI. - After upgrading the UI, clear stale browser settings or use a private window if the client still points at old API or WebSocket targets.
Pull Requests Included
- #167 Add remote-login auth flow and route protection in UI
- #168 Enforce authentication requirements for remote UI targets
- #169 Add protected
/api/v1/auth/validateendpoint and OpenAPI docs
Full Changelog: V.2.0.0.2...V.2.0.7