Installation
Requirements
Section titled “Requirements”- A Linux desktop (Fedora, Ubuntu, Arch). The engine is Unix-only — the control plane
uses Unix domain sockets — but Linux is the only supported and tested platform: keyring
session reuse (
secret-tool/libsecret), the desktop app, and the native packaging are all Linux-specific. - A Rust toolchain with edition 2024 support (Rust 1.85 or newer) to build from source.
- The
proton-driveCLI, installed, authenticated, and on yourPATH(see below). - For the desktop app: the usual Tauri Linux build deps —
webkit2gtk-4.1,libsoup-3.0,gtk3, andglib2development packages, pluslibappindicatorfor the system tray.
Prerequisite: the proton-drive CLI
Section titled “Prerequisite: the proton-drive CLI”The engine relies on Proton’s own proton-drive CLI: every remote file operation
(list, upload, download, delete) shells out to it, and change detection reads Proton’s
volume-event stream directly over HTTPS, authenticated by reusing that tool’s keyring
session. Install and authenticate it first, following its own documentation, then
confirm it works:
proton-drive filesystem list --json /Drive/RemoteFolderIf that command fails, the daemon will fail the same way. If proton-drive is not on
your PATH, point the daemon at it explicitly with --proton-cli /path/to/proton-drive.
Build from source
Section titled “Build from source”Clone the repository and build both engine binaries:
git clone https://github.com/osirison/proton-drive-sync-engine.gitcd proton-drive-sync-enginecargo build --release --binsThis produces target/release/proton-syncd and target/release/proton-sync. To install
them into your Cargo bin directory:
cargo install --path .Build the desktop app
Section titled “Build the desktop app”The desktop app is a Tauri workspace member. With the Tauri Linux build deps installed:
cargo build --release -p proton-sync-guiThe resulting proton-sync-gui binary is the desktop client. See the
Desktop app overview for what it does.
Validate a source checkout
Section titled “Validate a source checkout”The full contributor validation suite:
cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test --all-targets --all-featuresclippy runs with -D warnings, so warnings fail the build in CI. See
Development for focused test commands.
Native packages
Section titled “Native packages”Packaging trees live under packaging/
for RPM (Fedora/COPR), deb (Debian/Ubuntu), and an Arch PKGBUILD (AUR). Each installs
the three binaries, a systemd user unit at /usr/lib/systemd/user/proton-syncd.service,
the freedesktop launcher/icon/AppStream metadata, and the Nautilus/Nemo file-manager emblem
extensions (split into optional subpackages on RPM and deb; bundled in the main package on
Arch, with the Python bindings as optional dependencies).
See Native packages for the per-distro build and install steps.
- Quick start — preview a plan and run your first sync.
- Running as a service — install the systemd user unit.