Skip to content

Image of DockServer

Join DockServer on Discord Total Releases Downloaded from GitHub Latest Official Release on GitHub GNU General Public License


Automated uploader.


Each Uploader instance needs his own Project/Keys, never use keys from other projects.


  • Completely automated.
  • Clean web interface.
  • Support for encrypted Team Drives.
  • Support for multiple Team Drives.
  • Supports all rclone remotes.
  • Bypass daily upload limit of 750GB via Service Accounts.
  • Support for Autoscan.
  • Full support for Rclone's bandwidth limit.
  • Notifications via Apprise.
  • Variable concurrent uploads.
  • Dropbox
  • Settings are refreshed for each upload. No need to restart the container after making a configuration change!
  • Start and stop on demand via the container or web interface (active uploads are not considered when pausing via the web interface).


  • Change time formatting.



  • No support for Google Drive.
  • If using multiple Team Drives for Uploader, FOLDER_DEPTH must be identical across all drives.
  • Bandwidth limit is per upload IE - If you have TRANSFERS=2 and BANDWIDTH_LIMIT=20M, the maximum total upload speed would be 40MiB.
  • Bandwidth cannot be changed for any active uploads.

Exclude files from being uploaded

rclone.exclude is located here: /opt/appdata/system/uploader/rclone.exclude


  • if you donĀ“t want that srt files are being uploaded, you have to add .*\.srt$ to the file.
  • You can exclude folders to, examples are in the file, because we already exclude certain folders.


All settings can be found here: /opt/appdata/system/uploader/uploader.env

If you use Dropbox make sure to name them in rclonegdsa.conf like this: [DB] & [DBC], you also have to set the filename_encoding to base32768.


Setting Default Description
PUID 1000 PGUID to be used by Uploader.
PGID 1000 PGID to be used by Uploader.
TIMEZONE UTC Timezone to be used by Uploader.


Setting Default Description
HASHPASSWORD hashed If using drive.csv or uploader.csv and encrypted Team Drive, this must be set.Options:hashedplain
GDSA_NAME encrypt Here you can set the name of the crypt folder for Google.
DB_NAME encrypt Here you can set the name of the crypt folder for Dropbox.
DB_TEAM true With DB_TEAM = false you can activate the usage of the private Dropbox folder.

You have 2 options for this value HASHPASSWORD.

  1. hashed this tells uploader that you have the encrypted password in your drive.csv or uploader.csv.

  2. plain this tells uploader that you have the plain password in your drive.csv or uploader.csv.

You can leave the value as it is if you dont use Multi Drive uploading.


Setting Default Description
BANDWIDTH_LIMIT null The maximum upload speed per upload. Please refer to the Rclone documentation before changes are made.
GOOGLE_IP Set hardcoded IP for this does prevent Error 429. You can specify multiple IPs with comma separated.
PROXY null Set HTTP or SOCKS5 Proxy for RClone. Rclone documentation for details.
LOG_LEVEL INFO Please refer to the Rclone documentation before changes are made.
DLFOLDER /mnt/downloads Path to your download directory.
TRANSFERS 2 The maximum number of concurrent uploads.


Setting Default Description
DRIVEUSEDSPACE null Amount of local storage, in percent, to use before uploading any files. Example:DRIVEUSEDSPACE=80 will wait until the drive space used reaches 80% before uploading files.
FOLDER_DEPTH 1 If your movie/show folders are in root of drive, you can leave this to 1, if you have them in a subfolder you have to change the depth value, Example media/tvshow/showname would result in FOLDER_DEPTH=2 (if you use multiuploader, you need the same DEPTH/folder structure on all drives where you upload to).IMPORTANT: This setting should only be used if you know what you are doing. By changing the value, you accept all risks that come with it.
FOLDER_PRIORITY null Add folders you like to prioritize - Example: tv,movies (tv first, then movies, then all others not in the list).
MIN_AGE_UPLOAD 1 How old a file should be, in minutes, before it is uploaded. Example:MIN_AGE_UPLOAD=10 will wait until a file is 10 minutes old before it is uploaded.


Setting Default Description
VFS_REFRESH_ENABLE true Whether or not the VFS cache refresh should be send to the Mount Docker. Options:truefalse
MOUNT mount:8554 The local address of your mount instance.


