
Rclone
Cloud storage sync and mount — Dropbox, Google Drive, or Uloz.to with optional encryption
Overview
Rclone is a command-line program for syncing files and directories between local storage and cloud providers. QuickBox installs it per user and builds a working directory that includes cache, mount points, and scheduled upload scripts.
Rclone is not a media server or download client — it focuses on syncing, mounting, and optionally encrypting storage paths.
Key features
Three providers
Install with --dropbox, --gdrive, or --uloz. QuickBox creates the remote and builds the Media tree.
Optional encryption
Add --encrypted to create a crypt remote with a separate encryption password and salt.
Managed mounts
Systemd unit rclone@username mounts the remote with a mergerfs overlay at gmedia, dmedia, or umedia.
Scheduled uploads
A nightly cron entry runs move. at 03:12 server time and writes results to move..
When to use it
Prerequisites
- You need a per-user cloud mount (Dropbox, Google Drive, or Uloz.to) managed by QuickBox.
- You have OAuth app credentials ready (Client ID + Client Secret) or Uloz.to account details.
- You want optional server-side encryption with rclone crypt.
- You prefer uploads handled by
systemdandcronrather than custom scripts.
What you get
- Install via the dashboard (recommended) — provider, credentials, and encryption in one dialog.
- Or use the CLI:
qb install rclone --dropbox -u username. - Mount points are created under
/with cache, remote, and mergerfs paths.home/ username/ rclone - Eight per-user control operations are available after install via
qb user rclone.
Installation
Install from the Dashboard
Open App Dashboard → Package Management (/), find rclone
in the catalog (browse the File Management category or search), and click Install. The
install dialog handles everything in the browser — no manual token copying:
- Select your Cloud Provider:
- Dropbox — OAuth-based. Enter your App Key (Client ID) and App Secret (Client Secret), then click Authorize Dropbox. Your browser navigates to Dropbox’s consent page; after you approve, the dashboard redirects back and shows Authorized ✓. See Creating OAuth apps below.
- Google Drive — Same OAuth flow. Enter Client ID and Client Secret, click Authorize Google Drive. See Creating OAuth apps below.
- Uloz.to — Direct credentials (no OAuth). Enter your Uloz.to username, account password, and app token. See Generating a Uloz.to app token below.
- Pick the release channel — Stable (default) or Beta.
- Toggle Encrypt remote contents if you want server-side encryption. When enabled, enter an encryption password and a separate salt (both must be remembered — there is no recovery).
- Click Install. The dashboard streams progress and rclone appears in your service control panel when complete.
Reinstall, Update, and Remove are available from the same panel. What you see is gated by your account: admins manage any user’s apps; regular users manage their own. See App Management for the full flow and Channels & Versions for how Stable/Beta resolve.
When you click Authorize, your browser navigates away from the dashboard to the provider’s consent page — this is not a popup. After you grant access, the provider sends your browser back to the dashboard automatically and the “Authorized ✓” badge appears. Only then does the Install button become active. You must register the dashboard’s callback URL in your OAuth app first — see Creating OAuth apps.
Install from the CLI (automation)
The CLI runs the same scripts as the Dashboard and is suited to automation and scripting. The flag-driven form passes credentials non-interactively and is what the dashboard uses internally:
# Google Drive (flag-driven, non-interactive)
qb install rclone --gdrive \
--client-id <client_id> --client-secret <client_secret> \
--token '{"access_token":"...","refresh_token":"...","token_type":"Bearer","expiry":"..."}' \
-u username
# Dropbox
qb install rclone --dropbox \
--client-id <app_key> --client-secret <app_secret> --token '...' -u username
# Uloz.to (direct credentials)
qb install rclone --uloz \
--uloz-user <username> --uloz-pass <password> --uloz-app-token <token> -u username
# Add encryption to any provider
qb install rclone --dropbox ... --encrypted --enc-pass <pass> --salt-pass <salt> -u username
# Beta channel (install or update)
qb install rclone --dropbox --beta -u username
qb update rclone --beta -u username
# Lifecycle
qb reinstall rclone -u username
qb remove rclone -u usernameInstall flags
| Option | Description |
|---|---|
-u, --usernameRequired | Target QuickBox username (required). |
--dropbox | Install with Dropbox as the cloud provider. |
--gdrive | Install with Google Drive as the cloud provider. |
--uloz | Install with Uloz.to as the cloud provider (direct credentials, no OAuth). |
--client-id | OAuth App Key / Client ID (Dropbox or Google Drive only). Non-interactive install. |
--client-secret | OAuth App Secret / Client Secret (Dropbox or Google Drive only). Non-interactive install. |
--token | Pre-authorized OAuth token JSON blob. When present, QuickBox writes it directly to rclone.conf and skips the interactive rclone config reconnect step. |
--uloz-user | Uloz.to account username. |
--uloz-pass | Uloz.to account password. Stored obscured in rclone.conf. |
--uloz-app-token | Uloz.to app token (separate from account password). Generate at https://uloz.to/in-settings. |
--encrypted | Create a crypt remote over the provider remote. Requires --enc-pass and --salt-pass. |
--enc-pass | Encryption password for the crypt remote. Only valid with --encrypted. |
--salt-pass | Encryption salt for the crypt remote. Only valid with --encrypted. |
--beta | Install or update from the beta release channel. |
Full flag reference: CLI Reference.
For Dropbox and Google Drive on servers with no attached browser session, the Dashboard install path is recommended. The CLI’s interactive fallback uses rclone config reconnect which needs to open a browser to complete OAuth — that does not work over plain SSH. Either use the Dashboard install dialog (it runs OAuth in your local browser and passes the token back automatically), or pre-generate a --token JSON blob and pass it on the CLI command line as shown above.
Creating OAuth apps
Dropbox and Google Drive require you to create a developer app to get your Client ID and Client Secret. This is a one-time setup per QuickBox installation.
The redirect URI must be registered in your OAuth app settings before you click Authorize in the QuickBox dashboard. If the URI is missing or mistyped, the provider will reject the redirect with an error and the install will not complete.
Dropbox
-
Go to https://www.dropbox.com/developers/apps and click Create app.
-
Choose Scoped access, then Full Dropbox access. Give the app a unique name — Dropbox app names are globally unique across the entire Dropbox platform, so common names like
rcloneare already taken. Use something likeQuick.Box- rclone- yourname -
On the app’s Settings tab, find OAuth 2 → Redirect URIs and add:
https://<your- dashboard- domain>/ api/ packages/ rclone/ oauth/ dropbox/ callback Replace
<your-with the actual domain your QuickBox dashboard is reachable at — the same domain you open in your browser to access the dashboard.dashboard- domain> -
Open the Permissions tab on the same app settings page and enable the following scopes (these are what rclone needs to read/write files and metadata):
account_info.read files.metadata. write files.content. write files.content. read sharing.write
Click Submit at the bottom of the Permissions tab. Without these scopes enabled, rclone will fail with permission errors when you try to upload or list files even though the OAuth handshake completes successfully.
-
Copy the App key (this is your
client_id) and App secret (this is yourclient_secret) from the Settings tab. -
Paste both values into the dashboard install dialog, then click Authorize Dropbox.
Google Drive
- Go to https://console.cloud.google.com/apis/credentials — create or select a project for your QuickBox install.
- Enable the Google Drive API first. Navigate to APIs & Services → Library, search for Google Drive API, and click Enable. Without this step the OAuth handshake will succeed but every rclone API call returns a 403.
- Configure the OAuth consent screen at APIs & Services → OAuth consent screen:
- User type: Select External for most QuickBox installs (any Google account can authorize). Choose Internal only if you are a Google Workspace admin and want to restrict the app to users in your own organization.
- App information: Provide an app name (e.g.,
Quick), a User support email, and Developer contact information. These values appear on the consent screen users see during authorize.Box- rclone - Scopes: Click Add or Remove Scopes and add the three scopes rclone uses:
https://www. googleapis. com/ auth/ docs https://www. googleapis. com/ auth/ drive https://www. googleapis. com/ auth/ drive. metadata. readonly
- Publishing status — choose one path BEFORE you connect:
- Option A — Publish to production (recommended for QuickBox installs). Click Publish app. Google will warn that the
auth/scope is “sensitive” and may require verification — for a private personal-use install you can ignore the verification request. Your refresh tokens will not expire and rclone will work indefinitely. The trade-off is that during authorize the user sees an “unverified app” warning screen — proceed via Advanced → Go to (your-app-name) (unsafe).drive - Option B — Keep in Testing mode. Add yourself (and any other authorized users) under Test users. No unverified-app warning during authorize, BUT every grant expires after 7 days, after which you must run
qb user rclone -o reauth -u username(or click Re-authorize on the dashboard control card).
- Option A — Publish to production (recommended for QuickBox installs). Click Publish app. Google will warn that the
- Create the OAuth client at APIs & Services → Credentials → Create Credentials → OAuth client ID:
-
Application type: Select Web application (NOT Desktop — rclone.org’s general docs mention Desktop because rclone runs its own local listener, but QuickBox uses the dashboard as the OAuth redirect target which requires a Web application client).
-
Name: any identifier you choose (e.g.,
Quick).Box- rclone -
Authorized redirect URIs: click Add URI and enter:
https://<your- dashboard- domain>/ api/ packages/ rclone/ oauth/ gdrive/ callback -
Click Create.
-
- Copy the Client ID and Client Secret from the confirmation dialog and paste both into the dashboard install dialog, then click Authorize Google Drive.
If you chose Option A (Publish to production) above, the Google consent screen will show “Google hasn’t verified this app” during authorize. This is expected behavior for personal-use OAuth apps and does NOT mean QuickBox or rclone is unsafe — Google is warning you about YOUR OWN app, which it has no way to verify is benign without a paid review process. Click Advanced, then Go to (your-app-name) (unsafe) to proceed. After completing the authorization once, this screen will not appear again on the same browser unless you revoke access.
Both providers require HTTPS redirect URIs. Every QuickBox installation has lecert-managed SSL on its dashboard domain, so this works without any extra configuration. If you are running a local development install over HTTP, use Google’s “Testing” OAuth mode or Dropbox’s localhost exception.
Generating a Uloz.to app token
Uloz.to uses direct credentials — no OAuth flow. You need three values:
- Username — your Uloz.to account login name
- Password — your Uloz.to account password
- App token — a separate per-application token, distinct from your password
To generate an app token, log in to Uloz.to and go to https://uloz.to/in-settings (the Application tokens section). Create a new token and copy it into the dashboard install dialog or the --uloz- CLI flag.
The app token and account password are separate credentials. The app token is what rclone uses to authenticate. Your account password is also required during install because rclone needs both to set up the remote correctly.
Configuration and files
QuickBox creates a per-user config directory and a working folder with cache, mounts, and upload scripts.
Common tasks — rclone operations
Eight per-user operations are available after install. The five most common —
status, upload now, view logs, remove lock, and re-authorize — are
buttons on the rclone control card in the dashboard, so day-to-day management never
needs the terminal. The remaining three (schedule, config-, switch-) do
not yet have a dashboard control and are run from the CLI; config- and
switch- are additionally admin-gated. Run a CLI op with -u username to target a
specific user.
| Operation | What it does | Command | Dashboard |
|---|---|---|---|
| status | Show mount health, last upload time, lock state, provider, and whether encryption is active. | qb user rclone -o status -u username | ✓ |
| upload | Trigger an immediate upload via move.sh (skips the nightly cron schedule). | qb user rclone -o upload -u username | ✓ |
| logs | Tail the last 20 lines of move.log. | qb user rclone -o logs -u username | ✓ |
| remove_lock | Delete a stuck rclone.lock file so the next upload can proceed. | qb user rclone -o remove_lock -u username | ✓ |
| reauth | Re-authorize OAuth credentials for Dropbox or Google Drive, or refresh Uloz.to credentials. Run when a token has expired or been revoked. | qb user rclone -o reauth -u username | ✓ |
| schedule | View or edit the crontab time for the nightly upload. Interactive — shows current time and prompts for a new one. | qb user rclone -o schedule -u username | CLI for now |
| config-edit | Open rclone.conf in a text editor. Admin only. | qb user rclone -o config-edit -u username | CLI for now |
| switch-provider | Migrate the user's rclone setup to a different provider. Admin only. Destructive — stops services, backs up the config, removes the old remote, and creates the new one. | qb user rclone -o switch-provider -u username --dropbox --client-id <id> --client-secret <secret> --token <json> | CLI for now |
The five dashboard operations (status, upload, logs, remove_lock, reauth) and schedule can be run by the user themselves. config- and switch- additionally require admin privileges. The gate is by role, not by surface — these three are CLI-only today simply because the dashboard control card does not expose them yet.
Switching providers with switch- provider
To move a user from one cloud provider to another without reinstalling:
# Switch to Dropbox (OAuth — requires pre-authorized token)
qb user rclone -o switch-provider -u username \
--dropbox \
--client-id <app_key> \
--client-secret <app_secret> \
--token '{"access_token":"...","refresh_token":"...","token_type":"Bearer","expiry":"..."}'
# Switch to Uloz.to (direct credentials)
qb user rclone -o switch-provider -u username \
--uloz \
--uloz-user <username> \
--uloz-pass <password> \
--uloz-app-token <token>This operation stops the current rclone service, backs up rclone., removes the old remote, creates the new one, swaps the systemd unit templates, and restarts all services. A timestamped backup is saved to ~/.
Service management
Most everyday operations (status, upload now, view logs, remove lock, re-authorize) are also available through the rclone control card in the QuickBox dashboard — no terminal required. After install, the App Dashboard Storage widget also shows a Cloud Sync row with your provider, last-upload time, and a Manage button. See App Management — Storage widget for details. The CLI commands below are for terminal-based administration when you need them.
# Restart the rclone mount service
systemctl restart rclone@username
# Check mount service status
systemctl status rclone@username
# Check the Google Drive mergerfs mount
systemctl status home-username-rclone-gmedia.mount
# Check the Dropbox mergerfs mount
systemctl status home-username-rclone-dmedia.mount
# Check the Uloz.to mergerfs mount
systemctl status home-username-rclone-umedia.mount
# Clear the upload log
qb clean rclone_logs -u usernameEncryption
The --encrypted flag creates a crypt remote layered over the main remote. Files stored in the cloud are encrypted; the local mount path shows them transparently decrypted.
Key facts:
- Encryption is configured at install time only. There is no upgrade path from a plaintext install to an encrypted install — you must reinstall.
- The Encryption password (
--enc-) and the Encryption salt (pass --salt-) must both be provided and must be different from each other. Store them safely — there is no recovery if they are lost.pass - All three providers (Dropbox, Google Drive, and Uloz.to) support encryption.
- The dashboard install dialog shows the encryption fields when Encrypt remote contents is set to Yes.
# Verify encryption is active for a user
qb user rclone -o status -u username
# Look for "encrypted: yes" in the outputTroubleshooting
Confirm that rclone@username is active: systemctl status rclone@username. Also check the mergerfs mount unit for your provider (home-, home-, or home-). If the service failed on start, check journalctl -u rclone@username for the reason.
Confirm the cron entry exists: crontab -l -u username | grep move.. The default schedule is 12 3 * * *. Also run qb user rclone -o status -u username — if “lock: held” appears without an active upload, run qb user rclone -o remove_lock -u username to clear the stale lock.
If the Dropbox or Google authorization page shows a redirect_uri mismatch error, the callback URL is not registered in your OAuth app. Open your app’s settings at the provider’s developer console and add the exact callback URL:
- Dropbox: https://
- Google: https://
Double-check that you copied the full App Key and App Secret (Dropbox) or Client ID and Client Secret (Google) without trailing spaces. For Google, also confirm the Google Drive API is enabled in your project’s API Library.
If the Uloz.to remote fails to authenticate, check each credential separately. The app token and account password are different. Generate the app token at uloz.to/in-settings under Application tokens.
If you reinstall with --encrypted and the new passwords do not match the ones used originally, rclone will not be able to decrypt existing files in the cloud. The old files are not lost — reinstall again with the original passwords to restore access.
Best practices
Do
- Use only one provider flag per install:
--dropbox,--gdrive, or--uloz. - Register the callback redirect URI in your OAuth app settings before clicking Authorize.
- Store your encryption password and salt in a password manager — there is no recovery path.
- Run
qb user rclone -o status -u usernameafter install to confirm the mount is healthy. - Use
switch-to migrate between providers rather than reinstalling — it preserves the user's existing cron schedule.provider
Don't
- Do not edit systemd unit files under
/by hand.etc/ systemd/ system - Do not remove
rclone.while an upload is actively running — uselock qb user rclone -o statusfirst. - Do not attempt to add encryption to an existing plaintext install — a fresh install is required.
- Do not share the same OAuth app between multiple QuickBox users — create one app per install.
FAQ
Resources
External resources
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.
- Dedicated Support
- Feature Previews
- Community Configs
- Active Discussions