-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
Pre-built packages bundle both the desktop UI and the sync daemon — there is nothing extra to install or configure separately. Just install the package for your platform and you are ready to go.
Running on a server or NAS? Skip this page. See Docker for container-based deployment, or Quadlet for rootless systemd-managed containers. This page covers the desktop app only.
An interactive script detects your distro and downloads the right package automatically:
curl -fsSL https://raw.githubusercontent.com/ciberkids/cloud-drive-sync/main/install.sh | bashThe script installs the package, enables the systemd user service, and warns you if ~/.local/bin is not on your PATH. For a manual install, follow the platform-specific steps below.
# Download the latest .deb from the releases page
# https://github.com/ciberkids/cloud-drive-sync/releases/latest
# Then install it:
sudo dpkg -i cloud-drive-sync_*.deb
sudo apt-get install -f # pulls in any missing dependencies
# Enable the daemon to start automatically on login
systemctl --user enable --now cloud-drive-sync-daemon
# Launch the desktop UI
cloud-drive-sync-uiTip: You can also install directly from the command line using the
ghCLI:gh release download --repo ciberkids/cloud-drive-sync --pattern '*.deb' --dir /tmp sudo dpkg -i /tmp/cloud-drive-sync_*.deb sudo apt-get install -f
# Download the latest .rpm from the releases page
# https://github.com/ciberkids/cloud-drive-sync/releases/latest
# Then install it:
sudo rpm -U cloud-drive-sync-*.x86_64.rpm
# Enable the daemon to start automatically on login
systemctl --user enable --now cloud-drive-sync-daemon
# Launch the desktop UI
cloud-drive-sync-uiTip: Using the
ghCLI:gh release download --repo ciberkids/cloud-drive-sync --pattern '*.rpm' --dir /tmp sudo rpm -U /tmp/cloud-drive-sync-*.x86_64.rpm
No installation or root access required — download and run directly:
# Download the latest AppImage
gh release download --repo ciberkids/cloud-drive-sync --pattern '*.AppImage' --dir ~/bin
chmod +x ~/bin/Cloud.Drive.Sync_*.AppImage
# Run it
~/bin/Cloud.Drive.Sync_*.AppImageOr download manually from the releases page, make it executable, and double-click it in your file manager.
The AppImage includes the daemon and starts it automatically when no running daemon is detected. No systemctl setup is needed.
# Download the Flatpak bundle
wget https://github.com/ciberkids/cloud-drive-sync/releases/latest/download/cloud-drive-sync.flatpak
# Install for the current user (no root needed)
flatpak install --user cloud-drive-sync.flatpak
# Launch
flatpak run com.cloud_drive_sync.appThe Flatpak bundles the daemon as a sidecar binary, so no separate install is needed. The daemon starts automatically when the app launches.
Download the .dmg disk image from the latest release:
- Open the downloaded
.dmgfile. - Drag Cloud Drive Sync into your Applications folder.
- Open it from Launchpad or Spotlight.
The app will ask for permission to manage files in your chosen sync folders on first launch.
Homebrew cask — coming soon:
brew install --cask cloud-drive-sync
Download the installer (.msi or .exe) from the latest release:
- Run the downloaded installer and follow the prompts.
- Cloud Drive Sync will appear in your Start menu and system tray after installation.
- The daemon runs as a background process managed by the desktop app.
Scoop — coming soon:
scoop install cloud-drive-sync
Once installed, open the app and:
- Go to Accounts and sign in to your cloud provider (Google Drive, Dropbox, OneDrive, Nextcloud, or Box).
- Go to Pairs and add a sync folder pair (local folder ↔ remote folder).
- Sync starts automatically. Check the Status dashboard to monitor progress.
For CLI usage and advanced configuration, see CLI and Daemon.
On a server or NAS with no desktop session you are not limited to the CLI — the daemon can serve the same web UI over HTTP that the desktop app shows, from its own process.
Unlike the Docker and Quadlet images, the packaged installs above do not enable it by default. The bundled systemd unit runs start --foreground with no HTTP port, so add the flag:
systemctl --user edit cloud-drive-sync-daemon[Service]
ExecStart=
ExecStart=/usr/bin/cloud-drive-sync-daemon start --foreground --http-port 8080systemctl --user daemon-reload
systemctl --user restart cloud-drive-sync-daemonThen open http://<server-ip>:8080. The bare ExecStart= is required — it clears the original value, and systemd refuses a service with two ExecStart lines.
🔑 A new install generates an access token on first start and prints it — find it with
journalctl --user -u cloud-drive-sync-daemon | grep -A3 "First run". It is stored in your config file under[http] token.
⚠️ An install that already has a config file is left alone, so it stays unauthenticated on all interfaces until you set a token yourself: runcloud-drive-sync gen-tokenand add--http-token <token>to theExecStartline — or setCDS_HTTP_TOKENin the unit, which keeps it out of the process list. Without one, anyone who can reach the port can add or remove cloud accounts, change where data syncs, and switch off delete protection. Alternatively bind it to loopback and reach it through an SSH tunnel (ssh -L 8080:localhost:8080 user@server). See Authentication.👤 For a browser, a token is awkward to type. Once a token is set you can create one account with a username and password —
cloud-drive-sync user set <name>, or Create an account on the sign-in page — and your token keeps working for scripts. Behind a TLS-terminating reverse proxy, also set[http] trust_proxy = trueso the session cookie is markedSecure. See Signing in to the web UI.
If you would rather run headless in a container, Docker and Quadlet have the HTTP UI switched on out of the box.
Cloud Drive Sync
Getting Started
Reference
Project