openvibers/openvibe.live Commits

release.json names the release in the release layout: the service user cannot run git in a root-owned release worktree, so the manifest said 0000000 (open tabs could not tell releases apart); RELEASE_COMMIT, else the <time>-<sha> release directory name, supplies it

OP OpenVibers committed 24 Sept 2026 · f15023a83b · 1 file, +10 −1


Changes

ddiff --git a/server/index.js b/server/index.js
iindex 5fead426..069274cb 100644
---- a/server/index.js
++++ b/server/index.js
@@@ -150,7 +150,16 @@ const app = express();
const server = http.createServer(app);
// What this server runs (ADR-016): GET /release.json below, and release_info in /metrics.
--const release = require('openvibe-shared/release').createRelease({ service: 'live', root: path.join(__dirname, '..') });
++// In the release layout (/opt/openvibe.live/releases/<time>-<sha8>, a root-owned git worktree) the
++// service user cannot run git there, so the release id also comes from the directory's name.
++const release = require('openvibe-shared/release').createRelease({ service: 'live', root: path.join(__dirname, '..'), env: releaseEnv() });
++function releaseEnv() {
++ if (process.env.RELEASE_COMMIT) return process.env;
++ let dir = path.join(__dirname, '..');
++ try { dir = require('fs').realpathSync(dir); } catch { /* keep */ }
++ const m = /-([0-9a-f]{7,40})$/.exec(path.basename(dir));
++ return m ? { ...process.env, RELEASE_COMMIT: m[1] } : process.env;
++}
// Metrics first, so every request is counted (by route template, never by raw URL). GET /metrics
// answers direct loopback callers only; through nginx it is a 404 (server/web/observability.js).
const observability = require('./web/observability');