Heimdall is a web application that allow us to create and customize our app dashboard, having links to the different web apps that we host on our home lab. There are several dashboard applications as this one, like Homer Dashboard, that I also use.
Requisites:
To continue with this post, you will need the following:
- A machine, virtual machine or linux container with Ubuntu 20.04 installed.
- Internet connection and admin privileges on the machine above.
Installation
First of all, let’s download Heimdall:
cd && wget "https://github.com/linuxserver/Heimdall/archive/2.2.2.tar.gz"
Now, uncompress it:
tar xvzf 2.2.2.tar.gz
And let’s fix a little bug at the code, so it will properly run:
nano ./Heimdall-2.2.2/vendor/symfony/console/Input/ArrayInput.php
Go to line 135, and comment/delete the following lines:
} elseif ('-' === $key[0]) {
$this->addShortOption(substr($key, 1), $value);
Install the needed PhP libs:
sudo apt install -y php php-sqlite3 php-zip
Configure as a Linux service
Let’s create the service file:
sudo nano /etc/systemd/system/heimdall.service
It’s content should be as follows. Have in mind to change the User, Group, WorkingDirectory and ExecStart properties to match your needs:
[Unit]
Description=Heimdall
After=network.target
[Service]
Restart=always
RestartSec=5
Type=simple
User=runesoft
Group=runesoft
WorkingDirectory=/home/runesoft/Heimdall-2.2.2
ExecStart=sudo php artisan serve --port 80 --host 0.0.0.0
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
Let’s enable Heimdall new service:
sudo systemctl enable --now heimdall.service
Problems with a default Apache installation
With Ubuntu 20. when you install PHP, it will also download, install and launch Apache web server. so port 80 will be used and oHeimdall couldn’t be launched on it. If you don’t need Apache, stop it’s service:
sudo systemctl stop apache2
And disable it from systemctl:
sudo systemctl disable apache2
Time to restart Heimdall’s service to propperly get port 80:
sudo service heimdall restart
Using Heimdall
Now, if you go to your Heimdall’s IP, you should see something like this:

As you can see, Heimdall says that we don’t have any app configured yet. To do it, whe should update the app list. Click on the list icon on the bottom right menu, and a new window will show up:

There, click on Update Apps List. When it finish, click on Add to create a new app, and this form will appear:

Let’s create one for a PiHole service:

After adding some apps more, it should look something like this:

Now you have your own web app dashboard for your home lab!