Internxt Drive Desktop for Linux is currently tested and supported on Ubuntu and Debian with the file managers Nautilus, Nemo, and Dolphin.
The application is also available through the .deb and .rpm packages for these distributions.
We cannot guarantee full compatibility on other Linux distributions or with unsupported file managers, although the app may still work in some environments.
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.debOur application requires the KDE key manager to be properly configured. Depending on your security needs, you can choose between two methods:
- Method 1 (Recommended / Easy): Uses standard symmetric encryption with a master password. It is fast, requires no additional software, and supports automatic unlocking when you log in.
- Method 2 (Advanced / GPG): Uses an OpenPGP key pair via Kleopatra for higher security, though it requires manual entry of your passphrase or PIN upon logging in.
Why Kleopatra? It is the official KDE key manager, offering native integration with KDE Wallet, fewer permission conflicts, and a user-friendly setup wizard compared to generic GPG tools.
For reference, Electron's secure storage API is documented here: safe-storage.
This is the simplest way to set up KDE Wallet and allows seamless automatic unlocking upon system login.
- Open System Settings.
- Navigate to KDE Wallet (or search for Wallet in the search bar).
- Ensure Enable the KDE wallet subsystem is checked.
- Under Automatic Wallet Selection, click Create New Wallet...
- Enter a name for your wallet (e.g.,
kdewallet). - Select Blowfish encryption (standard password) and click Next.
- Enter and confirm your Master Password.
Note: If you set this password to match your Linux user login password, the wallet will unlock automatically when you sign in!
- Click Finish.
Use this method if you prefer asymmetric GPG encryption managed via external key managers.
Install Kleopatra, which will be used to generate your GPG encryption key:
sudo apt update && sudo apt install kleopatra- Open Kleopatra and click New Key Pair (or File > New Key Pair).
- Select Create a personal OpenPGP key pair.
- Enter your Name and Email Address.
- Click Create (or Finish) to complete the setup.
- Open System Settings and search for KDE Wallet.
- Under Automatic Wallet Selection, click Create New Wallet...
- Select Use GPG encryption for added security and click Next.
- Choose the GPG key you created earlier in Kleopatra and click Finish.
Alternatively, 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.