User guide

Install it, then connect your first cloud

From installing the service on your computer, NAS or phone to creating an account, adding cloud storage, mounting a cloud as a local disk, and on to backup, encryption and WebDAV. Read the section for the device in front of you.

The CloudDrive2 console: total capacity across the connected clouds, with entries for files, cloud storage, mounts, backups, tasks, WebDAV, API tokens and devices.

The first thing to do after installing

Open it in a browser

http://<host IP>:19798

The core service's management interface runs on 19798 — the same on Windows, Linux, macOS, Android and inside Docker. On the machine itself, use http://localhost:19798.

There is an HTTPS port too, 19799. It is off by default — turn it on and configure a certificate under Settings.

The core inside the apps listens on 29798 instead. The two are deliberately different, so a machine running both the core service and an app has no port conflict.

The whole interface is a WebAssembly application, so the browser has to support WebAssembly. One that does not shows a blank page — this is not a matter of losing a few features. Any recent Edge, Chrome, Safari or Firefox on a computer works, as do the mainstream browsers on phones and tablets. Internet Explorer does not, and neither do most of the browsers built into TVs, set-top boxes, e-readers and cars — on those, open it from a phone or a computer instead, or install the app for that platform.

Step one

Installing and running

This section covers installing the core as a background service — on a computer, a NAS or a router. The apps for phones, TVs and headsets carry the same core and need no server of their own; see On phones, TVs and headsets.

Windows
  1. Get the installer for your architecture (x64 or Arm64) from the download page.
  2. Run the installer and follow the on-screen prompts.
  3. When it finishes, a CloudDrive2 shortcut appears on your desktop. Double-click it, or just open http://localhost:19798 in a browser.
Last full install older than 1.0.7? Run the installer again

1.0.7 raised the bundled WinFSP driver to 2026 beta1, fixing CVE-2026-3006 in older WinFSP builds. The in-app OTA updater only replaces CloudDrive2's own files and never touches the driver.

So what matters is not the version you are on now, but the version you last ran a full installer for. If that was older than 1.0.7, your driver is still the old one even if OTA has since carried you to the newest release — download the full installer, run it again, and restart when the wizard asks you to. If you cannot remember, just run it; there is no harm in doing so.

If your last full install was 1.0.7 or later, the driver is already the fixed one and the in-app updater handles every upgrade from there.

It runs as a Windows service

The core service registers itself as a Windows system service, starts with the machine and keeps running whether or not anyone is logged in. The Windows app is different — an ordinary application that starts with your account.

The installer, the service and the WinFSP driver are all code-signed, and some antivirus products still block one of them: the service will not start, the mounted drive never appears, or the app is closed outright. When that happens, add CloudDrive2's install directory and WinFSP to your antivirus allowlist. If the console will not open at all, common problems has the full checklist.

To reach it from another machine on the network, Windows Firewall has to allow the port: 19798 for the core service (plus 19799 if you enable HTTPS), and 29798 for the app. Windows usually prompts once during installation; if that prompt was dismissed, add it under Windows Security → Firewall & network protection → Allow an app through firewall.

Windows 7 is no longer supported — the TLS stack and runtime it ships with cannot meet what the current version needs. Older machines can run the Linux or Docker build instead.

Linux, generic
  1. Check that your kernel supports FUSE by looking for the /dev/fuse device. Without FUSE support you cannot mount clouds as local directories.
  2. To run CloudDrive2 as a non-root user, install fuse3 the way your distribution's manual describes, confirm that the fusermount3 command runs, then edit /etc/fuse.conf and remove the leading # from the user_allow_other line.
  3. Download the archive for your CPU architecture from the download page.
  4. Open a terminal and change into the directory holding the archive.
  5. Extract it:
    tar zxvf clouddrive-2-linux-$ARCH-$VERSION.tgz
  6. Change into the extracted directory and run:
    ./clouddrive
  7. You can add clouddrive to your system's startup items or register it as a system service. See your distribution's documentation for how.
