Files

3.7 KiB
Raw Permalink Blame History

Demo runbook

Starting the demo

Open the configured deployment URL, for example https://fleetops.example.com, or http://localhost:1228 for local development. The login screen names the fictional organisation, states that all data is synthetic and offers:

  • Start begeleide demo — logs in as Operations Manager and opens the Demo Guide at step 1;
  • Verken als Operations Manager / Verken als Rental Employee — free exploration without the guide.

No password is shown or required for either synthetic-demo path.

Five-minute demo

  1. Click Start begeleide demo.
  2. Follow steps 13: dashboard, booking needing attention, and the pre-filled odometer-anomaly return.
  3. Resolve the data-quality issue created by the return. “Retain canonical” is the fastest demonstration path.
  4. Ask a suggested knowledge question and show the cited source.
  5. Show the automation/audit-trail link-through.
  6. Close with the About pages real/synthetic/not-connected breakdown.

Ten-minute demo

Complete the five-minute path, then use /scenarios:

  • scenario 2: duplicate customer merge;
  • scenario 3: booking overlap, resolved through /data-quality;
  • scenario 4: failed automation retry through /automation.

All scenarios are deterministic and independent after a reset.

Resetting the environment

An Operations Manager can reset from the sidebar, Demo Guide or About page. Reset requires confirmation, rebuilds only the deterministic MobilityOps dataset, runs a server-side integrity check and invalidates the acting session. It never mutates shared n8n, RAGcore, MCP data, unrelated containers or volumes. Disable reset entirely with DEMO_ALLOW_RESET=false where required.

Deployment contract

Create a source archive from the exact reviewed commit, record its SHA-256 and full Git SHA, transfer it through the operator-approved channel, and invoke deploy/unraid/deploy-release.sh with those immutable identifiers.

Keep the following values in operator-local configuration rather than repository documentation:

  • deployment host or SSH alias;
  • SSH key selection;
  • persistent appdata directory;
  • public application URL;
  • n8n and RAGcore endpoints;
  • tokens and callback secrets.

An Unraid installation commonly uses a path such as /mnt/user/appdata/mobilityops, but that is an example only. See deploy/unraid/README.md for the parameterized deployment layout.

The deployer verifies the archive checksum, extracts into a commit-named release directory, builds revision-labelled immutable images, promotes without reseeding and checks application, backup and observability health. Reset demo data only as a separate deliberate action.

Rollback

.deploy/source-revision and .deploy/release-history.log record the live commit and image tags. A failed readiness check restores the previous image IDs. Database rollback remains a separate explicitly guarded restore operation.

Server safety

Only touch the mobilityops Compose projects own api and web services, and interact with db only through migrations or the guarded backup/restore flow. Never stop unrelated containers, run broad Docker pruning, delete unrecognised resources, overwrite the server .env, print secrets, start a second permanent n8n instance or activate guessed integration URLs. PostgreSQL must remain unexposed.

Troubleshooting

  • Scenario unavailable: it was already resolved since the last reset; reset the synthetic dataset.
  • Knowledge question returns insufficient evidence: use a suggested question and inspect provider health/citations; the adapter refuses ungrounded answers.
  • Unexpected failed n8n delivery: use the automation view and bounded retry path; inspect operator-side n8n logs without committing them.