From 751551088084236d3b6ba441d4d9f34df43d2502 Mon Sep 17 00:00:00 2001 From: legop3 Date: Tue, 18 Nov 2025 20:02:47 -0500 Subject: [PATCH] guhbuh --- README.md | 2 +- docs/pi-deployment.md | 4 ++-- new_video_pipeline.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a614d218..5ca1a2ee 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ The script must be executed via `sudo` from the user that owns the repo. It will Publishing rovers lives on a trusted network, so the shipped config (tracked at `server/mediamtx/mediamtx.yml`) skips HTTP auth for SRT ingest and whitelists any path that matches `rover-*`. The installer overwrites `/etc/mediamtx/mediamtx.yml` every time you run it—if you need to tweak ports or add TURN servers, edit the template in the repo and rerun `install_server.sh` so every box stays in sync automatically. -Once finished, update `server/config.yaml` with your admin passwords and `media.whepBaseUrl` (for example `http://192.168.0.86:8889/video`). The client automatically requests `http:////whep`, so include whatever path prefix your reverse proxy exposes (e.g. `/video`). Restart `multirover.service` whenever you edit the config. To pull updates later, just `git pull`, re-run `npm install --production` inside `server/`, and restart the service—no need to rerun the installer. +Once finished, update `server/config.yaml` with your admin passwords and `media.whepBaseUrl` (set it to the URL you expose publicly, e.g. `https://rover.otter.land/video`). If your proxy can’t rewrite paths, create the `/video` location there and add a custom nginx snippet to rewrite `/video//whep` to `/<>/whep` before forwarding to mediaMTX. Restart `multirover.service` whenever you edit the config. To pull updates later, just `git pull`, re-run `npm install --production` inside `server/`, and restart the service—no need to rerun the installer. ### Video handshake + diagnostics diff --git a/docs/pi-deployment.md b/docs/pi-deployment.md index b3ae32e9..f3bd54ed 100644 --- a/docs/pi-deployment.md +++ b/docs/pi-deployment.md @@ -60,7 +60,7 @@ Flags: | `-b PATH` | use a different roverd binary (defaults to `dist/roverd`) | | `-c PATH` | seed `/etc/roverd.yaml` from another template | -If the script installs the sample config, it will remind you to edit `/etc/roverd.yaml` before manually restarting the service: set `name`, `serverUrl`, serial device, BRC pin, battery thresholds, and optionally override `media.publishUrl`. When left blank, roverd automatically publishes to `srt://:9000?streamid=#!::r=,m=publish…` (the host comes from `serverUrl`). +If the script installs the sample config, it will remind you to edit `/etc/roverd.yaml` before manually restarting the service: set `name`, `serverUrl`, serial device, BRC pin, battery thresholds, and optionally override `media.publishUrl`. When left blank, roverd automatically publishes to `srt://:9000?streamid=#!::r=,m=publish…` (the host comes from `serverUrl`). If your reverse proxy adds prefixes (like `/video/`), use its rewrite options so the rover keeps publishing to plain ``. Re-run `pi/install_roverd.sh` any time you pull updates—the script overwrites the roverd + video-publisher binaries and drops the latest systemd units so the only configuration you ever touch manually is `/etc/roverd.yaml`. `roverd` rewrites `/var/lib/roverd/video.env` on startup, so no other files need editing. ## Manual installation @@ -71,7 +71,7 @@ Re-run `pi/install_roverd.sh` any time you pull updates—the script overwrites sudo install -o roverd -g roverd -m 0755 dist/roverd /usr/local/bin/roverd sudo install -o roverd -g roverd -m 0640 pi/roverd/roverd.sample.yaml /etc/roverd.yaml ``` - Adjust `/etc/roverd.yaml` for each rover: `name`, `serverUrl` (e.g. `ws://control-server:8080/rover`), serial port path, battery thresholds, GPIO pin for BRC, and (if needed) the media `publishUrl` override. Otherwise, roverd derives `srt://:9000?streamid=#!::r=,m=publish&latency=20&mode=caller&transtype=live&pkt_size=1316` based on the `serverUrl`. + Adjust `/etc/roverd.yaml` for each rover: `name`, `serverUrl` (e.g. `ws://control-server:8080/rover`), serial port path, battery thresholds, GPIO pin for BRC, and (if needed) the media `publishUrl` override. Otherwise, roverd derives `srt://:9000?streamid=#!::r=,m=publish&latency=20&mode=caller&transtype=live&pkt_size=1316` based on the `serverUrl`; keep proxy-only path prefixes out of this URL so every rover keeps the same simple stream name. 2. Install the systemd unit: ```bash diff --git a/new_video_pipeline.md b/new_video_pipeline.md index 5a2e2be4..9667fb26 100644 --- a/new_video_pipeline.md +++ b/new_video_pipeline.md @@ -18,7 +18,7 @@ webrtcMaxPlayoutDelay: 0 alwaysRemuxWhep: no ``` - - Pis publish to `srt://:9000` with the streamid above; mediaMTX auto-creates the path and fans it out over WHEP/WebRTC. + - Pis publish to `srt://:9000` with the streamid above; mediaMTX auto-creates the path and fans it out over WHEP/WebRTC. If you expose playback under `/video/` externally, let the reverse proxy rewrite that prefix back to `` before forwarding to mediaMTX so the wildcard continues to match every rover. - Only playback is gated: mediaMTX calls the Node server to validate JWTs on `/whep/rover-`, so “locking” a stream is as simple as refusing to mint viewer tokens for that rover. Ingest stays unauthenticated because it lives on a secure LAN. 3. **Web clients**