32a0331e8bf0f4f78b807cfe00f5aa31df1efff6
React/Vite lock UI with color-coded inputs, celebration SFX, and unlock video; Docker/nginx packaging and homelab deploy scripts documented in AGENTS.md.
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)
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,4in 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:
./scripts/setup-dev-media.sh
Config lives at public/media/config.json (see config.json.example).
Docker (local smoke test)
./scripts/setup-dev-media.sh
docker compose -f docker-compose.local.yml up --build
Deploy to homelab
See AGENTS.md for stack name, hostname, and appdata paths.
# 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)
Description
Languages
TypeScript
46.7%
CSS
27.6%
Python
15.7%
Shell
7.1%
HTML
1.3%
Other
1.6%