Skip to content

Install

If you're migrating from Cloudbox you probably want the Cloudbox migration instructions

If you're migrating from PlexGuide there are some rudimentary notes provided by a user here. Expansions to those notes would be welcome.

Please read through these steps prior to executing any of them, just to get a grounding in what is going to happen through out the process. It could be that things in later steps inform your decisions in earlier steps.

Broadly, the base install consists of six steps:

  1. Installing dependencies
  2. Preparing your configuration file(s)
  3. Running a pre-install script
  4. Configuring your cloud storage
  5. Running the install script
  6. Configuring installed applications

Step 1: Dependencies

curl -sL https://install.saltbox.dev | sudo -H bash; cd /srv/git/saltbox
wget -qO- https://install.saltbox.dev | sudo -H bash; cd /srv/git/saltbox
curl -sL https://install.saltbox.dev | sudo -H bash -s -- -v; cd /srv/git/saltbox
wget -qO- https://install.saltbox.dev | sudo -H bash -s -- -v; cd /srv/git/saltbox

Info

See here for more information about the dependencies.

Step 2: Configuration

Make sure you fill out the following configuration files before proceeding. Each file will be located in /srv/git/saltbox

accounts.yml

To edit [assuming you are still logged in as root]:

nano /srv/git/saltbox/accounts.yml

Contents:

---
user:
  name: seed # (1)!
  pass: password123 # (2)!
  domain: testsaltbox.ml # (3)!
  email: your@email.com # (4)!
cloudflare:
  email: # (5)!
  api: # (6)!
plex:
  user: # (7)!
  pass: # (8)!
  tfa: no # (9)!
dockerhub:
  user: # (10)!
  token: # (11)!
apprise: # (12)!
  1. Username that will be created (if it doesn't exist) during the installation and apps that have automatic user configuration.

    Do not use root.

    Required.

  2. Password used for username account during the installation and apps that have automatic user configuration.

    Required.

  3. Domain that you want to use for the server.

  4. Email address used for Let's Encrypt SSL certificates.

    Required.

  5. Email used for the Cloudflare account.

  6. Cloudflare Global API Key.

  7. Plex.tv username or email address on the account.

  8. Plex.tv password for the account.

  9. Enable if you want to use the Two Factor Authentication [TFA] compatible Plex account login.

  10. Docker Hub account name. Entering these credentials will at least double your image pull capacity from 100 every 6 hours to 200. https://www.docker.com/blog/checking-your-current-docker-pull-rate-limits-and-status/

  11. Docker Hub account token

  12. apprise url. See https://github.com/caronc/apprise#popular-notification-services for more information.

settings.yml

To edit [assuming you are still logged in as root]:

nano /srv/git/saltbox/settings.yml

Contents:

---
downloads: /mnt/unionfs/downloads # (1)!!
rclone:
  version: latest # (3)!
  remote: google # (4)!
shell: bash # (5)!
authelia:
  master: yes # (6)!
  subdomain: login # (7)!
  1. Folder used for downloads.

  2. Folder used for temporary transcode files.

  3. Rclone version that Saltbox will install.

    Valid options are latest, beta or a specific version (1.55).

  4. Name of the rclone remote that Saltbox will mount by default and use in any automated configuration.

    Optional - Leave empty to avoid remote mount setup.

  5. Shell used by the system. Valid options are bash or zsh.

  6. If the current server should have Authelia installed or use one installed elsewhere.

  7. Subdomain used for Authelia.

    Use different values here when using a Mediabox + Feederbox setup if deploying multiple Authelia instances.

    On a Feederbox where you want to use Authelia on the Mediabox just put in the same subdomain the Mediabox uses for Authelia (master having been set to no on the Feederbox).

Info

See here for more information about these settings.

Step 3: Preinstall

Warning

Make sure that you have set up the configuration correctly before proceeding.

This step will create the user account specified in accounts.yml, add it to sudoers, update the kernel, edit GRUB configuration, install Rclone, and reboot the server if needed.

sb install preinstall

Warning

From this point you'll want to make sure you run commands as the user specified in the accounts.yml

If your server did not need to reboot you can run su username to switch user or reconnect to SSH as the newly created user. Everything after this point will assume you are running as the user entered in accounts.yml

Info

See here for more information about the preinstall.

Step 4: Rclone

Warning

As noted in the previous step, from this point you'll want to make sure you are logged into the server as the user specified in the accounts.yml.

Info

THIS IS AN OPTIONAL STEP, required only if you plan to use cloud storage [Google Drive, for instance]

If you do not plan to use cloud storage, leave the rclone -> remote: setting blank in your settings.yml, and skip this step.

Saltbox defaults to an rclone remote pointed at your Google Drive named google [as shown in the settings.yml above].

There is nothing special about saltbox's implementation of this setup, aside from its opinions about the media paths.

If you already know how to set that up, do so with your usual methods. If not:

You already have the required setup complete. You should use your existing Google setup at least to start with.

Cloudbox migration instructions

You already have the required setup complete. You should use your existing Google setup at least to start with.

The issues you will have to deal with will largely be around:

  1. Encrypted drives
  2. File system differences
  3. Service account files [PlexGuide removed the .json extension from what it calls "BlitzKeys", Saltbox expects them to be there]

Plexguide migration notes

If you have a brand new Google Drive account and want to be walked through allt he steps you need to perform, start here

That's an eight-step process that is mostly copy-paste commands. When you have completed it, come back here.

That eight-step process will create three shared drives, 300 service accounts, and will configure rclone for you.

This should be enough capacity for quite a while for most users.

The simplest possible case is:

  1. Set up a Google Project and OAuth Credential file if you don't already have one. This process is described here YOu will need the ID and Secret from that process in step 3 below.
  2. Create a Shared Drive in the Google Web UI. This process is described here
  3. Create an rclone remote pointing at that shared drive. This process is described here

Warning

Do not proceed until you have configured your rclone remote[s] or disabled cloud storage in the settings.

Step 5: Saltbox

If you are installing a Feederbox/Mediabox setup [if your reaction to this question is "huh?" then you are not, and should use the saltbox install], set up the Feederbox first, then add the feeder mount to the mediabox prior to install.

sb install saltbox
sb install mediabox
sb install feederbox
sb install core

Info

See here for more information about the install.

Reboot

After rebooting, you're now ready to go through the basic setup for the apps!

Step 6: App Setup

Go through these one at a time in order; some of the setups depend on previous setups.

  1. NZBGet
  2. ruTorrent
  3. NZBHydra2
  4. Jackett
  5. Plex Media Server
  6. Autoscan
  7. Sonarr
  8. Radarr
  9. Lidarr
  10. Tautulli
  11. Overseerr
  12. Portainer
  13. Organizr

Info

These are not all the available applications, just the core set that are installed by the saltbox tag. Click on the "Apps" header at the top for a full listing of applications available in Saltbox. Click the "Sandbox" heading for a listing of commmunity-supplied applications.

Next, some tasks to perform after installation is complete.