GitNexus/gitnexus-desktop
Sparsh 28768d9eaa feat(desktop): Dynamic port selection via --port 0 + stdout signal
Spawn the GitNexus backend server with --port 0 so the OS assigns a free
port instead of hardcoding 4747. The server announces the chosen port
via a GITNEXUS_PORT=N stdout line, which the desktop captures and uses
for health checks and identity verification.

Also fixes server/api.ts to log the actual bound port
(server.address().port) instead of the port parameter, which was wrong
when using --port 0.

Removes GITNEXUS_PORT, GITNEXUS_SERVER_URL, GITNEXUS_SERVER_HEALTH_URLS
constants. Adds identity verification via /api/info version field.
Passes server URL to web UI via ?server= query param (already supported
by App.tsx auto-connect).

Refs GH-985
2026-05-23 21:45:56 +05:30
..
build feat(desktop): add ICO icon support for Windows and update icon path 2026-05-19 13:11:32 +05:30
scripts fix(desktop): drop --ignore-scripts so lbugjs.node install hook runs 2026-05-19 12:12:43 +05:30
src feat(desktop): Dynamic port selection via --port 0 + stdout signal 2026-05-23 21:45:56 +05:30
test feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
.gitignore clean setup and ckeleton created at gitnexus-desktop 2026-04-19 14:38:36 +05:30
electron-builder.yml feat(desktop): add ICO icon support for Windows and update icon path 2026-05-19 13:11:32 +05:30
electron.vite.config.ts feat: add electron-vite configuration and automated packaging script for desktop application 2026-04-25 14:35:09 +05:30
package-lock.json feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
package.json feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
README.md fix(desktop): validate unpacked app startup in packaging flow 2026-04-20 21:58:01 +05:30
tsconfig.json style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
tsconfig.node.json style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
tsconfig.renderer.json style(desktop): format gitnexus-desktop package 2026-04-20 10:13:29 +05:30
tsconfig.vitest.json feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30
vitest.config.ts feat: add validation job to GitHub Actions for desktop packaging 2026-04-24 13:45:23 +05:30

GitNexus Desktop

Electron desktop shell for GitNexus. The app starts the local backend and loads the real gitnexus-web UI inside the desktop window.

Commands

npm run dev
npm run build:dir
npm run build:win
npm run build:mac
npm run build:linux
  • npm run dev starts the Electron shell plus the local GitNexus backend.
  • npm run build:dir creates an unpacked desktop app directory.
  • npm run build:win creates a Windows NSIS installer .exe.
  • npm run build:mac creates a macOS .dmg.
  • npm run build:linux creates a Linux .AppImage.
  • npm run smoke:unpacked launches the latest unpacked desktop build, verifies startup, and exits.

Build output is written under gitnexus-desktop/release/<timestamp>/.

PR Artifacts

The Desktop Packaging GitHub Actions workflow builds an unpacked desktop app, smoke-tests startup, then uploads preview desktop artifacts for pull requests that touch .github/workflows/desktop-packaging.yml, gitnexus-desktop/**, gitnexus/**, gitnexus-web/**, or gitnexus-shared/**.

  • gitnexus-desktop-windows contains the Windows NSIS installer .exe and win-unpacked/.
  • gitnexus-desktop-macos contains the macOS .dmg and mac*/ output.
  • gitnexus-desktop-linux contains the Linux .AppImage and linux-unpacked/.

GitHub artifact URLs are run-specific and expire, so use the artifact names above from the latest successful PR workflow run.