As of right now, Internxt Drive Desktop for Linux is only compatible with Ubuntu and Debian with the File explorer Nautilus (The default file explorer for Gnome).
We cannot guarantee that the app will work properly on other Linux distributions or with other file explorers as our development and testing efforts are focused on ensuring the best experience for Ubuntu and Debian users.
Internxt Drive is available for Linux in two formats:
Download and install the .deb package for full compatibility:
sudo dpkg -i internxt_2.6.0_amd64.debAlternatively, you can use the AppImage format:
chmod +x Internxt-2.6.0.AppImage
./Internxt-2.6.0.AppImageDue to technical limitations of the AppImage format, the new SSO login flow is only supported when using Chrome. The .deb version does not have this restriction and remains fully compatible with all browsers.
For the best experience with SSO authentication, we recommend using the .deb package installation method.
- NVM (Node Version Manager)
- Node.js 24
If working on the FUSE daemon (Go), see packages/fuse-daemon/README.md for Go and linting tool prerequisites.
Clone the repo and install dependencies:
git clone https://github.com/internxt/drive-desktop-linux.git
cd drive-desktop-linux
npm installStart the app in the dev environment:
npm startTo package apps for the local platform:
npm run packageBuilding the .rpm package requires rpmbuild. On Ubuntu or Debian, install the rpm package before running the packaging command:
sudo apt-get install rpmThe official release pipeline builds and publishes artifacts inside a pinned container image (Dockerfile.release) to reduce host drift.
Current release flow:
- Build container image from
ubuntu:24.04. - Run
npm ciandnpm run publishinside the container. - Upload generated artifacts (
.deb,.rpm,.AppImage) plus build metadata. - Run smoke tests on the generated
.debwithout rebuilding it.
The release workflow includes a smoke test job that:
- Downloads the previously built
.debartifact. - Installs runtime dependencies for Linux GUI startup checks.
- Installs the package and verifies
/opt/Internxt/internxtexists. - Launches the binary in headless mode (
xvfb-run) and checks startup.
Create a script in the root of the project named enable-sso.sh and add the following content:
#!/bin/bash
export NVM_DIR="$HOME/.nvm"
# Load nvm manually
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
cd "/your-project-path/drive-desktop-linux/"
nvm use 24
npm run start:main -- "$@"
Use the following command to give the script execution permissions:
chmod +x /your-project-location/drive-desktop-linux/enable-sso.sh
Use the following command to create the file and add the following content:
vim ~/.local/share/applications/internxt-protocol.desktop
[Desktop Entry]
Type=Application
Name=Internxt Desktop (Dev)
Exec=/your-project-location/drive-desktop-linux/enable-sso.sh %u
Icon=internxt
Terminal=false
MimeType=x-scheme-handler/internxt;
Change the permissions of the newly created file:
chmod 644 ~/.local/share/applications/internxt-protocol.desktop
Register the internxt protocol handler:
xdg-mime default internxt-protocol.desktop x-scheme-handler/internxt
Update the application database:
update-desktop-database ~/.local/share/applications
Check that the internxt protocol is correctly registered:
gio mime x-scheme-handler/internxt
Verify by logging into the application.
If opening an internxt:// URL launches the development command but Electron exits with an error like this:
The SUID sandbox helper binary was found, but is not configured correctly.
You need to make sure that node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.
Or the dev app does not open at all, it may be that the deeplink registration is working, but Electron is aborting before the main process starts because Chromium's Linux sandbox helper has the wrong owner or permissions.
Confirm the current permissions (in the project root):
ls -l node_modules/electron/dist/chrome-sandboxFix them from the project root:
sudo chown root:root node_modules/electron/dist/chrome-sandbox
sudo chmod 4755 node_modules/electron/dist/chrome-sandboxThe expected result is that chrome-sandbox is owned by root and has the setuid bit enabled:
-rwsr-xr-x 1 root root ... node_modules/electron/dist/chrome-sandboxThis may need to be repeated after reinstalling dependencies, because node_modules/electron can be recreated with regular user ownership.