Setting Default Description
LOG_ENTRY 1000 How many log entries should be retained in the local database.
LOG_RETENTION_DAYS null How many days of log entries should be kept. If LOG_RETENTION_DAYS is defined, then LOG_ENTRY is ignored.


Autoscan is optional, people with feeders may use it to trigger scan after upload is completed.If you enable it in uploader, you can disable it in the *arrs.

Setting Default Description
AUTOSCAN_URL null Remote or local path to Autoscan. Examples:Remote: AUTOSCAN_URL=https://autoscan.domain.comLocal: AUTOSCAN_URL=http://autoscan:3030
AUTOSCAN_USER null Autoscan username.
AUTOSCAN_PASS null Autoscan password.


Apprise has been integrated into Uploader and is defaulted to format all notifications in Markdown. Please refer to the Apprise documentation for more information.

Image of Notification

Setting Default Description
NOTIFICATION_URL null The notification URL to be passed to Apprise. Discord examples:{WebhookID}/{WebhookToken}discord://{WebhookID}/{WebhookToken}/discord://{user}@{WebhookID}/{WebhookToken}/
NOTIFICATION_LEVEL ALL What notifications should be sent to NOTIFICATION_URL. Options:ALL - Send notification for all uploadsERROR - Send notification for only errorsNONE - Do not send any notifications
NOTIFICATION_SERVERNAME null What to display on the notification, after "Uploader - ". null will default to "Uploader - Docker". Anything else will only replace "Docker".Examples:NOTIFICATION_SERVERNAME=null results in "Uploader - Docker"NOTIFICATION_SERVERNAME=My Awesome Server will result in "Uploader - My Awesome Server"


Striparr is optional and needs the Striparr Docker to be deployed on the same System. The files will not be uploaded until they have been successfully striped.

Setting Default Description
STRIPARR_URL null The Striparr URL. Example: STRIPARR_URL=http://striparr:40000


Setting Default Description
LANGUAGE en Language to use. Options:en - Englishde - German

Multi-Drive Uploader

If you would like to upload to multiple Team Drives, you need to create a file named uploader.csv in /opt/appdata/system/servicekeys/. You can find a sample file in opt/appdata/system/uploader/sample. For each Team Drive, add a line in the uploader.csv file.

IMPORTANT: If "LOCAL_FOLDER_NAME" contains a hyphen, do not include it.

Unencrypted Team Drives example:

  • 2 = TEAM_DRIVE_ID -> (0AFsVct4HDKPrUk9PVvvvvvvvv)

Important: Each line in csv is one Local Folder



Encrypted Team Drives example:

  • 1 = LOCAL_FOLDER_NAME -> (Movies)
  • 2 = TEAM_DRIVE_ID -> (0AFsVct4HDKPrUk9PVvvvvvvvv)
  • 3 = PASSWORD - -> (72nsjsiwjsjsu)
  • 4 = PASSWORD SALT - -> (72nsjsiwjsjsu)

Important: Each line in csv is one Local Folder


TV SHows|0AFsVct4HDKPrUk9PVxxxxxxxxxx|72nsjsiwjsjsu|72nsjsiwjsjsu
TV 4K|0AFsVct4HDKPrUk9PVzzzzzzzzzz|72nsjsiwjsjsu|72nsjsiwjsjsu

IMPORTANT: All Keys must be known on all Team Drives! You also have to add all folders where you want to upload files (even backup folders).

Other Uploader Features

Instead of using /opt/appdata/system/servicekeys/rclonegdsa.conf, you can now use a drive.csv where you can put the default Team Drive to upload in. To make use of this feature, you need to create a file named drive.csv in /opt/appdata/system/uploader/.

Unencrypted Team Drives

  • 1 = TEAM_DRIVE_NAME -> (uploader)

Important: Each line in csv is one tdrive



Encrypted Team Drives

  • 1 = TEAM_DRIVE_NAME -> (uploader)
  • 3 = PASSWORD - HASHED OR PLAIN -> (72nsjsiwjsjsu)
  • 4 = PASSWORD SALT - HASHED OR PLAIN -> (72nsjsiwjsjsu)

Important: Each line in csv is one tdrive




Kindly report any issues on GitHub or Discord:

  • Join our Discord: for Support
Back to top