Installation
Prerequisites
- Linux x86_64 with glibc ≥ 2.38 (Ubuntu 22.04+, Debian 12+, Fedora 36+, Arch, etc.)
- rclone ≥ 1.66 installed — the Google Drive remote is created automatically by
cdsync activate, norclone configneeded - GTK3 + AppIndicator3 libraries for the tray applet
- Your personal license (
license.lic)
Runtime dependencies
System dependencies that must be present before cdsync install (it offers to sudo apt install them automatically when missing):
# Ubuntu / Debian / Mint / Pop!_OS — GTK typelibs via apt, rclone from upstream:
sudo -v ; curl https://rclone.org/install.sh | sudo bash # rclone ≥ 1.66
sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-appindicator3-0.1
# Fedora
sudo -v ; curl https://rclone.org/install.sh | sudo bash
sudo dnf install python3-gobject gtk3 libappindicator-gtk3
# Arch / Manjaro
sudo pacman -S rclone python-gobject gtk3 libappindicator-gtk3
| Dependency | Min version | Purpose |
|---|---|---|
rclone | ≥ 1.66 | Drive sync backend (bisync --conflict-resolve arrived in 1.66) |
python3-gi (PyGObject) | ≥ 3.42 | GTK3 bindings for the tray |
gir1.2-gtk-3.0 | ≥ 3.24 | GTK3 typelib (runtime) |
gir1.2-appindicator3-0.1 | ≥ 12.10 | AppIndicator typelib (tray icon) |
systemd | ≥ 240 | User units for watcher/poll service |
1. Unpack and run the installer
# 1. Extract the distribution package
tar -xzf cdsync-linux-x86_64.tar.gz
cd cdsync-*/
Drop your license.lic in alongside (same folder). Then:
# 2. Run the installer (auto-detects deps, sets up systemd + tray)
./cdsync install
The installer will:
- Verify
rclone(≥ 1.66) and the GTK3/AppIndicator libraries (offerssudo apt installif missing) - Confirm
rcloneand the Google Drive remote (created automatically bycdsync activate) - Interactive wizard asking for: rclone remote (numbered menu of detected remotes), local sync directory (with offer to create), poll interval, notification level. If a
config.envalready exists, you'll be asked whether to keep it, back it up & reconfigure, or start fresh - Install the binaries to
~/.cdsync/bin/cdsyncand~/.cdsync/bin/cdsync-tray(gracefully stops a running tray first to avoid copy-in-place failures) - Generate per-user systemd units (
cdsync-watcher.service,cdsync-poll.timer) - Install the tray applet autostart entry (
~/.config/autostart/cdsync-tray.desktop) - Detect the license (or offer to copy a
license.licfrom the current directory if present) - Prompt to start services and launch the tray
cdsync install again is safe — it stops the running tray,
replaces both binaries, regenerates the systemd units, and re-applies any wizard
config changes. Your license.lic, OAuth tokens, and config are preserved.
2. Activate your license
# Activate with your licensed Google Drive email
cdsync activate [email protected]
- A browser window opens (or a headless URL is printed for SSH) — log in with the exact Google account listed in your license
- The license binds cryptographically to that email — any other account is rejected
- The Google Drive rclone remote is created automatically (
gdrive:, orgdrive-2:if taken) — you never runrclone config - Subsequent runs work offline for up to 30 days
cdsync activate can be run from any directory —
if it detects you're invoking it outside ~/.cdsync/bin/, it will offer to
self-install (copy the running binary + sibling cdsync-tray to the canonical
location). Useful when you've SFTP'd the binary to a temp folder and want to activate in one step.
3. Start
cdsync start
This launches the background daemon (inotify + rclone timer) and opens the tray icon. Your local folder and Google Drive start syncing.
Systemd units (auto-generated)
~/.config/systemd/user/
├── cdsync-watcher.service # inotify daemon (Restart=on-failure, 1h delay)
├── cdsync-poll.service # oneshot bisync (fired by the timer)
└── cdsync-poll.timer # fires every POLL_INTERVAL (default 5 min)
Unit names are static (no hash suffix). The previous hash-suffixed layout is automatically removed when you run cdsync install against the new ~/.cdsync/ layout.
Updating
Download the latest package, replace cdsync and cdsync-tray, then run ./cdsync install again. The installer gracefully stops a running tray before swapping binaries (no Text file busy errors). Your license.lic, OAuth tokens, and config.env are preserved across updates. There is no auto-update — manual reinstall by design.