Server
Server¶
Getting a Server¶
About the requirements:
You will need a dedicated server freshly installed with Ubuntu Server 20.04, 22.04, or 24.04.
This server can be either local to you or rented froma server provider.
Some examples of "server provider" would be places like OVH, LeaseWeb. Hetzner, and the like. Saltbox does not recommend any server provider specifically; these are just examples. Historically, Hetzner has been popular, but recent changes by Plex have made it less attractive.
Plex Inc has recently [mid-October 2023] instituted network roadblocks that cause problems connecting to Plex servers running in Hetzner datacenters [at least European data centers]. This can be worked around by putting Plex behind a VPN using Gluetun, but this is of course an added complication. If you are starting fresh, perhaps consider a host other than Hetzner, assuming you want to use Plex.
When you install Ubuntu on the server, do not preinstall anything other than OpenSSH.
The install assumes that this is a fresh setup without anything else installed. If your server has things like Docker preinstalled, chances are the installer will fail with a non-obvious error, or other problems will show up later.
In other words, you should not upgrade your Ubuntu 18.04 machine running Cloudbox to Ubuntu 20.04 and then install Saltbox on top of it. You should wipe the machine, install 20.04 or 22.04 fresh and start there.
Typically this server is remote to you; you can install on a home server, keeping in mind some home server considerations
Best results are seen with an actual dedicated server, not a VPS like those available from Linode, Vultr, or the like or a virtualized setup like proxmox. Linodes, Vultr "Cloud Compute", Hetzner "Cloud Servers", and probably others like them, in particular, are known to not work in at least one significant way; NZBGet reports 0 available disk space while Sonarr, Radarr, and tools like df
and du
report disk space as expected.
A commonly-asked question is "can I run saltbox on this server?"
You will need root access to install Saltbox.
The server should be a completely fresh OS install. Do not try to install any dependencies on your own, Saltbox will do that for you.
Saltbox only supports x64 (i.e. Intel or AMD 64) machines. ARM based hardware [such as the Raspberry Pi] is not supported.
Get a server with at least 100GB+ of hard disk space. Even though media is uploaded to the cloud, there is still a need local storage for things like app data and backups.
Practically, you should have more like 500GB of space available at a minimum.
Cloudplow's default folder size threshold, to upload media to the cloud, is set at 200GB. If you want to lower that, you can find details here
If you are planning to use Usenet, SSD should be considered required, and NVME highly recommended. Usenet is extremely disk I/O intensive.
If you are planning to use torrents, you should have much more disk space than that available for seeding. Your seeding torrents will not be moved to your cloud storage; they will consume local disk space as long as they are seeding.
If you are installing as a Feederbox/Mediabox setup rather than the all-in-one Saltbox, the disk requirements change a bit. Downloading drives the disk requirements on the Feederbox [as discussed above] and primarily the Plex/Emby metadata drives the disk requirements on the Mediabox. Depending on the size of your library, that metadata can be quite large.
Home Server considerations¶
If you are setting this up on a home server, verify, before installing Saltbox:
- Make sure your ISP doesn't block ports 80 and 443 [if your ISP blocks these ports, it won't work.]
- Make sure that your router supports hairpin NAT [if this isn't supported, you won't be able to access apps via subdomain from inside your network or you will have to do manual setup to allow it]
- Open the relevant ports (eg
80
,443
, etc) in your router/firewall and forward them to the IP of the box on which you want to install Saltbox, before installing Saltbox. - Point your domain at your home IP and configure some dynamic DNS software to keep it updated. Saltbox has a dynamic dns client available [it's not installed by default], but there are many ways to set this up. Make sure that DNS has propagated and your domain returns your home IP via
ping
or something like it, before installing Saltbox. - Review the notes about local storage if you're not planning to use cloud storage.
Tips¶
Ubuntu 20.04¶
- If you get an option like below, select choose
ubuntu-2004-focal-64-minimal
.
- Install OpenSSH server if asked.
Partitioning¶
-
If you have multiple hard drives on the server (eg. 2 x 4 TB), put them in RAID 0 to maximize space and speed (you don't need redundancy as you can schedule backups of Saltbox).
-
Set all available space to
/
(remove/home
and/data
partitions). -
Leave ample space in
/boot
(e.g. 2+ GB). -
putting the
/opt
directory on abtrfs
partition can dramatically reduce the amount of time your containers are down during backup. A reasonable starting size for/opt
is 250G. -
You can use a single partition formatted as BTRFS, but if you do so make sure you install the
btrfsmaintenance
tag after setup.
Examples:
IMPORTANT: Note that these examples are just that, examples, and may not reflect currently-available OS versions or the current state of the UI. They were accurate at the time of capture, but things change that are outside saltbox' control. You will need to review for accuracy and possibly adapt them to your specific situation. You're partitioning the disk of your remote server; you generally shouldn't trust that to copy-pasting some text from a web page.
What to do with this "installimage"
-
Hetzner installimage
# Hetzner Online GmbH - installimage # # This file contains the configuration used to install this # system via installimage script. Comments have been removed. # # More information about the installimage script and # automatic installations can be found in our wiki: # # http://wiki.hetzner.de/index.php/Installimage # DRIVE1 /dev/nvme0n1 DRIVE2 /dev/nvme1n1 SWRAID 1 SWRAIDLEVEL 0 HOSTNAME sb.domain.com PART /boot ext4 2G PART lvm vg0 all LV vg0 swap swap swap 8G LV vg0 root / ext4 all IMAGE /root/.oldroot/nfs/install/../images/Ubuntu-2004-focal-64-minimal.tar.gz
-
Hetzner installimage (with a separate 250G partition for
/opt
utilizing BTRFS for snapshot backups)# Hetzner Online GmbH - installimage # # This file contains the configuration used to install this # system via installimage script. Comments have been removed. # # More information about the installimage script and # automatic installations can be found in our wiki: # # http://wiki.hetzner.de/index.php/Installimage # DRIVE1 /dev/nvme0n1 DRIVE2 /dev/nvme1n1 SWRAID 1 SWRAIDLEVEL 0 HOSTNAME sb.domain.com PART /boot ext4 2G PART lvm vg0 all LV vg0 swap swap swap 8G LV vg0 opt /opt btrfs 250G LV vg0 root / ext4 all IMAGE /root/.oldroot/nfs/install/../images/Ubuntu-2004-focal-64-minimal.tar.gz