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