Docs
Doc / build-linux
Build OmniEdge for Linux
OmniEdge v2.x is built with Rust. This guide covers building both the CLI and Desktop applications on Linux.
Supported Distributions
- Ubuntu 22.04, 24.04
- Debian 11, 12
- Fedora 38, 39, 40
- Arch Linux / Manjaro
- openSUSE Tumbleweed
Prerequisites
Install Rust Toolchain
# Install Rust (1.70+ required)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
# Verify
rustc --version # Should be 1.70+System Dependencies
Ubuntu / Debian
sudo apt update
sudo apt install -y \
build-essential \
pkg-config \
libssl-dev \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-devFedora
sudo dnf install -y \
gcc gcc-c++ \
openssl-devel \
gtk3-devel \
webkit2gtk4.1-devel \
libayatana-appindicator-gtk3-devel \
librsvg2-develArch Linux / Manjaro
sudo pacman -S --needed \
base-devel \
openssl \
gtk3 \
webkit2gtk-4.1 \
libayatana-appindicator \
librsvgopenSUSE
sudo zypper install -y \
gcc gcc-c++ \
libopenssl-devel \
gtk3-devel \
webkit2gtk3-devel \
libayatana-appindicator3-devel \
librsvg-develBuild CLI
Clone and Build
git clone https://github.com/omniedgeio/omniedge.git
cd omniedge
# Build CLI in release mode
cargo build --release -p omni-cli
# Binary location
ls -la target/release/omniedgeInstall CLI
# Install to /usr/local/bin
sudo cp target/release/omniedge /usr/local/bin/
# Verify
omniedge --versionBuild Helper Service
The helper service runs with elevated privileges to manage the TUN interface:
cargo build --release -p omni-helper
# Install helper
sudo cp target/release/omni-helper /usr/local/bin/Build Desktop Application
Additional Prerequisites
# Install Node.js 18+ (via nvm recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
# Verify
node --version # Should be 18+
npm --versionBuild Desktop
cd apps/desktop
# Install npm dependencies
npm install
# Build Tauri app (creates .deb, .rpm, .AppImage)
npm run tauri buildBuild Output
Installers are created in apps/desktop/src-tauri/target/release/bundle/:
| Format | Location |
|---|---|
| DEB | bundle/deb/omniedge-desktop_*.deb |
| RPM | bundle/rpm/omniedge-desktop-*.rpm |
| AppImage | bundle/appimage/omniedge-desktop_*.AppImage |
Install Desktop
# Debian/Ubuntu
sudo dpkg -i apps/desktop/src-tauri/target/release/bundle/deb/omniedge-desktop_*.deb
# Fedora/RHEL
sudo rpm -i apps/desktop/src-tauri/target/release/bundle/rpm/omniedge-desktop-*.rpm
# AppImage (no install needed)
chmod +x apps/desktop/src-tauri/target/release/bundle/appimage/omniedge-desktop_*.AppImage
./apps/desktop/src-tauri/target/release/bundle/appimage/omniedge-desktop_*.AppImageDevelopment Mode
CLI Development
# Run CLI in debug mode
cargo run -p omni-cli -- --help
# Run with arguments
cargo run -p omni-cli -- statusDesktop Development
cd apps/desktop
# Start development server with hot reload
npm run tauri devTesting
# Run all tests
cargo test
# Run specific crate tests
cargo test -p omni-cli
cargo test -p omni-tunBuild Options
Debug Build
# Faster compilation, larger binary, debug symbols
cargo build -p omni-cliRelease Build with LTO
# Smaller binary, longer compile time
CARGO_PROFILE_RELEASE_LTO=true cargo build --release -p omni-cliStatic Build (musl)
# Add musl target
rustup target add x86_64-unknown-linux-musl
# Build static binary
cargo build --release -p omni-cli --target x86_64-unknown-linux-muslTroubleshooting
Missing webkit2gtk
If you see errors about webkit2gtk-4.1, install the correct package:
# Ubuntu 22.04+
sudo apt install libwebkit2gtk-4.1-dev
# Older systems may need 4.0
sudo apt install libwebkit2gtk-4.0-devPermission Denied for TUN
The helper service requires root privileges. Run with sudo:
sudo omniedge startIf you have more questions, feel free to discuss.
On This Page