Arch Linux
  1. Arch Linux and its derivatives can install from the AUR package or a third-party repository:
    yay -Syu clouddrive
  2. Start clouddrive with systemd and enable it at boot:
    # as root
    systemctl enable --now clouddrive.service
    
    # as your user
    systemctl --user enable --now clouddrive.service
  3. Check that clouddrive is running:
    # as root
    systemctl status clouddrive.service
    
    # as your user
    systemctl --user status clouddrive.service
  4. Open the management interface in your default browser:
    # recommended
    xdg-open http://localhost:19798
    
    # IPv4
    xdg-open http://127.0.0.1:19798
    
    # IPv6
    xdg-open http://[::]:19798
  5. If the page loads slowly or stutters, open it in your browser's private or incognito window.
  6. Mounting a local disk after signing in asks for a UID and GID:
    # current user
    id -u
    id -g
    
    # another user
    id -u username
    id -g username
  7. The AUR package's local disk mount point: /media/clouddrive.
  8. The AUR package's WebDAV mount point: /media/clouddrive-dav. This one needs the davfs2 package.
  9. Put your WebDAV username and password into /etc/davfs2/secrets, for example:
    cat << EOF | sudo tee -a /etc/davfs2/secrets
    # personal webdav, application password
    /media/clouddrive-dav user@email.com  mypassword
    EOF
  10. Start clouddrive-dav with systemd and enable it at boot (as root):
    systemctl enable --now clouddrive-dav.service
  11. Check that clouddrive-dav is running (as root):
    systemctl status clouddrive-dav.service
macOS

With Homebrew (recommended)

  1. Make sure Homebrew is installed.
  2. Install macFUSE before running CloudDrive2, and approve its kernel extension in System Settings — an Apple silicon Mac needs a trip to Recovery first, described in letting macFUSE through. Homebrew can install it too:
    brew install --cask macfuse
  3. Install CloudDrive2:
    brew tap cloud-fs/clouddrive2
    brew install clouddrive2
  4. Start CloudDrive2:
    brew services start clouddrive2
    This creates a background service that starts again the next time you log in.
  5. Open http://localhost:19798 in a browser to reach the management interface.
  6. Stop CloudDrive2:
    brew services stop clouddrive2
  7. Uninstall CloudDrive2:
    brew services stop clouddrive2
    brew uninstall clouddrive2
  8. Upgrade CloudDrive2:
    brew services stop clouddrive2
    brew update
    brew upgrade clouddrive2
    brew services start clouddrive2

Manual install

  1. Install macFUSE first and approve it as described in letting macFUSE through.
  2. Download the archive for your CPU architecture from the download page.
  3. Open a terminal and change into the directory holding the archive.
  4. Extract it:
    tar zxvf clouddrive-2-macos-$ARCH-$VERSION.tgz
  5. Change into the extracted directory and run:
    ./clouddrive
  6. You can add clouddrive to your login items or register it as a system service. See the macOS documentation for how.

For what differs between the Mac App Store build and the direct download, see CloudDrive2 for macOS.

Android
  1. Take the .apk from the "core service" section of the download page, install it and open it. It carries its own web management interface.
  2. An un-rooted device cannot mount clouds into the local file system. Everything else still works, including multi-cloud backup and the WebDAV service. Without root you can also go through Android's Storage Access Framework, which lets any SAF-aware app read and write files in CloudDrive2 directly.

The CloudDrive2 app with the player is a different package — from Google Play or the app section of the download page.

Docker, NAS, Synology and QNAP

To run it in a container on a NAS or server, the image is cloudnas/clouddrive2. The host needs shared mount propagation, which many systems already have. How to check it, how to enable it when needed, and a configuration you can copy as it stands are all in the Docker deployment guide.

The third-party Synology and QNAP packages are on the download page.

On fnOS use the native package, not Docker

Mounting over FUSE inside a container runs into fnOS's namespace limits and fails with mount syscall failed in pid 1 namespace. The native fpk package does not have that problem; it is on the download page.

Step two

Connect your first cloud

