# DevOps Handoff — stand up the Garuda v0.1 demo

*A short brief for the DevOps team. The authoritative guide is [`DEPLOY.md`](DEPLOY.md); the demo script is
[`DEMO.md`](DEMO.md).*

---

Please get the **Retail Inward v0.1 demo** running on a server we can present from. It's self-contained — **the full
Garuda Core is *not* required**, just a broker + a database, both in one compose file.

**Access:** private repo `ottlin/garuda-pe`. You'll need read access — a GitHub PAT, or an SSH deploy key for a
headless server.

**Prereqs (on the target box):**
- Docker + Docker Compose v2
- Node.js 22 LTS
- Free ports: **1883** (MQTT), **5440** (Postgres), **18083** (optional EMQX dashboard)

**Setup (~10 min):**
```bash
git clone https://github.com/ottlin/garuda-pe.git garuda-pe && cd garuda-pe
git checkout foundation                              # v0.1 lives on the foundation branch, NOT main
cd platform/deploy && docker compose up -d           # EMQX + Postgres
cd ..
for d in event-log ingest device-cli acceptance; do ( cd "$d" && npm install ); done
( cd event-log && node migrate.js )                  # → "✓ migrated garuda_events"
```

**Success check (this is the acceptance test):**
```bash
cd acceptance && node src/run.js     # must print: ACCEPTANCE PASSED ✓ — 24/24
```
**24/24 = the box is demo-ready.**

**Two things to watch:**
1. If this server **already runs the Garuda Core**, do **not** start a second EMQX on 1883 — skip the compose's broker
   and point the demo at the Core's broker (`DEPLOY.md` §6).
2. **Headless server** (no browser): the two demo screens are HTML files — copy them off the box, or serve the dir with
   `python3 -m http.server` and open in your own browser.

**Please do one full dry run today** (setup → 24/24 → open both screens: `runtime-ui/runtime-ui.html` and
`customer-view/customer-view.html`) so tomorrow is clean.

Full details, env-var overrides, troubleshooting, and the stakeholder-by-stakeholder view map are in
[`DEPLOY.md`](DEPLOY.md).
