Skip to content

Cloud Storage

Provider

If you want to forego cloud storage and put your media on something like your own NAS, there are some notes here.

Saltbox can be set up to use any cloud storage provider that Rclone supports. However, Google Drive via G-Suite Business is the popular choice among users. Some of the components are designed expressly for Google Drive, like the Google Drive monitoring in autoscan and the service-account rotation in cloudplow or crop.

We advise that you do NOT use a educational GSuite account or any GSuite account or Shared Drive you may buy on the secondary market [eBay and the like] or get free from some random website, unless you are aware of and planning for the likelihood that it disappears without warning one day.

Note that rclone offering support for a storage backend does not mean that backend is suitable for the Saltbox use case. The only backend that sees any significant testing and use is Google Drive.

Basics

Out of the box, Saltbox stores the media unencrypted in cloud storage utilizing an Rclone VFS mount to access it. If you prefer your data is stored encrypted, you will need to do some tweaking to the Rclone config. There are no plans to document these tweaks here.

The conversation about whether or not to encrypt has happened many times, and it is the opinion of the Saltbox team that there is not a compelling argument in favor of defaulting to encryption for the media that Saltbox stores. There is nothing preventing one from using encrypted cloud storage, but there is no testing done around it.

Encryption works fine if you know what you're doing and can make the required modifications and can accept the limitations it imposes. Our recommendation to a new user would be not to use encryption unless and until that user understands what that entails, and this is reflected in this documentation.

Not to rehash the conversation or invite argument, but a couple reasons behind this recommendation are:

  • Some functionality [Autoscan's "A-Train" Google Drive Monitoring, for example] does not work with encrypted remotes, so using encryption will prevent use of such features.
  • Supporting encryption as an option means more code paths, more maintenance, and more bug opportunities within Saltbox code.

If you use the default scripts to set up Google Shared Drives, they will not be encrypted.

Media will be stored in Movies and TV folders, all within a Media folder in root (i.e. /Media). [1]

Saltbox is opinionated about this /Media/<type> file structure; changing it is not trivial.

Setup

Media
├── Movies
├── Music
└── TV
  • Example from Google Drive:

If you have media in other folders, you can simply move them into these folders via the Cloud Storage Provider's web site.

Note 1: For Google Drive, you can use the Shift-Z trick to "symlink" folders here.

Note 2: All the paths/folders mentioned here, and elsewhere, are CASE SENSITIVE (see Saltbox Paths).

Google "My Drive" vs. "Shared Drives"

Google provides two "types" of storage in a GSuite account: "My Drive" and "Shared Drives".

Shared Drives provide advantages for our purposes over My Drive, while My Drive offers no advantages over Shared Drives.

The primary advantage of Shared Drives is that access to them can be controlled via Service accounts, which allows credential rotation to increase upload limits and reduce likelihood of usage-based server-side bans.

Some newer related utilities [like the Golang "Autoscan" replacement for plex-autoscan] have features that work exclusively with Shared Drives.

The primary disadvantage of Shared Drives is that they have a fixed limit of 400,000 files. For this reason one common strategy is to create separate Shared Drives for each media type.

For those reasons, this documentation will discuss ONLY Shared Drives.

However, if your data is currently on My Drive and you want to keep it there, Saltbox works fine with that as well. Rather than littering the docs with "If you're using My Drive to this, Shared drives do that" decision points, we standardized on Shared Drives. You'll just need to skip some stuff that refers to shared drives.

As a note, if you are unable to create Shared Drives in the Google Drive Web UI, that's a sign that you have the wrong type of Google Drive account.

Running Saltbox without cloud storage

While the typical use case for Saltbox includes cloud storage, nothing prevents using it without cloud storage.

If, in settings.yml, you leave the rclone remote name blank, neither cloudplow nor the rclone_vfs mount will be configured. Your media will be imported to /mnt/local and stay there. You can mount whatever storage you wish to use at /mnt/local.

Alternatively, you can configure an rclone remote pointing at your primary storage [named "google"], then install normally. Everything would then work as it typically does, except that cloudplow would move media from the local system to your NAS or whatever. Perhaps that would allow downloads and imports to go faster.


1 If you would like to customize your Plex libraries beyond what is listed above, see Customizing Plex Libraries.