This guide covers building the BioRouter Desktop application from source on various Linux distributions.
Debian/Ubuntu:
sudo apt update
sudo apt install -y dpkg fakeroot build-essential libxcb1-dev libxcb-util-dev protobuf-compilerArch/Manjaro:
sudo pacman -S --needed dpkg fakeroot base-develFedora/RHEL/CentOS:
sudo dnf install dpkg-dev fakeroot gcc gcc-c++ make libxcb-developenSUSE:
sudo zypper install dpkg fakeroot gcc gcc-c++ makeandroid / termux:
BioRouter is not officially support termux build yet, you need some minor patch to fix build issues. We will publish BioRouter into termux-packages. If you want to try there is a non-official build, https://github.com/shawn111/BioRouter/releases/download/termux/biorouter-termux-aarch64.tar.bz2 For more details, see: https://github.com/BaranziniLab/BioRouter/pull/3890
pkg install rust
pkg install cmake protobuf clang build-essential- Rust: Install via rustup
- Node.js: Version 22.9.0 or later (use nvm for version management)
- npm: Comes with Node.js
git clone https://github.com/BaranziniLab/BioRouter.git
cd BioRoutercargo build --release -p biorouter-servercd ui/desktop
npm install
# Copy the server binary to the expected location
mkdir -p src/bin
cp ../../target/release/biorouterd src/bin/Works on all Linux distributions:
npm run make -- --targets=@electron-forge/maker-zipOutput: out/make/zip/linux/x64/biorouter-linux-x64-{version}.zip
For Debian/Ubuntu systems:
npm run make -- --targets=@electron-forge/maker-debOutput: out/make/deb/x64/biorouter_{version}_amd64.deb
npm run make./out/biorouter-linux-x64/bioroutersudo dpkg -i out/make/deb/x64/biorouter_*.debIf you see errors about missing dpkg or fakeroot:
# Install the missing packages for your distribution (see Prerequisites above)You may see warnings like:
GLib-GObject: instance has no handler with id
These are harmless and don't affect functionality. To suppress them, create a launcher script:
#!/bin/bash
cd /path/to/BioRouter/ui/desktop/out/biorouter-linux-x64
./biorouter 2>&1 | grep -v "GLib-GObject" | grep -v "browser_main_loop"If you see "Could not find biorouterd binary", ensure you've:
- Built the Rust backend:
cargo build --release -p biorouter-server - Copied it to the right location:
cp ../../target/release/biorouterd src/bin/ - Rebuilt the application:
npm run make
- The RPM maker is disabled by default as it's not compatible with Arch-based systems
- Use the ZIP distribution method for maximum compatibility
Flatpak builds are supported via CI. To build locally:
# Install flatpak and flatpak-builder
sudo apt install flatpak flatpak-builder
# Add Flathub remote
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Build with Electron Forge
npm run make -- --targets=@electron-forge/maker-flatpakOutput: out/make/flatpak/x86_64/*.flatpak
Building as Snap packages is not currently supported but may be added in the future.
For active development:
- Backend changes: Rebuild with
cargo build --release -p biorouter-serverand copy the binary - Frontend changes: Use
npm run startfor hot reload during development - Full rebuild: Run the complete build process above
Create ~/.local/share/applications/biorouter.desktop:
[Desktop Entry]
Name=BioRouter AI Agent
Comment=Local AI agent for development tasks
Exec=/path/to/BioRouter/ui/desktop/out/biorouter-linux-x64/biorouter %U
Icon=/path/to/BioRouter/ui/desktop/out/biorouter-linux-x64/resources/app.asar.unpacked/src/images/icon.png
Terminal=false
Type=Application
Categories=Development;Utility;
StartupNotify=true
MimeType=x-scheme-handler/biorouterTo install system-wide:
sudo cp -r out/biorouter-linux-x64 /opt/biorouter
sudo ln -s /opt/biorouter/biorouter /usr/local/bin/biorouter-guiWhen contributing changes that affect the Linux build process, please:
- Test on multiple distributions if possible
- Update this documentation
- Update
ui/desktop/README.mdif needed - Consider CI/CD implications for automated builds