Register, sign in, add cloud storage. All three happen in the management console in your browser, and the flow inside the apps is the same.

  1. Register

    The first time you run CloudDrive2, click Register in the top right corner and enter your email address and a password. A verification email goes out to that address; follow the instructions in it, and you are taken to the sign-in page.

  2. Sign in

    Click Sign in in the top right corner and enter the same email address and password. If the account is verified, you land on the CloudDrive2 home page.

  3. Add cloud storage

    Go to Cloud Storages, click Add Cloud Storage, pick your provider from the list, and either scan the code or fill in the account details. Once it verifies, that cloud appears in My Files alongside the others.

A free account connects 2 clouds and creates 1 local mount; core membership lifts both limits. See pricing for what each tier includes.

Step three, optional

Mounting a cloud as a local disk

Once it is mounted, a cloud is an ordinary disk in Explorer, in Finder and on the command line. Any program can open the files in it directly, with no download first. This is where CloudDrive2 parts company with a cloud provider's own client.

Creating a mount point

  1. Go to Mount Points and click Add Mount Point.
  2. Mount Name: anything you like; it is a display name.
  3. Source Directory: the directory to expose. It can be a cloud's root or any folder inside it; / mounts every connected cloud at once.
  4. Mount Point: a drive letter on Windows, an empty directory on Linux and macOS.
  5. Options: Read Only guards against accidental writes and deletions; Auto-mount on startup brings it back up with the service.
  6. Linux and macOS also have Advanced Settings for the UID, GID and permissions (0755 by default), which decide who owns the mounted files.

What each system needs

System Prerequisite What goes in Mount Point
Windows WinFSP — the Mount Points page has a one-click install button, once per machine A drive letter, e.g. X:
macOS macFUSE and its kernel extension approval; Apple silicon needs a trip to Recovery first An empty directory
Linux FUSE support in the kernel; running as non-root also needs fuse3 and user_allow_other An empty directory
Docker The container needs FUSE privileges, and the mount path needs shared propagation to be visible on the host A directory inside the container
Android Local mounting requires root An empty directory

On Windows a mount can be presented as a Local or a Network drive. Some programs only recognise one of the two, so if a mount fails or an application cannot see it, try the other type.

Mounted inside Docker but invisible on the host?

That is almost always shared mount propagation. Start the container with --cap-add SYS_ADMIN --device /dev/fuse --security-opt apparmor:unconfined (or plain --privileged), and map the mount directory with :shared. The full configuration is in the Docker deployment guide.

More about local mounting

The apps

On phones, TVs and headsets

The app is not a remote control for the server above. It carries the whole core: install it, sign in, add a cloud, done — no server needed. If you already run one, the app can connect to it instead.

  • On its own

    Register or sign in to the same CloudDrive account inside the app, then add cloud storage — exactly the steps you would take in a browser. A phone with no server anywhere can still browse, play and back up.

  • Against an existing server

    If CloudDrive2 already runs on your NAS, create an API token there and add that server in the app using its address and the token. Offline downloads, search and cross-cloud copying are then available from the app directly.

  • Membership and App Pro

    Core membership and App Pro both live on your CloudDrive account, not on a device and not in a store. Whichever platform you bought on, signing in on another one finds them already unlocked.

Installing the apps

What each platform can do and what it requires is on the apps pages.

Everyday use

What you will reach for next

Managing files

My Files puts every connected cloud side by side. Uploading, downloading, renaming, moving, deleting and creating folders all work across clouds, not just within one. There are list, grid and waterfall views, with sorting, search and multi-select.

Once a cloud is mounted as a local disk, the same files behave like local files in Explorer, in Finder or in any other program.

Deleting cannot be undone

Deleting a file in CloudDrive2 deletes the real file on the cloud storage. Once it is gone it may not be recoverable, so check before you act.

Copying between clouds

Drag a file from one cloud to another the way you would within a single cloud. The hash is read from the source; if the destination uses the same hash algorithm and the hash is already known there, the copy is instant — the server just records a pointer to data it already holds and nothing moves. If the algorithms differ or the hash is not found, the data streams cloud to cloud without touching your local disk, at whatever your bandwidth allows.

You run it from My Files: select the files or folders, click Move/Copy to…, choose a destination folder in the directory tree and click Copy. The task runs in the background, so you can walk away; progress shows on the Tasks page, under both Copy Tasks and Upload Tasks.

