What is rclone?
rclone is a command-line manager for files on cloud storage. It speaks to more than seventy providers, S3 and everything S3-compatible, Google Drive, Dropbox, OneDrive and SharePoint, Backblaze B2, Google Cloud Storage, Swift, SFTP, FTP, WebDAV and plain HTTP, with one consistent set of commands. It copies, syncs and moves with checksums, mounts any remote as a filesystem, serves one over half a dozen protocols, and transfers directly between two remotes without staging the data locally.
⚡ Key Features of rclone
☁️ Seventy-Plus Backends
S3-compatible object stores, consumer drives, enterprise suites, and the plain protocols (SFTP, FTP, WebDAV, HTTP) behind one command set.
🔁 Sync With Checksums
copy, sync and move compare size, time and hashes, and --dry-run shows exactly what would change before anything does.
🗂️ Mount as a Filesystem
rclone mount puts a remote under a directory with a VFS cache, so ordinary programs can read and write it.
🌐 Serve It Back
rclone serve exposes any remote over HTTP, WebDAV, SFTP, FTP, DLNA, NFS or an S3 endpoint, handy for devices that only speak one protocol.
🔐 Client-Side Encryption
The crypt overlay encrypts file contents and names before upload, and the config file with your tokens can itself be encrypted.
⚡ Built for Bulk
Parallel transfers and checkers, bandwidth timetables, filters, and server-side copies that never pull the bytes through your machine.
apt upgrade keeps you on the latest version.
📦 Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh and Zed; rclone is not one of them, so the repository above is the only way to get it today, ask and it can be enrolled.
🧩 About the extrepo option. extrepo is Debian's own tool for external repositories: it writes the sources file and installs the signing key for you, checking the key against signed metadata first. This repository is registered with it as griffo, and the always-free mirror as griffo-free, so on Debian (bookworm, trixie, forky and sid) the commands above are the whole setup.
extrepo sets up the sources file and the key only, so a subscription's credentials still go in /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu is not covered, because extrepo publishes metadata for Debian suites only: there, use the sudo or root commands.
Step 2: Install rclone
# Install latest rclone
sudo apt install rclone
# Verify installation
rclone version# Install latest rclone
apt install rclone
# Verify installation
rclone versionStep 3: Configure your first remote
# An interactive wizard: pick a provider, authorise, name the remote
rclone config
# List the remotes you have configured
rclone listremotes
# Look around one of them
rclone lsd mydrive:
# The manual page and bash, zsh and fish completions ship with the package
man rclone🎯 Basic Usage Examples
Copying and syncing:
# Copy a folder up, with a progress display
rclone copy -P ~/Documents mydrive:Documents
# Make the destination match the source, dry run first, always
rclone sync --dry-run ~/site remote:bucket/site
rclone sync -P ~/site remote:bucket/site
# Straight from one cloud to another, without staging locally
rclone copy s3:bucket/data b2:backup/data
# Verify that what arrived matches what you sent
rclone check ~/site remote:bucket/siteMounting and serving:
# Mount a remote as a filesystem (FUSE required)
sudo apt install fuse3
rclone mount mydrive: ~/mnt/drive --vfs-cache-mode writes
# Serve a remote to the LAN over HTTP or WebDAV
rclone serve http remote:public --addr :8080
rclone serve webdav remote:docs --addr :8081
# Explore what is using space, ncdu-style
rclone ncdu remote:
# Just the total size of a bucket
rclone size remote:bucket# Mount a remote as a filesystem (FUSE required)
apt install fuse3
rclone mount mydrive: ~/mnt/drive --vfs-cache-mode writes
# Serve a remote to the LAN over HTTP or WebDAV
rclone serve http remote:public --addr :8080
rclone serve webdav remote:docs --addr :8081
# Explore what is using space, ncdu-style
rclone ncdu remote:
# Just the total size of a bucket
rclone size remote:bucketTuning, filtering and encrypting:
# More parallelism for many small files
rclone sync -P --transfers 8 --checkers 16 src: dst:
# A bandwidth timetable, so backups do not eat the working day
rclone sync -P --bwlimit "08:00,512k 23:00,off" ~/photos remote:photos
# Filters instead of copying everything
rclone copy src: dst: --exclude "*.tmp" --filter-from filters.txt
# Wrap an existing remote in client-side encryption
rclone config create secret crypt remote=mydrive:vault🔧 Tool Integrations
rclone is the piece other tools lean on:
- FUSE:
fuse3(orfuse) turnsrclone mountinto a real directory for programs that only understand files - systemd: a unit per mount or per
serve, and a timer for the nightlysync, is the usual way to run it unattended - Backup tools: restic and friends speak to rclone as a remote, which instantly gives them every backend rclone supports
- Remote control:
rclone rcd --rc-web-guiexposes an HTTP API and a browser UI for long-running transfers - Config file:
~/.config/rclone/rclone.confholds the remotes and can be encrypted, so credentials never sit in plain text
🚀 Why Choose deb.griffo.io?
- Official Debian: ships rclone, but the version frozen into the current stable release is years of backends, subcommands and API fixes behind upstream
- Upstream install script: current, but it drops a binary into
/usr/binoutside apt and then wantsrclone selfupdateto keep it there - Snap: confined, which makes FUSE mounts and paths outside your home more work than they should be
- deb.griffo.io: latest version with automatic updates
- ✅ Backends That Still Work: the newest release, with the provider fixes and new backends that the frozen archive version never received
- ✅ apt Keeps It Current: no
selfupdate, no install script writing into/usr/binbehind the package manager's back - ✅ Automatic Updates: packages updated within hours of upstream releases
- ✅ Complete Package: the official upstream binary plus the
rclone.1man page and bash, zsh and fish completions - ✅ Four Architectures: amd64, arm64, armhf and i386, so the NAS and the Raspberry Pi get the same rclone as the workstation
- ✅ Multi-Distribution: works on Bookworm, Trixie, Forky and Sid
- ✅ Easy Maintenance: standard apt commands for updates
📦 Package Build Repository
The Debian packages are automatically built and maintained in this GitHub repository:
- ☁️ rclone-debian - Latest release builds
🔗 Related Packages
Also available from deb.griffo.io:
- Garage - Self-hosted S3 storage to sync into
- DuckDB - Query Parquet and CSV straight from object storage
- Yazi - Terminal file manager for the local side
- Zellij - Multiplexer to keep a long transfer running
💝 Support This Project
If this repository saves you time and effort, please consider supporting it!