Linux
Build native Linux desktop applications with Bini.js.
Linux Overview
Bini.js allows you to build native Linux desktop applications using Tauri. Your React app is wrapped in a WebKitGTK binary, providing a native experience with full system access.
Native Binary
Linux executable (AppImage) with GPG signing
Code Signing
GPG signing support for trusted distribution
Native APIs
Full access to Linux APIs via Tauri
Requirements
Before building Linux apps, make sure you have the following installed:
- Node.js 20.19.0 or higher
- WebKitGTK development libraries — Install via your package manager
- GTK 3 development libraries — Required for building
Install WebKitGTK
Native Linux
Build natively on Linux using the CLI. The development and build commands run directly on your Linux machine.
The build output is a native Linux executable (.AppImage) ready for distribution.
Tip: Use --sign during scaffold to set up GPG signing.
Windows
Build Linux apps from Windows using GitHub Actions. This is the recommended approach for cross-platform builds.
Why GitHub Actions? Tauri recommends GitHub Actions for cross-platform builds because:
- No local toolchain setup required
- Consistent build environment
- Automatic artifact generation
- Works from any operating system
macOS
Build Linux apps from macOS using GitHub Actions. This is the recommended approach and is used by Tauri for cross-platform builds.
Why GitHub Actions? Tauri recommends GitHub Actions for cross-platform builds because:
- No local toolchain setup required
- Consistent build environment
- Automatic artifact generation
- Works from any operating system
ubuntu-latest runners is the official Tauri-recommended approach for building Linux apps from macOS.Creating a Linux App
Create a new Bini.js project targeting Linux:
Or use the interactive prompt and select linux:
Prompt: Which platform would you like to target?
web / windows / macos / linux / android / ios
Select linux and press Enter
Development
Run your Linux app in development mode:
This launches your app in a native Linux window with:
- Hot reload for frontend changes
- Native window with system tray support
- Access to Linux APIs
- Devtools for debugging
Building
Build a distributable Linux application:
This creates a signed Linux AppImage in the src-tauri/target/release/bundle/appimage/ directory.
Output Files
my-app.AppImage— The main executablemy-app.deb— Debian package (if configured)my-app.rpm— RPM package (if configured)
Code Signing
Bini.js supports GPG signing for Linux binaries. Configure signing in src-tauri/tauri.conf.json:
For GitHub Actions, you can use secrets for secure credential storage: