From 68c7e9772febf6697bd3b306ff39ac54c6925887 Mon Sep 17 00:00:00 2001 From: Alex Kazaiev Date: Tue, 30 Dec 2025 11:12:22 -0600 Subject: [PATCH] Update README with multi-instance deployment instructions --- server/README.md | 63 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/server/README.md b/server/README.md index 0301534..0f1f92d 100644 --- a/server/README.md +++ b/server/README.md @@ -2,13 +2,48 @@ Camera snapshot server with motion detection for Raspberry Pi. -## Quick Start +## Quick Start (Single Camera) ```bash +cp env.example .env +nano .env # Configure settings ./setup.sh -sudo systemctl start vixy-vision +sudo systemctl start vixy-vision- ``` +## Multi-Camera Deployment (Same Pi) + +For running multiple cameras on one Pi, clone the repo into separate directories: + +```bash +# Camera 1: desk +git clone http://gateway.local:3001/vixy/vixy-vision.git ~/vixy-vision-desk +cd ~/vixy-vision-desk/server +cp env.example .env +# Edit .env: +# SERVICE_NAME=vixy-vision-desk +# CAMERA_ID=desk +# CAMERA_INDEX=0 +# PORT=8443 +./setup.sh + +# Camera 2: basement +git clone http://gateway.local:3001/vixy/vixy-vision.git ~/vixy-vision-basement +cd ~/vixy-vision-basement/server +cp env.example .env +# Edit .env: +# SERVICE_NAME=vixy-vision-basement +# CAMERA_ID=basement +# CAMERA_INDEX=2 +# PORT=8444 +./setup.sh +``` + +Each instance gets its own: +- Install directory: `~/vixy-vision-/` +- Systemd service: `vixy-vision-.service` +- Port: as configured in `.env` + ## Features - 📷 USB camera snapshots via HTTPS API @@ -16,23 +51,20 @@ sudo systemctl start vixy-vision - 🔍 Motion detection with frame differencing - 📤 Event reporting to central collector - 🔄 Auto-reconnect on camera failure +- 🔢 Multi-instance support via SERVICE_NAME and PORT ## Configuration Copy `env.example` to `.env` and customize: -```bash -cp env.example .env -nano .env -``` - -Key settings: - | Variable | Description | Default | |----------|-------------|---------| -| `API_KEY` | Auth key for API | (required) | +| `API_KEY` | Auth key for API | (generated) | +| `SERVICE_NAME` | Systemd service name | vixy-vision | +| `PORT` | HTTPS port | 8443 | | `CAMERA_ID` | Identifier for this camera | camera | -| `MOTION_ENABLED` | Enable motion detection | false | +| `CAMERA_INDEX` | /dev/videoN index | 0 | +| `MOTION_ENABLED` | Enable motion detection | true | | `MOTION_THRESHOLD` | Sensitivity (lower = more) | 25 | | `MOTION_COOLDOWN` | Seconds between events | 5.0 | | `COLLECTOR_URL` | Where to POST events | (optional) | @@ -64,3 +96,12 @@ When motion is detected, the server POSTs to `COLLECTOR_URL`: "snapshot": "" } ``` + +## Service Management + +```bash +sudo systemctl start vixy-vision- +sudo systemctl stop vixy-vision- +sudo systemctl status vixy-vision- +sudo journalctl -u vixy-vision- -f +```