Fast cross-cloud copying is a core membership feature. The slow path is not a fault — it means the destination has nothing to match against.

On the Cloud Storages page, Add Cloud StorageLocal Folder under Local Storages adds a directory from the machine, and a copy can use it as the source or the destination. As long as one end is a local folder — pulling files down from a cloud, or pushing local files up — free accounts can copy too, with no membership needed.

Copying into a local folder appears under Upload Tasks. Nothing is backwards: CloudDrive2 runs every copy as one pipeline — read the source, write the destination — and the writing half is always called an upload.

More about cross-cloud copying

Backup
  1. Go to Backups, click Add Backup, and use the wizard to pick a source directory and one or more destinations. Local folders and cloud directories can each be either.
  2. Set the file filter rules (by extension or by name, applied to files and folders independently) and the completion rules — deleting the source file after upload, for instance.
  3. Backup works from real-time filesystem monitoring: a change in the source propagates as it happens. You can also schedule full scans to reconcile periodically.
Why a deletion did not propagate

There are two paths. A deletion caught by real-time monitoring is unambiguous, and is applied to the destination according to your delete rule. A full scan can only observe "present in the destination, absent in the source" — which may not be a deletion at all, but a file moved elsewhere, and acting on it is risky. So whether a full scan may delete is left to you, in its "sync deletions" option.

That option matters most when the source is itself a mounted cloud, where real-time delete events do not always fire.

Full scans are resource-hungry. Backup Resource Limits sets the maximum number of concurrent scans (1 by default) and high and low water marks for the upload queue, so scanning a large tree does not pile up thousands of upload tasks.

Encrypted folders

Right-click any cloud directory and choose Create Encrypted Folder, then set a password. Files you put inside are encrypted locally — names and contents both — before they are uploaded, so the provider stores only ciphertext. Once unlocked, reading and writing is no different from an ordinary folder.

Lock it when you are done and the next access asks for the password again. Tick Save Password at creation and you will not have to enter it after a restart.

The password cannot be recovered

An encrypted folder's password can neither be changed nor recovered. Forget it and the contents are permanently inaccessible — to us as well.

More about the encrypted filesystem

The WebDAV service

CloudDrive2 serves every connected cloud back out over WebDAV, so any WebDAV-capable software can connect to it.

  • Server address: http://<ip>:19798/dav
  • Username: the email address you sign in with — or just the part before the @.
  • Password: the password you sign in with.

Core membership also lets you create separate WebDAV users on the WebDAV page, each scoped to a directory and each read-only or not, so you never have to hand out the main password.

More about WebDAV

API tokens

Third-party applications reach CloudDrive2 with an API token rather than your account password. On the API Tokens page, click Create Token; you can scope it to a root directory, give it an expiry, and set permissions per operation — file read, write and modify, system operations, cloud storage operations and account operations, each with its own sub-items.

A token for the Emby / Jellyfin plugin needs two extra boxes ticked

Push Messages and Get Mounts are off by default and have to be ticked by hand. Without them the plugin connects, reports healthy, and never updates the library.

The Emby and Jellyfin companion plugin

Offline downloads

In a supported cloud's directory, choose Offline download and hand a magnet link or a .torrent file to the provider to fetch. It lands directly in the cloud, using none of your bandwidth and none of your disk. A .torrent can be dragged straight in — it is parsed into a magnet link and added.

115 also has an offline download manager for copying links, deleting tasks, restarting them, or clearing them in bulk by status.

Account

Account and security

The cloud storage credentials held on our servers are encrypted with your password, and we do not store that password. Everything in this section follows from that.

Forgotten password

Click Reset on the sign-in screen and follow the instructions — a reset code goes to your email address.

A reset clears the stored account information

Resetting clears the cloud storage credentials held on our servers and resets your password. You will have to add your cloud storage again afterwards. Your membership is unaffected.

Changing your email or password

Both live on the Profile page. Changing your email sends a verification code first and takes effect once you enter it. Changing your password does not disturb the cloud storage you have already added.

Accounts signed in through Xunlei or a partner device can change only the parts the system allows; the page spells out which.

Two-factor authentication

