Docker & Node Deployments
Relevant source files
The following files were used as context for generating this wiki page:
Docker and Node deployments provide a containerized, scalable environment for the RuView camera-free RF perception system. The deployment architecture supports multiple tiers, ranging from local quickstart demos to full-scale cloud infrastructure on AWS EKS. This system isolates the core signal processing, neural network inference, and API services into modular containers.
The primary orchestration is handled by the deploy.sh script for cloud environments and the install.sh script for local hardware-aware setups. These tools automate the configuration of Docker images, Kubernetes resources, and environment-specific builds.
Deployment Architecture
RuView organizes its containerized services into three distinct functional groups: Core, Support, and Frontend. This separation ensures that high-compute tasks like neural network inference do not interfere with high-availability services like the API gateway.
The diagram shows the internal data flow between Core, Support, and Frontend container groups on a single Docker host.
Sources: plans/phase2-architecture/system-architecture.md:314-345
Core Container Specifications
| Container | Base Image | Resources | Primary Function |
|---|---|---|---|
| CSI Collector | Python 3.9-slim | 1 CPU, 1GB RAM | Receives UDP CSI data from WiFi routers |
| Neural Network | NVIDIA CUDA 11.6 | 2 CPU, 4GB RAM, 1 GPU | Performs deep learning inference on signal features |
| Pose Estimation | Python 3.9-slim | 2 CPU, 2GB RAM | Orchestrates end-to-end processing pipeline |
| API Services | Python 3.9-slim | 2 CPU, 2GB RAM | Exposes REST and WebSocket endpoints |
Sources: plans/phase2-architecture/system-architecture.md:347-380
Local and Edge Deployments
You can deploy RuView locally using the interactive install.sh script or via direct Docker commands for demonstration purposes. The system detects your hardware—including CPU, RAM, and GPU availability—to recommend an optimal installation profile.
Installation Profiles
The install.sh script provides several profiles for different deployment needs:
- Docker: Installs a full environment with Postgres, Redis, and Prometheus using Docker Compose.
- IoT: Sets up an ESP32 sensor mesh and aggregator.
- Field: Deploys a specialized WiFi-Mat disaster response kit (~62MB).
- Full: Installs all available Rust, Python, and containerized components.
Sources: install.sh:17-30, install.sh:305-345
Quickstart Deployment
For immediate evaluation, a single command pulls the latest pre-built image and exposes the dashboard on port 3000.
docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest
Sources: plugins/ruview/skills/ruview-quickstart/SKILL.md:12-16
Cloud Infrastructure & Orchestration
The deploy.sh script manages full-scale production deployments. It coordinates infrastructure provisioning via Terraform and application orchestration via Kubernetes.
Deployment Workflow
The deployment process follows a sequence of prerequisite checks, infrastructure provisioning, and service validation:
This flowchart illustrates the stages of the deploy.sh execution for cloud-based AWS EKS environments.
Sources: deploy.sh:227-260
AWS EKS Configuration
The deployment targets an AWS EKS cluster named wifi-densepose-cluster. It uses Elastic Container Registry (ECR) to store application images, tagged with both latest and the specific Git commit hash.
- Terraform: Initializes and applies infrastructure plans for the target environment.
- Helm: Deploys the monitoring stack, including Prometheus and Grafana.
- Kubernetes (kubectl): Applies namespaces, ConfigMaps, Secrets, and Ingress controllers.
Sources: deploy.sh:78-105, deploy.sh:138-160, deploy.sh:163-182
Monitoring and Service Health
Production deployments include a monitoring stack to track system health and performance.
Monitoring Components
- Prometheus: Collects time-series metrics from all core containers.
- Grafana: Provides visual dashboards, accessible via port-forwarding or ingress.
- Fluentd: Handles centralized logging across the cluster.
Sources: deploy.sh:140-155, plans/phase2-architecture/system-architecture.md:470-490
Health Verification
After deployment, the system performs health checks against the Ingress URL. It specifically tests the /health endpoint to ensure the application is responsive.
# Example health check command used by deploy.sh
curl -f "http://${app_url}/health"
Sources: deploy.sh:195-212
Conclusion
RuView utilizes a multi-tiered deployment strategy to accommodate various use cases. Local deployments via install.sh allow for rapid testing on specific hardware, while the deploy.sh script provides a robust path to AWS-hosted production environments. By leveraging Docker and Kubernetes, the system ensures that the complex requirements of RF sensing—such as GPU-accelerated inference and real-time signal processing—are met through a modular and scalable architecture.