chore(casaos): generalize compose/docs for upstream (standard ports, repo icon URL)
- use the project's standard host ports 3000/3001/5005 (no local conflict-avoidance remapping) - point icon/thumbnail/screenshot at ruvnet/RuView so they resolve once merged - drop deployment-specific notes (host IP, absolute paths) from comments/docs Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8cbade3ce3
commit
3e31eed659
|
|
@ -1,22 +1,21 @@
|
|||
# RuView — WiFi DensePose sensing server, CasaOS-ready compose.
|
||||
#
|
||||
# Uses the prebuilt image (amd64) from Docker Hub, so the CasaOS host does NOT
|
||||
# need to compile the Rust workspace. (This server is amd64. For arm64 hosts the
|
||||
# published tag has no arm64 layer yet — build locally with the dev compose:
|
||||
# `docker compose -f docker/docker-compose.yml build`.) The server hosts the
|
||||
# REST API + web UI on one port, a WebSocket stream, and a UDP listener for
|
||||
# ESP32-S3 CSI nodes.
|
||||
#
|
||||
# Host ports were chosen to avoid clashes on this server (3000/3001 are already
|
||||
# in use): the UI is published on 3030, the WebSocket on 3031, ESP32 CSI on 5005/udp.
|
||||
# Uses the prebuilt image from Docker Hub, so the host does NOT need to compile
|
||||
# the Rust workspace. (The published `:latest` tag is amd64; on arm64 hosts build
|
||||
# locally first: `docker compose -f docker/docker-compose.yml build`.) The server
|
||||
# hosts the REST API + web UI on one port, a WebSocket stream, and a UDP listener
|
||||
# for ESP32-S3 CSI nodes.
|
||||
#
|
||||
# Import into CasaOS: App Store → Custom Install → paste this file, OR
|
||||
# cd /DATA/AppData/ruview && docker compose -f docker-compose.casaos.yml up -d
|
||||
# docker compose -f docker-compose.casaos.yml up -d
|
||||
#
|
||||
# Open the dashboard at: http://192.168.1.177:3030/ui/index.html
|
||||
# (the bare http://<host>:3030/ root is just an API index — the visual
|
||||
# Open the dashboard at: http://<host-ip>:3000/ui/index.html
|
||||
# (the bare http://<host-ip>:3000/ root is just an API index — the visual
|
||||
# dashboards live under /ui/: index.html, observatory.html, pose-fusion.html)
|
||||
#
|
||||
# If host ports 3000/3001 are already taken on your machine, change the
|
||||
# `published:` values below (and `port_map` / `webui_port` to match the new UI port).
|
||||
#
|
||||
# Data source (CSI_SOURCE):
|
||||
# auto probe UDP 5005 for an ESP32, else fall back to simulation (default)
|
||||
# esp32 require real CSI frames from an ESP32-S3 node on UDP 5005
|
||||
|
|
@ -30,15 +29,15 @@ services:
|
|||
container_name: ruview
|
||||
hostname: ruview
|
||||
labels:
|
||||
icon: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
|
||||
icon: https://cdn.jsdelivr.net/gh/ruvnet/RuView@main/assets/ruview-icon.png
|
||||
ports:
|
||||
- mode: ingress
|
||||
target: 3000
|
||||
published: "3030"
|
||||
published: "3000"
|
||||
protocol: tcp
|
||||
- mode: ingress
|
||||
target: 3001
|
||||
published: "3031"
|
||||
published: "3001"
|
||||
protocol: tcp
|
||||
- mode: ingress
|
||||
target: 5005
|
||||
|
|
@ -72,15 +71,14 @@ x-casaos:
|
|||
developer: ruvnet
|
||||
category: HomeAutomation
|
||||
hostname: ""
|
||||
icon: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
|
||||
icon: https://cdn.jsdelivr.net/gh/ruvnet/RuView@main/assets/ruview-icon.png
|
||||
index: /ui/index.html
|
||||
is_uncontrolled: false
|
||||
port_map: "3030"
|
||||
webui_port: 3030
|
||||
port_map: "3000"
|
||||
webui_port: 3000
|
||||
scheme: http
|
||||
tagline:
|
||||
en_us: See through walls with WiFi — contactless presence, breathing & pose sensing
|
||||
custom: Vedere attraverso i muri con il WiFi — presenza, respiro e posa senza contatto
|
||||
description:
|
||||
en_us: |
|
||||
RuView (WiFi DensePose) turns ordinary WiFi into a contactless spatial
|
||||
|
|
@ -90,21 +88,11 @@ x-casaos:
|
|||
wearables. This image runs the Rust sensing server with its web dashboard.
|
||||
With CSI_SOURCE=simulated it works with synthetic data and no hardware;
|
||||
point one or more ESP32-S3 CSI nodes at UDP 5005 for live sensing.
|
||||
custom: |
|
||||
RuView (WiFi DensePose) trasforma il normale WiFi in un sensore spaziale
|
||||
senza contatto. Usando le Channel State Information (CSI) di nodi ESP32-S3
|
||||
a basso costo rileva le persone attraverso i muri, stima respiro e battito
|
||||
cardiaco, traccia movimento e cadute ed esegue la stima della posa a 17
|
||||
punti — niente telecamere, niente dispositivi indossabili. Questa immagine
|
||||
avvia il server Rust con la dashboard web. Con CSI_SOURCE=simulated funziona
|
||||
con dati sintetici senza hardware; per il sensing dal vivo invia le CSI di
|
||||
uno o più nodi ESP32-S3 sulla porta UDP 5005.
|
||||
title:
|
||||
en_us: RuView
|
||||
custom: RuView
|
||||
thumbnail: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
|
||||
thumbnail: https://cdn.jsdelivr.net/gh/ruvnet/RuView@main/assets/ruview-icon.png
|
||||
screenshot_link:
|
||||
- https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
|
||||
- https://cdn.jsdelivr.net/gh/ruvnet/RuView@main/assets/ruview-icon.png
|
||||
envs:
|
||||
- container: CSI_SOURCE
|
||||
description:
|
||||
|
|
@ -121,13 +109,13 @@ x-casaos:
|
|||
ports:
|
||||
- container: "3000"
|
||||
description:
|
||||
en_us: "Web UI + REST API (HTTP). Published on host port 3030."
|
||||
en_us: "Web UI + REST API (HTTP)."
|
||||
- container: "3001"
|
||||
description:
|
||||
en_us: "WebSocket sensing stream. Published on host port 3031."
|
||||
en_us: "WebSocket sensing stream."
|
||||
- container: "5005"
|
||||
description:
|
||||
en_us: "ESP32-S3 CSI ingest (UDP). Published on host port 5005."
|
||||
en_us: "ESP32-S3 CSI ingest (UDP)."
|
||||
volumes:
|
||||
- container: /app/models
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@ CSI_SOURCE=simulated docker compose -f docker-compose.casaos.yml up -d
|
|||
Then open the dashboard:
|
||||
|
||||
```
|
||||
http://<host-ip>:3030/ui/index.html
|
||||
http://<host-ip>:3000/ui/index.html
|
||||
```
|
||||
|
||||
> The bare root `http://<host-ip>:3030/` is only an **API index** (a plain list
|
||||
> The bare root `http://<host-ip>:3000/` is only an **API index** (a plain list
|
||||
> of endpoints) — the visual dashboards live under `/ui/`:
|
||||
> `index.html` (main), `observatory.html` (live feed), `pose-fusion.html`
|
||||
> (webcam + CSI), `viz.html` (3D).
|
||||
|
|
@ -45,18 +45,19 @@ docker compose -f docker-compose.casaos.yml down
|
|||
|
||||
## 2. Ports
|
||||
|
||||
The compose file (`docker-compose.casaos.yml`) publishes **non-default host
|
||||
ports** because 3000/3001 are commonly already in use:
|
||||
The compose file (`docker-compose.casaos.yml`) publishes these host ports:
|
||||
|
||||
| Service | Container | Host (this compose) | Notes |
|
||||
|------------------------|-----------|---------------------|-------|
|
||||
| REST API + web UI | 3000/tcp | **3030** | Dashboard lives here (`/`, `/ui/...`) |
|
||||
| WebSocket sensing feed | 3001/tcp | **3031** | `ws://host:3031/ws/sensing` |
|
||||
| ESP32 CSI ingest | 5005/udp | **5005** | ESP32-S3 nodes stream CSI frames here |
|
||||
| Service | Container | Host | Notes |
|
||||
|------------------------|-----------|------|-------|
|
||||
| REST API + web UI | 3000/tcp | **3000** | Dashboard lives here (`/`, `/ui/...`) |
|
||||
| WebSocket sensing feed | 3001/tcp | **3001** | `ws://host:3001/ws/sensing` |
|
||||
| ESP32 CSI ingest | 5005/udp | **5005** | ESP32-S3 nodes stream CSI frames here |
|
||||
|
||||
If a host port clashes on your machine, edit the `published:` values in
|
||||
`docker-compose.casaos.yml`. The dashboard's WebSocket URL is derived from the
|
||||
page host, so keep the API and WS ports reachable from the same hostname.
|
||||
`docker-compose.casaos.yml` (and update `port_map` / `webui_port` in the
|
||||
`x-casaos` block to match the new UI port). The dashboard's WebSocket URL is
|
||||
derived from the page host, so keep the API and WS ports reachable from the same
|
||||
hostname.
|
||||
|
||||
Verified endpoints (all return `200` once running):
|
||||
|
||||
|
|
@ -111,22 +112,20 @@ description, port map), so CasaOS shows it as a proper app tile.
|
|||
customized app").
|
||||
2. Switch to the **Import** / YAML view and paste the contents of
|
||||
`docker-compose.casaos.yml`.
|
||||
3. Install. The tile opens `http://<host-ip>:3030/ui/index.html`.
|
||||
3. Install. The tile opens `http://<host-ip>:3000/ui/index.html`.
|
||||
|
||||
**Option B — CLI (CasaOS still detects the container)**
|
||||
|
||||
```bash
|
||||
cd /DATA/AppData/ruview
|
||||
cd ruview
|
||||
docker compose -f docker-compose.casaos.yml up -d
|
||||
```
|
||||
|
||||
> **Icon:** the manifest points at
|
||||
> `https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png`.
|
||||
> jsDelivr serves it from the GitHub repo, so commit & push `assets/ruview-icon.png`
|
||||
> to the `main` branch for the icon to resolve. Until then CasaOS shows a
|
||||
> placeholder; everything else works. To use a fully local icon instead, replace
|
||||
> both `icon:` URLs (in `labels:` and `x-casaos:`) with a file path served by your
|
||||
> own host.
|
||||
> `https://cdn.jsdelivr.net/gh/ruvnet/RuView@main/assets/ruview-icon.png`
|
||||
> (jsDelivr serves `assets/ruview-icon.png` straight from the repo). To use a
|
||||
> different or fully local icon, replace both `icon:` URLs (in `labels:` and
|
||||
> `x-casaos:`) with another URL or a file path served by your own host.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -162,7 +161,7 @@ docker compose -f docker-compose.casaos.yml pull
|
|||
docker compose -f docker-compose.casaos.yml up -d
|
||||
|
||||
# Status of the running server
|
||||
curl -s http://<host-ip>:3030/api/v1/status
|
||||
curl -s http://<host-ip>:3000/api/v1/status
|
||||
```
|
||||
|
||||
**Troubleshooting**
|
||||
|
|
@ -172,4 +171,4 @@ curl -s http://<host-ip>:3030/api/v1/status
|
|||
- *Multiple ESP32 nodes on Docker Desktop for Windows:* multi-source UDP collapses
|
||||
to one source IP at the WSL boundary. Use the host relay (see
|
||||
`docs/TROUBLESHOOTING.md §9`). Native Linux/CasaOS hosts are unaffected.
|
||||
- *Port clash on 3030/3031:* edit `published:` in `docker-compose.casaos.yml`.
|
||||
- *Port clash on 3000/3001:* edit `published:` in `docker-compose.casaos.yml`.
|
||||
|
|
|
|||
Loading…
Reference in New Issue