fix(casaos): point app tile at /ui dashboard and complete x-casaos schema

- index -> /ui/index.html so the CasaOS tile opens the actual dashboard
  instead of the bare API index page (root / only lists endpoints)
- add webui_port, and envs/ports/volumes annotations + screenshot_link
  to match the richer CasaOS app-store metadata format
- add mode: ingress to the UDP 5005 port for consistency with the TCP ports
- docs: document the /ui/* dashboard URLs (index/observatory/pose-fusion/viz)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lorenzo Argentieri 2026-05-23 19:58:18 +02:00
parent 296370d4b4
commit 8cbade3ce3
2 changed files with 43 additions and 5 deletions

View File

@ -13,7 +13,9 @@
# Import into CasaOS: App Store → Custom Install → paste this file, OR
# cd /DATA/AppData/ruview && docker compose -f docker-compose.casaos.yml up -d
#
# Open the dashboard at: http://192.168.1.177:3030
# 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
# dashboards live under /ui/: index.html, observatory.html, pose-fusion.html)
#
# Data source (CSI_SOURCE):
# auto probe UDP 5005 for an ESP32, else fall back to simulation (default)
@ -38,7 +40,8 @@ services:
target: 3001
published: "3031"
protocol: tcp
- target: 5005
- mode: ingress
target: 5005
published: "5005"
protocol: udp
environment:
@ -70,9 +73,10 @@ x-casaos:
category: HomeAutomation
hostname: ""
icon: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
index: /
index: /ui/index.html
is_uncontrolled: false
port_map: "3030"
webui_port: 3030
scheme: http
tagline:
en_us: See through walls with WiFi — contactless presence, breathing & pose sensing
@ -99,3 +103,32 @@ x-casaos:
en_us: RuView
custom: RuView
thumbnail: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
screenshot_link:
- https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
envs:
- container: CSI_SOURCE
description:
en_us: "Data source: auto (default) | esp32 | simulated. 'simulated' needs no hardware."
- container: RUVIEW_API_TOKEN
description:
en_us: "(Optional) bearer token to protect /api/v1/*. Leave empty for LAN-only use."
- container: MODELS_DIR
description:
en_us: "In-container path scanned for .rvf model files (default /app/models)."
- container: RUST_LOG
description:
en_us: "Log level: info (default), debug, warn, error."
ports:
- container: "3000"
description:
en_us: "Web UI + REST API (HTTP). Published on host port 3030."
- container: "3001"
description:
en_us: "WebSocket sensing stream. Published on host port 3031."
- container: "5005"
description:
en_us: "ESP32-S3 CSI ingest (UDP). Published on host port 5005."
volumes:
- container: /app/models
description:
en_us: "Holds .rvf model files exposed via /api/v1/models."

View File

@ -24,9 +24,14 @@ CSI_SOURCE=simulated docker compose -f docker-compose.casaos.yml up -d
Then open the dashboard:
```
http://<host-ip>:3030
http://<host-ip>:3030/ui/index.html
```
> The bare root `http://<host-ip>:3030/` 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).
`CSI_SOURCE=simulated` feeds the pipeline with synthetic CSI so you can explore
the dashboard, API, and vital-sign/pose visualizations without any hardware.
@ -106,7 +111,7 @@ 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`.
3. Install. The tile opens `http://<host-ip>:3030/ui/index.html`.
**Option B — CLI (CasaOS still detects the container)**