# Egyptian Escape Room — Digital Lock A touch-friendly React lock for a homeschool Egyptian escape room. Eight color-coded numeric inputs; correct code plays a celebration and unlock video. ## Quick start (local) ```bash npm install ./scripts/setup-dev-media.sh npm run dev ``` Open http://localhost:5173. For iPad testing on your LAN: `npm run dev -- --host`. ## Test checklist - Wrong code → jiggle + "Incorrect Code!" - Correct code (`8`, `9`, `10`, `6`, `8`, `6`, `12`, `4` in order) → confetti → unlock video ## Media The unlock clip is copied from `Ted Escape Room 1-5.mp4` in the Egyptian Escape Room documents folder. Dev setup: ```bash ./scripts/setup-dev-media.sh ``` Config lives at `public/media/config.json` (see `config.json.example`). ## Docker (local smoke test) ```bash ./scripts/setup-dev-media.sh docker compose -f docker-compose.local.yml up --build ``` → http://localhost:8080 ## Deploy to homelab See [AGENTS.md](AGENTS.md) for stack name, hostname, and appdata paths. ```bash # On Unraid ./scripts/setup-prod-media.sh # Build and push ./scripts/build-push.sh ``` Then deploy the `egyptian-escape-room` Portainer stack from the homelab compose snapshot. **URL:** https://egyptian-escape-room.locklear.net (LAN only)