I found this on the Self-hosted Sub-reddit which is an excellent place to find all kinds of really cool self-hostable software.  Not everything on that reddit channel is open source, so it's up to you to determine what works best for you as you scroll through the list of options.

Mistborn is the project of a man who wanted to provide a more secure browsing and online experience for himself and his family.  Mistborn is not just a WireGuard server UI, but a host of open source, self hosted applications that you can run in connection with the WireGuard network it sets up.

You can get to the original Mistborn repo and information at https://gitlab.com/cyber5k/mistborn

Applications like HomeAssistant, Jellyfin, OnlyOffice, and so many more.  In this video, I'll show you how to install it, get the necessary Admin clientn configuration, and connect to the server.  

You Should Know

  1. You can't access the Server UI until you generate the initial admin configuration file.
  2. The applications you can install via the UI are intended to be added for use with the WireGuard service.

What We Need for the Install

  1. A Server running Ubuntu 18.04, 20.04, Debian 10, or Raspbian Buster - I'll be using a Digital Ocean Droplet, but you don't have to use DO, you can use any server that you can get to via SSH.
  2. About 20 minutes time.
  3. WireGuard installed on your local machine - I'm using Ubuntu 18.04 and 20.04, so adjust for your client OS.

Installation

  1. Make sure your server is up to date.

sudo apt update && sudo apt upgrade -y

2. Give the server a reboot, just to cover our bases.

sudo reboot

3. We need to clone the Mistborn repository.  If you don't have git installed, you can install it with

sudo apt install git

Now, let's clone the repo with

git clone https://gitlab.com/cyber5k/mistborn.git

4. Now, we need to run the installation with the command:

sudo bash ./mistborn/scripts/install.sh

You'll initially be asked a couple of questions.

  • First you need to enter a password you want as your default Mistborn password.  (this is the password used for Pihole, Cockpit, and other software installed with Mistborn).
  • You need to decide if you want Cockpit (a web server admin and information panel for Linux) installed along with Mistborn.

5. If all goes well, the rest of the install will complete on it's own.  When it's done you'll have a comple of terminal commands you can use, and they'll be displayed in the terminal.

  • A command to show you logs of what's happening on the server wtih Mistborn

sudo journalctl -xfu Mistborn-base

  • A command to get your Mistborn admin WireGuard configuration file

sudo mistborn-cli getconf

Setup Your Admin Configuration File Locally

1. Highlight and copy the information given from the admin configuration command.

2. on your local machine (the client), create a file called wg-admin.conf

nano wg-admin.conf

3. Paste the information you copied in step 6, into this empty file, then save, and exit the file.

CTRL+O, then Enter to save.  CTRL + X to exit nano.

4. Now we need to copy that file to /etc/wireguard/

sudo cp wg-admin.conf /etc/wireguard/

Connect To Your Server

Now it's time to connect to our WireGuard server.  You need to make sure you have Wireguard and WireGuard tools installed on your local machine.  Again, I'm using Ubuntu, so these are the commands for Ubuntu.  In the terminal type

sudo apt install wireguard-tools

Once the installation completes, you're ready to connect.  Just type the following in the terminal

sudo wg-quick up wg-admin

You should see some text indicating you have a WireGuard IP address now, and you should not get any error messages.

To check that we are connected, we can do a couple of simple checks in the terminal.

sudo wg

The command above should return something like

interface: wg-admin
  public key: U/MKVaOHoKVq7CPtLycuEMDTOdlMS2Bp8vIdbIUdCBs=
  private key: (hidden)
  listening port: 53654
  fwmark: 0xca6c

peer: Up1p3RTuEiWEdR7jlXiLsVP324yO4p4AUXaqrRbvuX4=
  preshared key: (hidden)
  endpoint: 138.222.112.243:40999
  allowed ips: 0.0.0.0/0, ::/0
  latest handshake: 2 seconds ago
  transfer: 7.48 KiB received, 7.86 KiB sent

Don't worry, I've edited the keys and endpoint above.

Get to the GUI

Once you are successfully connected you can connect to your new Mistborn server user interface by opening a browser, and entering the URL

http://home.mistborn

You'll see there is no need to log in, as you are using the Admin configuration file, and you must be connected to your WireGuard VPN to connect.  Don't believe me, disconnect from the VPN, and try that URL again

sudo wg-quick down wg-admin

Now, try to get to http://home.mistborn

Cool right?

The Other Apps

Now you can click around in the Mistborn UI and see the other apps available.  Remember, you need to be connected to the VPN to access them.  For each app, there are login credentials, but the password is always the password you created at the beginning of the install process.