You can build GitHub Desktop for Linux from source yourself and get the same .deb and AppImage that
are published here. It is a standard Node.js and Electron build plus a Linux packaging step.
Requirements to build from source
- A 64-bit x86_64 Linux machine, or Docker on any OS (see below).
- Node.js at the version in the repository's
.node-versionfile (24.22.1 at the time of writing). - Yarn 1.21.1, which is vendored in the repository, and Python 3.
-
Native build dependencies, as installed by the fork's
script/linux/Dockerfile. On Debian or Ubuntu:On Ubuntu 24.04, useshellsudo apt install build-essential libsecret-1-dev libkrb5-dev fakeroot rpm libfuse2 python3libfuse2t64instead oflibfuse2.
Build steps
-
01Clone the linux branch
Clone the fork and check out the linux branch, which is upstream GitHub Desktop plus the Linux changes.
shellgit clone --branch linux https://github.com/yehudah/desktop.git cd desktop -
02Install dependencies
Install the app dependencies and the Linux packaging tools, which have their own package.json.
shellyarn yarn --cwd script/linux install -
03Build
Create a production build of the app.
shellyarn build:prod -
04Package
Create the .deb and AppImage, plus .sha256 files, in dist/.
shellyarn run package
The output is dist/GitHubDesktop-linux-amd64-<version>.deb and
dist/GitHubDesktop-linux-x86_64-<version>.AppImage, each with a .sha256 file.
Install the .deb with sudo apt install ./dist/GitHubDesktop-linux-amd64-*.deb.
Building in Docker on macOS or Windows
script/linux/run.sh runs any command inside a Linux container, so you can build from another OS:
script/linux/run.sh bash -c 'yarn && yarn --cwd script/linux install && yarn build:prod && yarn run package'
If packaging fails with "The requested module 'glob' does not provide an export named 'glob'", an old
node_modules is in the way. Delete it and run yarn again.
Sign-in in your own build
Without DESKTOP_OAUTH_CLIENT_ID and DESKTOP_OAUTH_CLIENT_SECRET set at build time, the
app uses the development OAuth app from the public source, like the published builds. To use your own GitHub
OAuth app, set both variables before yarn build:prod. Builds with credentials use the
x-github-desktop-auth callback scheme instead of x-github-desktop-dev-auth.
Contributing
The Linux-specific code lives in script/linux/, script/package-linux.ts and
docs/linux/ on the linux branch. CI builds every pull request on Ubuntu 22.04 and 24.04
and runs unit and end-to-end tests against the installed .deb. Issues and pull requests are welcome
on yehudah/desktop.