openvibers/openvibe.live Commits
Production runs the release layout (C-76 done 2026-09-24 05:51 UTC): deploy from /opt/openvibe.live/current; the old checkout files are stale; release ids come from the directory name; the host inventory runs git for Live as root
Changes
@@@ -21,7 +21,7 @@ BASE=http://127.0.0.1:3000 npm run test:browser # Browser smoke (running server**No build step.** Frontend is plain JS served directly — no bundler, no transpiler. Asset URLs are content-hashed at serve time (`server/web/assets.js`) — **never add `?v=` by hand**.--**Deploy:** production path `/opt/openvibe.live`, env `/etc/openvibe/live.env`, unit `openvibe-live.service`. Static-only changes deploy without a restart. See [docs/deploy.md](docs/deploy.md).++**Deploy:** production runs the release layout (`/opt/openvibe.live/current` → `releases/<time>-<sha>`; deploy with `cd /opt/openvibe.live/current && sudo deploy/scripts/deploy.sh`), env `/etc/openvibe/live.env`, unit `openvibe-live.service`. Static-only changes deploy without a restart. See [docs/deploy.md](docs/deploy.md).## Architecture at a Glance@@@ -28,10 +28,15 @@ Clients reconnect with jittered backoff and show "OpenVibe is updating" / "Recon## Layouts--**Legacy (current production):** `/opt/openvibe.live` is a git checkout. Static-only changes no longer--restart. A rollback resets the checkout but cannot restore previous `node_modules`.----**Release layout** (set up once with `deploy/scripts/migrate-to-releases.sh`, one restart):++**Release layout (production since 2026-09-24 05:51 UTC;** set up once with++`deploy/scripts/migrate-to-releases.sh`, one restart). Deploy with++`cd /opt/openvibe.live/current && sudo deploy/scripts/deploy.sh`: the files left in `/opt/openvibe.live`++from the old checkout are stale, including their copy of this script. The release directories are++root-owned, so the manifest takes the release id from the directory name (`<time>-<sha8>`), and the++host inventory runs git for Live as root (`owner: root`, `runAs: ubuntu` for drills).++++**Legacy (before 2026-09-24):** `/opt/openvibe.live` was a git checkout. A rollback reset the checkout++but could not restore previous `node_modules`.```/opt/openvibe.live/repo git clone used to create releases
@@ -21,7 +21,7 @@ BASE=http://127.0.0.1:3000 npm run test:browser # Browser smoke (running server
@@ -21,7 +21,7 @@ BASE=http://127.0.0.1:3000 npm run test:browser # Browser smoke (running server
**No build step.** Frontend is plain JS served directly — no bundler, no transpiler. Asset URLs are content-hashed at serve time (`server/web/assets.js`) — **never add `?v=` by hand**.
**No build step.** Frontend is plain JS served directly — no bundler, no transpiler. Asset URLs are content-hashed at serve time (`server/web/assets.js`) — **never add `?v=` by hand**.
-**Deploy:** production path `/opt/openvibe.live`, env `/etc/openvibe/live.env`, unit `openvibe-live.service`. Static-only changes deploy without a restart. See [docs/deploy.md](docs/deploy.md).
+**Deploy:** production runs the release layout (`/opt/openvibe.live/current` → `releases/<time>-<sha>`; deploy with `cd /opt/openvibe.live/current && sudo deploy/scripts/deploy.sh`), env `/etc/openvibe/live.env`, unit `openvibe-live.service`. Static-only changes deploy without a restart. See [docs/deploy.md](docs/deploy.md).
## Architecture at a Glance
## Architecture at a Glance
@@ -28,10 +28,15 @@ Clients reconnect with jittered backoff and show "OpenVibe is updating" / "Recon
@@ -28,10 +28,15 @@ Clients reconnect with jittered backoff and show "OpenVibe is updating" / "Recon
## Layouts
## Layouts
-**Legacy (current production):** `/opt/openvibe.live` is a git checkout. Static-only changes no longer
-restart. A rollback resets the checkout but cannot restore previous `node_modules`.
-
-**Release layout** (set up once with `deploy/scripts/migrate-to-releases.sh`, one restart):
+**Release layout (production since 2026-09-24 05:51 UTC;** set up once with
+`deploy/scripts/migrate-to-releases.sh`, one restart). Deploy with
+`cd /opt/openvibe.live/current && sudo deploy/scripts/deploy.sh`: the files left in `/opt/openvibe.live`
+from the old checkout are stale, including their copy of this script. The release directories are
+root-owned, so the manifest takes the release id from the directory name (`<time>-<sha8>`), and the
+host inventory runs git for Live as root (`owner: root`, `runAs: ubuntu` for drills).
+
+**Legacy (before 2026-09-24):** `/opt/openvibe.live` was a git checkout. A rollback reset the checkout
+but could not restore previous `node_modules`.
```
```
/opt/openvibe.live/repo git clone used to create releases
/opt/openvibe.live/repo git clone used to create releases