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_DEPTHmust be identical across all drives. - Bandwidth limit is per upload IE - If you have
TRANSFERS=2andBANDWIDTH_LIMIT=20M, the maximum total upload speed would be 40MiB. - Bandwidth cannot be changed for any active uploads.
rclone.exclude is located here: /opt/appdata/system/uploader/rclone.exclude
Example:
- 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.
-
hashedthis tells uploader that you have the encrypted password in yourdrive.csvoruploader.csv. -
plainthis tells uploader that you have the plain password in yourdrive.csvoruploader.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 |
142.250.74.78 |
Set hardcoded IP for www.googleapis.com 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.
| Setting | Default | Description |
|---|---|---|
NOTIFICATION_URL |
null |
The notification URL to be passed to Apprise. Discord examples:https://discordapp.com/api/webhooks/{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 |
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:
- 1 = LOCAL_FOLDER_NAME -> (TV)
- 2 = TEAM_DRIVE_ID -> (0AFsVct4HDKPrUk9PVvvvvvvvv)
Example:
TV|0AFsVct4HDKPrUk9PVvvvvvvvv
TV4K|0AFsVct4HDKPrUk9PVxxxxxxxxxx
Movies|0AFsVct4HDKPrUk9PVyyyyyyyyyy
Movies4K|0AFsVct4HDKPrUk9PVzzzzzzzzzz
appbackups|0AFsVct4HDKPrUk9PVzzzzzzzzzz
music|0AFsVct4HDKPrUk9PVzzzzzzzzzzEncrypted Team Drives example:
- 1 = LOCAL_FOLDER_NAME -> (Movies)
- 2 = TEAM_DRIVE_ID -> (0AFsVct4HDKPrUk9PVvvvvvvvv)
- 3 = PASSWORD - <HASHED|PLAIN> -> (72nsjsiwjsjsu)
- 4 = PASSWORD SALT - <HASHED|PLAIN> -> (72nsjsiwjsjsu)
Example:
Movies|0AFsVct4HDKPrUk9PVvvvvvvvv|72nsjsiwjsjsu|72nsjsiwjsjsu
TV SHows|0AFsVct4HDKPrUk9PVxxxxxxxxxx|72nsjsiwjsjsu|72nsjsiwjsjsu
4K|0AFsVct4HDKPrUk9PVyyyyyyyyyy|72nsjsiwjsjsu|72nsjsiwjsjsu
TV 4K|0AFsVct4HDKPrUk9PVzzzzzzzzzz|72nsjsiwjsjsu|72nsjsiwjsjsu
appbackups|0AFsVct4HDKPrUk9PVzzzzzzzzzz|72nsjsiwjsjsu|72nsjsiwjsjsu
music|0AFsVct4HDKPrUk9PVzzzzzzzzzz|72nsjsiwjsjsu|72nsjsiwjsjsuIMPORTANT:
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).
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/.
- 1 = TEAM_DRIVE_NAME -> (uploader)
- 2 = TEAM_DRIVE_ID -> (0XXXXXXXXX000000EERR)
Example:
uploader|0XXXXXXXXX000000EERR- 1 = TEAM_DRIVE_NAME -> (uploader)
- 2 = TEAM_DRIVE_ID -> (0XXXXXXXXX000000EERR)
- 3 = PASSWORD - HASHED OR PLAIN -> (72nsjsiwjsjsu)
- 4 = PASSWORD SALT - HASHED OR PLAIN -> (72nsjsiwjsjsu)
Example:
uploader|0XXXXXXXXX000000EERR|72nsjsiwjsjsu|72nsjsiwjsjsuKindly report any issues on GitHub or






