A Home Theater PC frontend for Linux. Browse and launch games, movies, TV shows, and music from the couch with controller support.
Alpha Software: This application is in an early alpha state. Expect breaking changes, incomplete features, and bugs. Nothing is guaranteed to work — use at your own risk.
For system dependencies (Dolphin emulator, ffmpeg, xdotool, etc.), see SETUP.md.
- flatpak-builder (for building Flatpak packages)
- rust (for building native dependencies)
- cargo (Rust package manager)
- rustup (Rust toolchain manager)
- Node.js 20+ (for running
electron-vite) - Bun (package manager, dev server, build runner)
sudo dpkg --add-architecture arm64Configure apt for multi-arch support
# Quick sed pass to add arch=amd64 where not already present
sudo sed -i 's/^deb \(https\?:\/\/\)/deb [arch=amd64] \1/' /etc/apt/sources.list
sudo sed -i 's/^deb \(https\?:\/\/\)/deb [arch=amd64] \1/' /etc/apt/sources.list.d/*.listAdd ARM64 repositories for cross-compilation
Replace noble with your Ubuntu version (e.g., jammy, focal, bionic)
cat <<EOF | sudo tee /etc/apt/sources.list.d/ubuntu-ports-arm64.list
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
EOFInstall cross-compilation tools
sudo apt update
sudo apt install gcc-aarch64-linux-gnu libc6-dev-arm64-cross flatpak-builder rpm libasound2-dev:arm64 gcc-aarch64-linux-gnu# Install the Rust target for ARM64
rustup target add aarch64-unknown-linux-gnu
# Add arm64 architecture to dpkg
sudo dpkg --add-architecture arm64
# Update apt and install arm64 ALSA libraries (required for Rust cross-compilation)
sudo apt update
sudo apt install libasound2-dev:arm64
# Install Flatpak runtimes for both architectures
flatpak install flathub org.freedesktop.Platform/x86_64/23.08 org.freedesktop.Sdk/x86_64/23.08 org.electronjs.Electron2.BaseApp/x86_64/23.08
flatpak install flathub org.freedesktop.Platform/aarch64/23.08 org.freedesktop.Sdk/aarch64/23.08 org.electronjs.Electron2.BaseApp/aarch64/23.08- Debian / Ubuntu / Fedora
curl -fsSL https://bun.sh/install | bash - Arch
yay -S bun-bin # or paru -S bun-bin
bun installbun run devbun run buildbun run previewBuilds all configured Linux targets (AppImage, deb, rpm, tar.gz, flatpak) for both x64 and arm64:
bun run distTo build a specific target:
bun run dist --linux deb
bun run dist --linux flatpak
bun run dist --linux AppImageNotes:
.rpmrequiresrpmbuild(sudo apt install rpmon Debian/Ubuntu)- ARM64 cross-compilation of the Rust native addon requires
rustup target add aarch64-unknown-linux-gnuand a cross-compilation sysroot foralsa-sys. The build script will skip the ARM64 native addon if cross-compilation is not set up; the Electron app itself will still build for ARM64. - Flatpak builds require both
x86_64andaarch64runtimes to be installed (see Additional setup for cross-compilation above).
We welcome contributions! Please read CONTRIBUTING.md for details on how to submit bug reports, feature requests, and pull requests.
Important: By contributing any code, documentation, or other materials to this project, you agree that your contributions are licensed under the PolyForm Noncommercial License 1.0.0, exactly as specified in LICENSE.md, with no exceptions.
This project is licensed under the PolyForm Noncommercial License 1.0.0.
Commercial Use: The PolyForm Noncommercial License does not permit commercial use. If you need to use Ember commercially, contact the licensor to purchase a commercial license.