Home Installing And Setting Up Heimdall
Post
Cancel

Installing And Setting Up Heimdall

Heimdall Install

This application is a dashboard for links to all your various things for your internal servers. Here is a link to their website.

Creating a LAMP for a non-docker install of Heimdall

This is so that I am hosting a lightweight web server to install Heimdall without using docker since I didn’t want to use that for it this time. LAMP stands for Linux OS, Apache web server, MariaDB database, and processed by PHP or LAMP. I will be using this DigitalOcean guide for this install.

First steps are spinning up a debian VM and going through the regular setup per your configuration that you would use.

Apache Setup

Then run these commands to install update repos and install apache2

1
2
3
sudo apt update

sudo apt install apache2

Now I am going to install and setup a basic firewall using these commands

1
2
3
sudo apt update

sudo apt install ufw

Then allow OpenSSH so I can connect through SSH and enable it

1
2
3
sudo ufw allow OpenSSH

sudo ufw enable

Then test what rules are setup with this command

1
sudo ufw status

Then take a look at the UFW or Uncomplicated Firewall profiles

1
sudo ufw app list

I am going to allow in WWW Full since that allows HTTP and HTTPS

1
sudo ufw allow in "WWW Full"

Then you go to the browse to the IP address that is assigned to the server. You should see the Apache landing page.

Installing MariaDB

This is a database server for your web server. First thing is to install it with the below command.

1
sudo apt install mariadb-server

Then to set it up securely use the below command and answer all the prompts

1
sudo mysql_secure_installation

To test run this command and it should log in as root without entering a password.

1
sudo mariadb

If that works just use the exit command and move on

Installing PHP

Then install PHP or Hypertext Preprocessor with the mysql package. You also need to install an Apache mod to handle PHP files to dynamically process stuff. To install it run the below command.

1
$ sudo apt install php libapache2-mod-php php-mbstring php-cli php-bcmath php-json php-xml php-zip php-pdo php-common php-tokenizer php-mysql

Then to verify it’s installed and its version do the bottom command

1
php -v

I ran into some issues using the above version of php and had to also add this in

1
sudo apt-get install php-sqlite3

Then modify Apache config with the below command to server index.php files first

1
sudo nano /etc/apache2/mods-enabled/dir.conf

It should look like this when you are done with this

1
2
3
<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Then reload apache and look at the status of it with these two commands

1
2
3
sudo systemctl reload apache2

sudo systemctl status apache2

Now to install Heimdall non-docker version

Now I download the source code from github and tar it out in my /var/ directory using the below command

1
2
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"

Now to unpack it

1
tar xvzf v2.5.6.tar.gz

Then path to the apache files and change the apache2.conf to direct to the path that you left Heimdall at something like this is what it should look like

1
2
3
4
5
<Directory /var/www/html/Heimdall-2.5.6/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Make a env example file from this link

1
nano env.env.example

Now path to where you have Heimdall and run this command to copy the example file to be a regular .env file

1
cp env.env.example env.env

Then run the below command to generate an application key manually

1
php artisen generate:key

Then there are a few configuration things that need to be set up first run this so that url redirection works

1
sudo a2enmod rewrite

Then do these two commands to get to the directory containing the directory file for the website

1
nano /etc/apache2/sites-available/xxxxxxxxxx.conf

Then change the DocumentRoot to the location of the Heimdall public folder

1
DocumentRoot /var/www/html/Heimdall-2.5.6/public

Heimdall should now be up and running. It is very possible that I am missing a thing or two since I had to do a lot of testing to get this to work since I was not very familiar with configuring Apache2.

As of now there are still several things that I have in mind to do.

  • Self-Host Website
  • Have VPN back to my home network
  • Set up my servers in a server rack
  • Get a third computer that will be able to break quorum between my two proxmox servers
  • Setup a separate computer that will ping my servers and send wake up packets if it doesn’t get a response
  • Self-host Bitwarden an open source password manager
  • Setup a bare metal backup for Proxmox as a whole
  • Setup a NAS that has at least 50 tb of storage
  • Setup a personal documenting/notes such as something like Obsidian
  • Setup a Windows server
  • Fully Configure my DNS for my local internet
  • Setup a dashboard to access my many services
  • [] Spin up a Security Onion VM
This post is licensed under CC BY 4.0 by the author.