Install Git, Docker Desktop or Python 3.10+, Node 20+, and current Chrome or
Edge. Copy .env.example to .env, then set CAMMY_SECRET_KEY,
CAMMY_ADMIN_USER, and CAMMY_ADMIN_PASSWORD. Production use requires HTTPS.
git clone https://github.com/<owner>/cammycam.git
cd cammycam
Copy-Item .env.example .env
docker compose up --build
Open https://localhost, sign in, then open Image Device. Connect the XIAO
ESP32-S3 by USB and select Connect and install.
git clone https://github.com/<owner>/cammycam.git
cd cammycam
cp .env.example .env
./install-deps.sh
docker compose up --build
If Web Serial cannot open the device, run sudo usermod -aG dialout "$USER",
then sign out and back in. Open the HTTPS hub in Chrome/Chromium.
xcode-select --install
git clone https://github.com/<owner>/cammycam.git
cd cammycam
cp .env.example .env
docker compose up --build
Open the HTTPS hub in Chrome or Edge. Safari lacks Web Serial. Use Image Device, select the connected XIAO ESP32-S3, flash, then configure Wi-Fi.
Never disconnect power during flashing. OTA rollback requires two OTA app slots.
ESP Web Tools requires a merged factory image staged with kind=factory; device
OTA uses the app-only image staged with kind=ota.