Preparing a Cluster Host

Ok, so you have your firewall and switch installed and configured! Great! You can add a cluster host to your SERVERS DMZ. Remember, Sovereign Stack is more than just a home node package, so get hardware with heft, especially if you're going to host more than one website.

Right now, Sovereign Stack IS NOT a distributed system. Future iterations of the project will leverage LXD clustering and docker swarm for workload distribution and horizontal scalability WITHIN a data center.

Begin by connecting your new cluster host to the appropriate ACCESS port assigned to the SERVERS VLAN. It also helps have the power adapter plugged into an UPS for reliability.

It's best that you buy hardware that DOES NOT have Wifi hardware on it. It simply adds expense and attack surface. Sovereign Stack DOES NOT work with wirelesss adapters! This is because Sovereign Stack relies on Macvlan to expose services to your network, and WLAN interfaces do NOT support Macvlan! Not only that, when you're hosting a website, you want something that's relaible and has minimal contention. Wifi is not that.

Download Ubuntu Server

First, download Ubuntu Server 22.04.01, install it on a bootable USB device. The Ubuntu website has excellent instructions. Use them.

Insert the USB device into your new cluster host. Your goal is to boot into the USB media (the Ubuntu Server Installer). You may have to modify the boot priority of your cluster host to boot into the installation.

Install Ubuntu Server 22.04 (minimized)

Once you're at the installer interface, choose your preferred language and be sure to update the updater if possible. Select your keyboard layout and continue by installing Ubuntu Server (minimized). DO NOT download third-party drivers.

Network Configuration

When you get to the Network connections menu in the installer, you MAY need to perform some additional steps in your DHCP and DNS servers (e.g., PFSense). Sovereign Stack works best when the network underlay is stable.

You need to create a DHCP reservation for each new physical cluster host. After that, you need to static DNS host entries for the host. Something like clusterhost-01.domain.tld.

If your network connection(s) aren't getting the correct IP assignments during the installer, you may need to check that DHCP reservation and DNS are configured correctly. Conveniently, the Ubuntu installer displays your network adapter's MAC addresses.

During the installation, you may be asked to configure proxy or mirror servers. Just leave that at default for now.

Disks / Formatting

How you format all depends how many SSD/nVMEs you have on your system.

If you have TWO independent SSDs in your system, dedicate the entire second SSD to Sovereign Stack. 1Tb minimum is recommended.

If you have just one SSD, you carve it up into two partitions. Typically this means you have your / and boot partitions residing on around ~50 GB of disk space, and the remainder of the disk is an UNFORMATTED partition dedicated to Sovereign Stack.

That partition gets formatted when you take the cluster host under management of Sovereign Stack. Sovereign Stack scripts inform LXD to lay down a ZFS file system on this partition.

So, in the Ubuntu installer, choose Custom storage layout and complete the following steps:

  1. Remove all existing partitions and start with a unallocated disks. Do this by running the "Reformat" option on each disk.
  2. Then, under the free space option, select Add a GPT Partition.
  3. The first partition is for boot and / data. So the first partition size should be at least 50G and formatted as ext4 with a mount point of /. Note, this step will also create a ~1 GB fat32 partition for the bootloader partition. Click Done and you wiull see your / and /boot/efi partitionsl listed at the top.
  4. Go back to free space and create a new unformatted partition on the remaining space by select free space -> Add GPT Partition. The Size should be set to the max value shown. Remember to leave the partition unformatted! Select Create and then press enter.
  5. Go down to Done and press enter. Read the warning and if you're ok with it, select Continue and press enter.

Profile setup

Complete the installer by entering ubuntu for the username. Also give the cluster host its name. This should the server name that was specified in your DNS settings for the cluster host.

Provide a unique and sufficiently complex password for the ubuntu user and store it in your password manager.

Software Installation

Sovereign Stack only requires that you install OpenSSH server as your last step. This is important! This is how Sovereign Stack scripts manage your Linux cluster host!

Proceed with the installation. When complete, select Reboot Now.

When directed, remove the USB installation media, then press enter.


Cool, your management machine can easily ssh into your new bare-metal cluster host! The system is configured to start automatically since it does NOT require a full-disk-encryption password. The system boots to Ubuntu Server 22.04.01 and is listening on the network on port 22, SSH. Sweet! You're ready to focus on provisioning your management machine!