Here you will learn how to install Heimdall Dashboard on Ubuntu 20.04. Specifically, you will learn how to download the latest Heimdall Dashboard source from GitHub, install the PHP dependencies of Heimdall and install a systemd
service to auto start Heimdall dashboard.
Contents
Heimdall Dashboard
Heimdall is a great dashboard web application. It allows you to organize and monitor your self-hosted applications, such as plex, emby, sonarr, radarr. You can even add any web URL yourself. With Heimdall, you don’t have look for something in the long list of a bookmark folder from your browsers like Google Chrome or Firefox.
The official way to install Heimdall on Ubuntu 20.04 is through Docker, but if you have installed any web application yourself, it is actually quite easy to install without Docker, which saves some space and CPU/memory resources if you are using a Raspberry Pi.
However, it is not clear how to install it on Ubuntu such as 20.04 without Dock on its GitHub repository. How can I install Heimdall dashboard without Docker? Here we will show you how to install Heimdall on Ubuntu 20.04.
Prerequisite
You should have a Linux OS such as Debian-based Ubuntu 18.04, 16.04 or 14.04, Debian 10, 9 or Raspbian 10, 9. Other Linux distribution may also work but needs adaptation.
Step 1 — Download Heimdall from GitHub
First, we will install Heimdall dashboard from its GitHub repo. Run the following command to download the latest release, which will use GitHub’s API and use awk
to get the latest version string.
RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]'); echo $RELEASE &&\
curl --silent -o ${RELEASE}.tar.gz -L "https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz"
After it’s done, we run ls *.tar.gz
to verify. Here we see the file we just downloaded 2.2.2.tar.gz
. As new releases come out, the version number will differ. Just remember to change the version string in the following steps.
Alternatively, you can go to the releases page and download the latest to your home folder, which is 2.2.1 at the time of writing. Name the file to VERSION.tar.gz
as we will use this file in the remainder of this how-to.
To uncompress the tar.gz file, run
tar xvzf 2.2.2.tar.gz
Use ls *2.2.2/
to verify. You will see output like the following:
Step 2 — Install PHP modules on Ubuntu 20.04
Next, because Heimdall is written in PHP and more specifically, the Laravel PHP web framework, we will need to install 2 PHP module dependencies php-sqlite3
and php-zip
on Ubuntu 20.04 in order to install Heimdall:
sudo apt install php-sqlite3 php-zip
Do you know?
If you don’t what dependencies a PHP application needs, you can run php artisan serve
and it will suggest what dependencies are missing.
Step 3 — Run Heimdall Dashboard with php artisan serve
Now change to the directory by cd Heimdall*/
, which is your Heimdall installation, and try to start serving it with php artisan serve
, which is indeed the way to start any Laravel application. You might see the following error because it’s not yet compatible with PHP 7.4 on Ubuntu 20.04. But in the future, this should be fixed.
In ArrayInput.php line 135:
Trying to access array offset on value of type int
To fix it, edit the ArrayInput.php at line 135 with vim ./vendor/symfony/console/Input/ArrayInput.php +135
and comment on the elseif
line and what’s inside. The following screenshot shows the 2 lines.
Now run php artisan serve
twice (at least for me) to see Laravel development server has started.
Right-click “http://127.0.0.1:8000/” and open it, you should see Heimdall dashboard running on your Ubuntu 20.04 OS like the following screenshot. It says “There are currently no pinned applications, Add an application here or Pin an item to the dash”.
Let’s add an entry to see if it works. To see it on the homepage, i.e., pinned, make sure to click “PINNED” on the top right before you hit the “Save” button.
As seen below, we successfully added LGTM.cf website to homepage!
Step 4 — Auto-start Heimdall using systemd
service
We are almost done, except we want it to start automatically after we install Heimdall when Ubuntu 20.04 reboots even after an power outage.
We will use systemd
to to auto start Heimdall dashboard when the OS boots. Add the file heimdall.service
in /etc/systemd/system/
.
sudo vim /etc/systemd/system/heimdall.service
Add the following content to the file. Make sure you change the user
, group
, and WorkingDirectory
as yours. I also used an uncommon port 7889, you might want to change it if you want. If you access Heimdall from another computer, add --host 0.0.0.0
after 7889.
[Unit] Description=Heimdall After=network.target [Service] Restart=always RestartSec=5 Type=simple User=lgtm Group=lgtm WorkingDirectory=/home/lgtm/Heimdall-2.2.2 ExecStart="/usr/bin/php" artisan serve --port 7889 TimeoutStopSec=30 [Install] WantedBy=multi-user.target
To enable the service now, run the following command:
sudo systemctl enable --now heimdall.service
Now open your browser and enter http://127.0.0.1:7889/. You should see the same interface as seen before. Now if you reboot your computer or server, you should still be able to visit the URL. If you added --host 0.0.0.0
before, you’ll need to find and type the IP of your computer instead of 127.0.0.1:7889
. You can usually find the IP address in your WiFi/wired network properties or with ifconfig
.
Before we conclude, you might be wondering why not use php-fpm
with Apache or Nginx. The reason is that if you are the only user of Heimdall, the current setup will be fine (Thinks of you as the developer). The complexity of using these web servers outweighs the gain of high-performance.
4 steps to install Heimdall dashboard on Ubuntu 20.04
Time Needed : 6 minutes
- Download latest Heimdall Dashboard from GitHub
Run this command to download it from its GitHub release page:
RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]'); echo $RELEASE &&\ curl --silent -o Heimdall-${RELEASE}.tar.gz -L "https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz"
Uncompress the downloaded file
Runtar xvzf Heimdall-*.tar.gz
- Install PHP dependencies on Ubuntu 20.04
Run
sudo apt install php-sqlite3 php-zip
- Add Heimdall systemd service for auto-start
Add the file by
sudo vim /etc/systemd/system/heimdall.service
and copy-paste the following content (examine the text in bold, adapt to yours). Append--host 0.0.0.0
to the ExecStart line if you will access it from another computer.[Unit]
Description=Heimdall
After=network.target
[Service]
Restart=always
RestartSec=5
Type=simple
User=lgtm
Group=lgtm
WorkingDirectory=/home/lgtm/Heimdall-2.2.2
ExecStart="/usr/bin/php" artisan serve --port 7889
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target - Enable systemd service on Ubuntu 20.04
Use systemctl enable –now:
sudo systemctl enable --now heimdall.service
Tools
- Linux OS
- Terminal
- curl
- awk
- systemd
- vim
Materials
- Linux
8 replies on “How to Install Heimdall Dashboard on Ubuntu 20.04”
what about updating… what is the best way to update to the latest version using this method?
Great tutorial,
But where can I find the php.ini file?
I ‘d like to upload bigger images for the background.
Thanks in advance
[…] https://varhowto.com/install-heimdall-dashboard-ubuntu-20-04/ – I used this site as a follow along for how to install Heimdall directly to Ubuntu without the use of a docker. […]
Hi
You say “To fix it, edit the ArrayInput.php at line 135 with vim ./vendor/symfony/console/Input/ArrayInput.php +135 and comment on the elseif line and whatβs inside. The following screenshot shows the 2 lines.”
When I run that, I get a blank screen:
~
~
~
~
~
~
~
~
~
~
<fony/console/Input/ArrayInput.php” [New DIRECTORY] 0,0-1 All
Any suggestions please?
Thanks
Merlin
great guide! please update it to include nash’s note above. many people (if not most) won’t be installing and running this on their local host. without the
--host 0.0.0.0
appeneded to the systemctl service file, the server webpage isn’t accessible. props to nash for posting his comment. you saved the day bro!Thanks. Done.
Thank you! Very easy to follow π
I’m running this on a FreeNAS vm so I needed to add
--host 0.0.0.0
before--port 7889
in heimdall.service in order to access it remotely.Glad it helped. I put this information in the article.