From 2e33ef1f0e68aeda5f8ba16fd4cd11ece77dd626 Mon Sep 17 00:00:00 2001 From: Simon van Lierde Date: Wed, 14 Oct 2026 00:57:10 +0200 Subject: [PATCH 1/2] docs(readme): add a diagram of how the Pi connects to Relab --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 2aa22f4..8155598 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,26 @@ The plugin runs a lightweight FastAPI server on a Raspberry Pi that: Supported hardware is Raspberry Pi 5/4 with Camera Module 3/v2 on Raspberry Pi OS 64-bit. +## How It Connects + +```mermaid +flowchart LR + app["Relab app
(phone or browser)"] + backend["Relab backend"] + subgraph station["Raspberry Pi"] + plugin["This plugin"] + camera["Camera module"] + end + + plugin == "outbound WebSocket relay
(opened by the Pi)" ==> backend + app -- "capture and preview requests" --> backend + backend -. "forwarded over the relay" .-> plugin + plugin --- camera + plugin -- "captures uploaded" --> backend +``` + +The Pi always opens the connection, so the relay needs no open port on the Pi's network. To pair, the Pi shows a short code on its `/setup` page, and you enter that code in the Relab app. After that, the backend sends capture and preview requests down the relay, and the Pi only runs the routes it allows. [ARCHITECTURE.md](ARCHITECTURE.md) has the details. + ## Supported Modes | Mode | Purpose | From 41440efa13dfc3fcc01f7ed989bba80d479485ae Mon Sep 17 00:00:00 2001 From: Simon van Lierde Date: Wed, 14 Oct 2026 01:00:54 +0200 Subject: [PATCH 2/2] docs(readme): link the full camera diagram in the platform docs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8155598..9bbc1a5 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ flowchart LR plugin -- "captures uploaded" --> backend ``` -The Pi always opens the connection, so the relay needs no open port on the Pi's network. To pair, the Pi shows a short code on its `/setup` page, and you enter that code in the Relab app. After that, the backend sends capture and preview requests down the relay, and the Pi only runs the routes it allows. [ARCHITECTURE.md](ARCHITECTURE.md) has the details. +The Pi always opens the connection, so the relay needs no open port on the Pi's network. To pair, the Pi shows a short code on its `/setup` page, and you enter that code in the Relab app. After that, the backend sends capture and preview requests down the relay, and the Pi only runs the routes it allows. The [platform docs](https://docs.r9lab.io/architecture/rpi-cam/) have the full diagram, with LAN direct mode, preview streaming and the pairing sequence. [ARCHITECTURE.md](ARCHITECTURE.md) covers the plugin's internals. ## Supported Modes