Turn it on from the Profile page. Scan the code with any TOTP authenticator app; once it is bound you get a set of recovery codes. Keep them somewhere separate — they are how you sign in if you lose the authenticator.

If the authenticator and the recovery codes are both gone

On the sign-in screen choose "Lost your authenticator? Disable 2FA by email". A verification code goes to the account's email address; that code plus your password turns two-factor off, and you sign in with email and password as before. The code is valid for 30 minutes.

Detaching a device

An account registered automatically by a partner device can be detached from that device once you have changed the email address and password. If a device is lost or sold, detaching it keeps the account out of someone else's hands.

An offline device may still hold saved credentials, so change your password once more after detaching to close that path for good.

Troubleshooting

Common problems

The ones we are asked about most, answered as we answered them on GitHub issues.

Behind a reverse proxy, the interface hangs on "Connecting…"

The cause is the reverse proxy buffering the PushMessage gRPC-Web stream: the response headers never arrive, so the front end waits forever, and the dashboard's task count stops refreshing along with it. Turn buffering off for CloudDrive2's location and raise the read timeout:

location / {
    proxy_pass http://127.0.0.1:19798;   # your CD2 HTTP port
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # the important part: a streaming gRPC-Web call must not be buffered
    proxy_buffering off;
    proxy_request_buffering off;
    chunked_transfer_encoding on;
    proxy_set_header Connection "";

    # PushMessage is a long-lived connection, so the read timeout has to be generous
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
}
macOS says libfuse.2.dylib is missing

macFUSE is not installed. Mounting depends on it for libfuse.2.dylib. Install it from macfuse.github.io, then approve its kernel extension as described in letting macFUSE through — an Apple silicon Mac also needs a trip to Recovery.

Adding Google Drive says "This app has been blocked"

Use your own Google OAuth credentials and the block does not apply. In the Google Cloud Console, create a project, enable the Google Drive API, configure the OAuth consent screen and add yourself as a test user, then create an OAuth client ID for its client_id and client_secret. Enter those when you add Google Drive in CloudDrive2, and the authorisation runs through your own application.

The 115 QR scan succeeds but the cloud never appears

The old private "115" interface has been retired: the scan succeeds but the connection cannot be made. Switch to 115open — remove the existing 115, add 115open, then rename it back to the old name. The mount path stays the same, so your existing mount points and backups need no changes.

If instead you get a network error, the machine probably cannot reach the 115 or Tianyi sign-in endpoint. Check DNS and any proxy, then try again.

Nothing answers on 19798 on Windows

Work through these in order — most cases give themselves away at the first step.

  1. Check the service is running. Press Win+R, open services.msc and find CloudDrive2 Service (service name CloudDrive2). Status should be Running and Startup type should be Automatic. If it is stopped, right-click and start it; if the startup type has been changed to Manual or Disabled, put it back to Automatic under right-click → Properties, or it will not come back after a reboot. The command line shows the same thing:
    sc query CloudDrive2
  2. Running, but unreachable from another machine. That is Windows Firewall not allowing the port — 19798 for the core service, plus 19799 if you enabled HTTPS. If http://localhost:19798 works on the machine itself and nothing else can reach it, this is almost always why.
  3. The service will not start, or stops right after starting. Usually antivirus. Add CloudDrive2's install directory and WinFSP to the allowlist and try again.
Antivirus flags the installer

It is a false positive. The installer is code-signed, and the is-XXXX.tmp file being flagged is just Inno Setup's temporary unpacking file, misjudged by a heuristic engine. Add the installer and its target directory to your antivirus allowlist, and report the false positive to the vendor.

It can also be blocked after installation: the service does not start, the mounted drive never appears, or the app is closed outright. Signatures do not stop a heuristic engine, so add CloudDrive2's install directory and WinFSP to the allowlist as well.

It will not install or sign in on Windows 7

Windows 7 is no longer supported: the TLS stack and runtime libraries it ships with cannot meet what the current version requires for secure connections and its dependencies. Use Windows 10 or 11; if the hardware has to stay, consider the Linux or Docker build instead.

Still stuck?

Bugs and feature requests are best filed as GitHub issues, where they stay on the record. Someone is usually around in the Telegram group, or write to us directly.