Running as a service
For day-to-day use on a systemd-based Linux workstation, run the daemon as a systemd user service so it starts with your session and restarts on crash.
From a source install
Section titled “From a source install”Install the binaries and the sample assets:
cargo install --path .install -Dm600 examples/proton-sync.toml ~/.config/proton-sync/proton-sync.tomlinstall -Dm644 examples/systemd/proton-syncd.service ~/.config/systemd/user/proton-syncd.serviceOr use the helper script, which installs the config at mode 0600, the unit at 0644,
reloads the user manager, and won’t clobber an existing config unless you pass
--force-config (add --enable/--start to enable or start it too):
examples/systemd/install-user-service.shEdit ~/.config/proton-sync/proton-sync.toml for your roots before enabling the
service. The sample unit runs proton-syncd --config %h/.config/proton-sync/proton-sync.toml
and relies on the daemon’s XDG defaults for the socket, lockfile, and index.
From a native package
Section titled “From a native package”The RPM, deb, and AUR packages ship their own unit at
/usr/lib/systemd/user/proton-syncd.service (with ExecStart=/usr/bin/proton-syncd). You
still create your config file first. The sample config’s installed location varies by
package — Fedora ships it at /usr/share/doc/proton-drive-sync-engine/proton-sync.toml,
Arch at /usr/share/doc/proton-drive-sync-engine/examples/proton-sync.toml, and the Debian
package doesn’t ship it (use examples/proton-sync.toml from the repo). Copy whichever
applies, then edit it:
install -Dm600 <sample-proton-sync.toml> ~/.config/proton-sync/proton-sync.toml$EDITOR ~/.config/proton-sync/proton-sync.tomlSee Native packages.
Enable and inspect
Section titled “Enable and inspect”systemctl --user daemon-reloadsystemctl --user enable --now proton-syncd.servicesystemctl --user status proton-syncd.servicejournalctl --user -u proton-syncd.service -fControl it as usual — the CLI finds the default runtime socket automatically:
proton-sync statusPrerequisites for a service
Section titled “Prerequisites for a service”proton-drivemust be onPATHand logged in for the user the service runs as — the daemon shells it for remote file operations and reuses its keyring session for change detection.- The desktop keyring must be unlocked for event-driven detection to reuse the CLI session; otherwise the daemon degrades to snapshot scans.
- Only one daemon per user may run (a user-global lock enforces this) because the shared
proton-driveCLI cache isn’t concurrency-safe.
Building a release archive
Section titled “Building a release archive”To bundle the binaries plus the service assets into a distributable archive:
examples/packaging/build-release-archive.shBy default it writes under target/dist; use --archive-path <PATH> to choose another
location. The manifest at examples/packaging/release-assets.toml lists what a user-service
distribution is expected to contain.