How to Install and Configure a Minimalistic Static HomeLab Dashboard

Published by

on

Time to read:

4–6 minutes

If you want to self-host a static Web dashboard for your HomeLab1 there are many options at your finger tips. In this post we are going to go over how to install and configure the Flame dashboard without using Docker2.

My initial criteria was that I wanted a simple and easy to navigate static dashboard that could be the default web page displayed on all machines within my HomeLab environment. A static dashboard can be a great way for you to keep a track and have easy access to all of the different web based services you are running in your HomeLab environment.

After some research I decided to go for a project called Flame which ticked all the boxes with its very minimalistic and simple navigation and easy customisation. To host this dashboard yourself you can use a Docker image of the dashboard, however, I opted for a slightly bulkier way to run this. I have installed the dashboard straight into a Fedora3 server image that I am using as my web server. To that end this tutorial following with be how to installed the Flame dashboard without the use of Docker.


  1. SECTION I – Pre-Requisites
  2. SECTION II – Clone Flame
  3. SECTION III – Install Flame
    1. SECTION III – A – Install Dependencies
      1. FIGURE 1 – Flame Dependency Install
      2. FIGURE 2 – Flame Dependency Install Cont.
    2. SECTION III – B – Run Build
  4. SECTION IV – Configure Flame
    1. EXAMPLE 1 – .env File Contents
  5. SECTION V – Create Flame Service
    1. EXAMPLE 2 – Flame Server Script Contents
    2. EXAMPLE 3 – Service Unit File Contents
  6. SECTION VI – Connect to Flame
    1. FIGURE 3 – Flame Dashboard
    2. FIGURE 4 – Login Screen
    3. FIGURE 5 – Add application
  7. SECTION VII – Footnotes

SECTION I – Pre-Requisites

As best practice before starting any installation you should make sure that your all of your packages currently running are as up to date as possible.

dnf update

Now our packages are all update to date we can get to installing the 2 packages we need to be able to run this dashboard:

  1. Git – this will be used to clone the Flame repository.
  2. Nodejs – this is the backend environment that Flame uses.

dnf install git nodejs

SECTION II – Clone Flame

Once our pre-requisites have been met we can get to downloading the Flame repository.

  1. Create a directory for Flame.
  2. mkdir /etc/flame

  3. Make sure that you are in the etc directory.
  4. cd /etc/

  5. Clone the repository using git.
  6. git clone https://github.com/pawelmalak/flame

  7. Navigate into the Flame directory.

cd ./flame

SECTION III – Install Flame

Now that we have all of the files in the correct place we can start to actually install the Flame dashboard.

NOTE: in my HomeLab environment I pass all internet traffic through a web proxy. If you are running a similar setup then the installation of Flame using the repository scripts will not work. I was unable to diagnose why the dependencies could not be downloaded through a proxy. My solution to this was to have the web server in a network with direct access to the internet to install the dependencies.

SECTION III – A – Install Dependencies

  1. Run the initialise script to install any dependencies required by Flame.
  2. npm run dev-init

    FIGURE 1 – Flame Dependency Install
    FIGURE 2 – Flame Dependency Install Cont.
  3. NOTE: if you run into issues during your dependencies install then you can run the following command to fix any issues:

npm audit fix –force

SECTION III – B – Run Build

  1. Navigate into the client directory.
  2. cd /etc/flame/client

  3. Run the build script.

npm run build

SECTION IV – Configure Flame

Now that the Flame dashboard is built we can finish some last bits of configuration needed to set up the dashboard.

  1. Navigate to the Flame directory.
  2. cd /etc/flame

  3. Open the environment variable file.
  4. vi .env

  5. Set your Flame password. You can also change the port that Flame uses here if you want to use a non-default port.
  6. PORT=5005
    NODE_ENV=production
    VERSION=2.3.1
    PASSWORD={{ Your-Password }}
    SECRET=(Leave Default)
    
    EXAMPLE 1 – .env File Contents
  7. Add your Flame port to the host firewall.
  8. firewall-cmd –permanent –add-port=5005/tcp
    firewall-cmd –reload

  9. Move build files into public directory.

cd /etc/flame
mkdir public
mv ./client/build/* ./public/

SECTION V – Create Flame Service

In order to properly control the Flame dashboard I am going to create service for it. This way I can control the service and set the service to start on boot of my Linux machine.

Make sure you are logged into your Linux machine as root.

  1. Create a Flame server script that will be referenced by the service unit file.
  2. mkdir /etc/scripts
    vi /etc/scripts/start-flame-node-server.sh

  3. Enter the following into the script:
  4. #! /bin/sh
    cd /etc/flame
    node server.js
    EXAMPLE 2 – Flame Server Script Contents
  5. Add the execute permissions to the script file.
  6. chmod +x /etc/scripts/start-flame-node-server.sh

  7. Create a Flame service unit file.
  8. vi /etc/systemd/system/flame-server.service

  9. Enter the following into the service unit file:
  10. [Unit]
    Description=Flame Node JS Server
    
    [Service]
    Type=simple
    ExecStart=/bin/bash /etc/scripts/start-flame-node-server.sh
    
    [Install]
    WantedBy=multi-user.target
    EXAMPLE 3 – Service Unit File Contents
  11. Set the permissions of the unit file.
  12. chmod 644 /etc/systemd/system/flame-server.service

  13. Start and enable the Flame service.

systemctl enable flame-server
systemctl start flame-server

SECTION VI – Connect to Flame

The Flame dashboard is now up and running. To connect to it navigate to either of the following in a web browser:

IP Address:5005

Hostname:5005

FIGURE 3 – Flame Dashboard

SECTION VI – A – Login

  1. Click the settings cog located at the bottom left corner of the screen.
  2. Select the ‘App’ tab.
  3. Enter the password you set in the Flame .env file earlier and click the login button.
FIGURE 4 – Login Screen

SECTION VI – B – Create Application

Before you can edit the Flame dashboard make sure you have logged in.

  1. Click on the ‘APPLICATIONS’ text.
  2. Click the ‘Add’ button
  3. Fill out the appropriate settings for the application you want to add and then click the ‘Add new application’ button.
FIGURE 5 – Add application

NOTE: If you want to add icons that are high-resolution navigate to the following – https://github.com/walkxcode/dashboard-icons/blob/main/ICONS.md. This is a repository with icons for almost all projects or applications you can think of.

SECTION VII – Footnotes

  1. HomeLab is just an umbrella term for a system or environment that you can use to improve you knowledge and skills in installing, configuring and optimising IT. ↩︎
  2. Docker is a set of platform as a service products that uses OS-level virtualization to deliver software in packages called containers. ↩︎
  3. I am using Fedora Version 38 Server as my base OS. ↩︎

2 responses to “How to Install and Configure a Minimalistic Static HomeLab Dashboard”

  1. How to Configure Nginx Reverse Proxy – Knowledge Addict Avatar

    […] my example I am currently hosting my Flame dashboard on a web server in my homelab. I want to configure Nginx on my web proxy server to proxy clients […]

    Like

  2. How to Configure Nginx Reverse Proxy – Knowledge Addict Avatar

    […] my example I am currently hosting my Flame dashboard on a web server in my homelab. I want to configure Nginx on my web proxy server to proxy clients […]

    Like

Leave a reply to How to Configure Nginx Reverse Proxy – Knowledge Addict Cancel reply