Development
This guide covers building Ember from source for development or packaging.
Prerequisites
Section titled “Prerequisites”- Node.js 20+
- Bun (package manager)
- Rust + cargo + rustup
- flatpak-builder (for Flatpak builds)
Install Bun
Section titled “Install Bun”Debian / Ubuntu / Fedora
curl -fsSL https://bun.sh/install | bashArch
yay -S bun-bin# orparu -S bun-binCross-compilation setup (optional)
Section titled “Cross-compilation setup (optional)”For ARM64 builds from an x86_64 machine:
# Add ARM64 architecturesudo dpkg --add-architecture arm64
# Add ARM64 repositories (replace `noble` with your Ubuntu version)cat <<EOF | sudo tee /etc/apt/sources.list.d/ubuntu-ports-arm64.listdeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiversedeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiversedeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverseEOF
sudo apt updatesudo apt install gcc-aarch64-linux-gnu libc6-dev-arm64-cross flatpak-builder rpm libasound2-dev:arm64
# Rust targetrustup target add aarch64-unknown-linux-gnuInstall dependencies
Section titled “Install dependencies”bun installDevelopment server
Section titled “Development server”bun run devThis starts the Electron app with hot reload for both the main and renderer processes.
Build for production
Section titled “Build for production”bun run buildBuild distribution packages
Section titled “Build distribution packages”Builds all configured Linux targets for both x64 and arm64:
bun run distBuild a specific target:
bun run dist --linux debbun run dist --linux flatpakbun run dist --linux AppImage