Add Egyptian escape room digital lock web app.
React/Vite lock UI with color-coded inputs, celebration SFX, and unlock video; Docker/nginx packaging and homelab deploy scripts documented in AGENTS.md.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# 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)
|
||||
|
||||
Reference in New Issue
Block a user