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:
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
IMAGE="${IMAGE:-docker-registry.apps.lockleartech.com/egyptian-escape-room:latest}"
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
|
||||
cd "$ROOT"
|
||||
docker build -t "$IMAGE" .
|
||||
docker push "$IMAGE"
|
||||
echo "Pushed $IMAGE"
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
SOURCE_DIR="${SOURCE_DIR:-/mnt/lockbox/storage/Documents/Home School Projects/Egyptian Escape Room}"
|
||||
VIDEO_SOURCE="${VIDEO_SOURCE:-$SOURCE_DIR/Ted Escape Room 1-5.mp4}"
|
||||
POP_SOURCE="${POP_SOURCE:-$SOURCE_DIR/celebration-pop.mp3}"
|
||||
HORN_SOURCE="${HORN_SOURCE:-$SOURCE_DIR/celebration-horn.mp3}"
|
||||
INCORRECT_SOURCE="${INCORRECT_SOURCE:-$SOURCE_DIR/incorrect.mp3}"
|
||||
CONFIRM_SOURCE="${CONFIRM_SOURCE:-$SOURCE_DIR/unlock-confirm.mp3}"
|
||||
DEST_DIR="$ROOT/public/media"
|
||||
|
||||
for f in "$VIDEO_SOURCE" "$POP_SOURCE" "$HORN_SOURCE" "$INCORRECT_SOURCE" "$CONFIRM_SOURCE"; do
|
||||
if [[ ! -f "$f" ]]; then
|
||||
echo "Media file not found: $f" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
mkdir -p "$DEST_DIR"
|
||||
cp "$VIDEO_SOURCE" "$DEST_DIR/unlock.mp4"
|
||||
cp "$POP_SOURCE" "$DEST_DIR/celebration-pop.mp3"
|
||||
cp "$HORN_SOURCE" "$DEST_DIR/celebration-horn.mp3"
|
||||
cp "$INCORRECT_SOURCE" "$DEST_DIR/incorrect.mp3"
|
||||
cp "$CONFIRM_SOURCE" "$DEST_DIR/unlock-confirm.mp3"
|
||||
cp "$ROOT/public/media/config.json.example" "$DEST_DIR/config.json"
|
||||
|
||||
echo "Copied media to $DEST_DIR/"
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SOURCE_DIR="${SOURCE_DIR:-/mnt/user/storage/Documents/Home School Projects/Egyptian Escape Room}"
|
||||
VIDEO_SOURCE="${VIDEO_SOURCE:-$SOURCE_DIR/Ted Escape Room 1-5.mp4}"
|
||||
POP_SOURCE="${POP_SOURCE:-$SOURCE_DIR/celebration-pop.mp3}"
|
||||
HORN_SOURCE="${HORN_SOURCE:-$SOURCE_DIR/celebration-horn.mp3}"
|
||||
INCORRECT_SOURCE="${INCORRECT_SOURCE:-$SOURCE_DIR/incorrect.mp3}"
|
||||
CONFIRM_SOURCE="${CONFIRM_SOURCE:-$SOURCE_DIR/unlock-confirm.mp3}"
|
||||
DEST="${DEST:-/mnt/user/appdata/egyptian-escape-room/public}"
|
||||
|
||||
for f in "$VIDEO_SOURCE" "$POP_SOURCE" "$HORN_SOURCE" "$INCORRECT_SOURCE" "$CONFIRM_SOURCE"; do
|
||||
if [[ ! -f "$f" ]]; then
|
||||
echo "Media file not found: $f" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
mkdir -p "$DEST"
|
||||
cp "$VIDEO_SOURCE" "$DEST/unlock.mp4"
|
||||
cp "$POP_SOURCE" "$DEST/celebration-pop.mp3"
|
||||
cp "$HORN_SOURCE" "$DEST/celebration-horn.mp3"
|
||||
cp "$INCORRECT_SOURCE" "$DEST/incorrect.mp3"
|
||||
cp "$CONFIRM_SOURCE" "$DEST/unlock-confirm.mp3"
|
||||
cat >"$DEST/config.json" <<'EOF'
|
||||
{
|
||||
"unlockVideoUrl": "/media/unlock.mp4",
|
||||
"incorrectUrl": "/media/incorrect.mp3",
|
||||
"unlockConfirmUrl": "/media/unlock-confirm.mp3",
|
||||
"celebrationPopUrl": "/media/celebration-pop.mp3",
|
||||
"celebrationHornUrl": "/media/celebration-horn.mp3",
|
||||
"celebrationHornDurationMs": 2000
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "Copied media to $DEST/"
|
||||
Reference in New Issue
Block a user