---
name: rmm-dashboard-beta-before-main
description: GuruRMM website/dashboard changes must be tested on beta BEFORE being pushed to main, unless told otherwise
metadata:
  type: feedback
---

For the GuruRMM **website/dashboard**, Howard wants changes to land on the **beta
test site first** (`https://rmm-beta.azcomputerguru.com`) and be tested there
**before** the branch is pushed/merged to `main` — unless he explicitly says
otherwise. Production is `https://rmm.azcomputerguru.com`.

**Why:** he wants to eyeball UI/UX changes against real data before they go
anywhere near the main branch / production.

**How to apply:**
- Do NOT merge dashboard changes to `main` to get them onto beta. The webhook
  pipeline auto-builds beta *from* `origin/main` (`deploy/build-pipeline/build-dashboard.sh`
  does `git reset --hard origin/main`), so merging to main is exactly what he's
  trying to avoid doing first.
- Instead, deploy the **feature branch** to the beta web root manually: build the
  branch's `dashboard/` (VITE_API_URL unset → bakes the prod API URL, same as the
  pipeline) and rsync `dist/` to `/var/www/gururmm/dashboard-beta/` on the server.
  Use a `git worktree` off the existing `/home/guru/gururmm` checkout so the main
  checkout isn't disturbed. Do NOT update `/opt/gururmm/last-built-commit-dashboard`
  (leave it so the next real main push rebuilds beta from main and reclaims it).
- Beta talks to **live production data/API**, so the preview is real — safe to
  click through, but running an installer enrolls a real agent (use a throwaway
  test site/device).
- Promotion beta→prod is a separate, human-run step: `sudo /opt/gururmm/promote-dashboard.sh --confirm`.
- A cleaner long-term fix would be a pipeline option to build a named branch to
  beta; until then it's the manual worktree build above.

Related: [[gururmm-deploy-pipeline]]
