102 lines
4.0 KiB
YAML
102 lines
4.0 KiB
YAML
# 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.
|
|
#
|
|
# 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
|
|
#
|
|
# 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
|
|
# simulated synthetic CSI, no hardware needed (good for first evaluation)
|
|
|
|
name: ruview
|
|
|
|
services:
|
|
ruview:
|
|
image: ruvnet/wifi-densepose:latest
|
|
container_name: ruview
|
|
hostname: ruview
|
|
labels:
|
|
icon: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
|
|
ports:
|
|
- mode: ingress
|
|
target: 3000
|
|
published: "3030"
|
|
protocol: tcp
|
|
- mode: ingress
|
|
target: 3001
|
|
published: "3031"
|
|
protocol: tcp
|
|
- target: 5005
|
|
published: "5005"
|
|
protocol: udp
|
|
environment:
|
|
- RUST_LOG=info
|
|
# auto | esp32 | wifi | simulated (see header)
|
|
- CSI_SOURCE=${CSI_SOURCE:-auto}
|
|
- MODELS_DIR=/app/models
|
|
# Optional bearer-token auth on /api/v1/*. Leave empty for LAN-only use;
|
|
# set a token to require `Authorization: Bearer <token>`:
|
|
# RUVIEW_API_TOKEN=$(openssl rand -hex 32)
|
|
- RUVIEW_API_TOKEN=${RUVIEW_API_TOKEN:-}
|
|
volumes:
|
|
# Drop .rvf model files here to make them visible to the API.
|
|
- ./data/models:/app/models
|
|
restart: unless-stopped
|
|
networks:
|
|
default: null
|
|
|
|
networks:
|
|
default:
|
|
name: ruview_default
|
|
|
|
x-casaos:
|
|
architectures:
|
|
- amd64
|
|
main: ruview
|
|
author: self
|
|
developer: ruvnet
|
|
category: HomeAutomation
|
|
hostname: ""
|
|
icon: https://cdn.jsdelivr.net/gh/Aiacos/ruview@main/assets/ruview-icon.png
|
|
index: /
|
|
is_uncontrolled: false
|
|
port_map: "3030"
|
|
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
|
|
sensor. Using Channel State Information (CSI) from low-cost ESP32-S3 nodes,
|
|
it detects people through walls, estimates breathing and heart rate, tracks
|
|
motion and falls, and runs 17-keypoint pose estimation — no cameras, no
|
|
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
|