Docker

Heimdall Dashboard Deployment

With the growth of devices and services in my home lab, I decided it was time set up a dashboard. I heard about Heimdall and wanted to try it out. This post is mainly about how to successfully deploy it in docker, as I ran into problems following the stock instructions.

Docker Setup

Create the persistent directory. All my containers are under /dockerdata.
mkdir /dockerdata/heimdall

I also created the config directory: mkdir /dockerdata/heimdall/config

My docker environment does not by default provide DNS service to containers. I don’t want any unexpected situations where they “phone home”.

As it turns out, the Heimdall docker image does not contain valid DNS settings. You need to provide DNS or it won’t be able to acquire the information on Foundational and Enhanced applications (it looks for the list at appslist.heimdall.site). These are the supported application icons and api settings. Without this, Heimdall is pretty useless.

Here is the final Compose yaml. Note the dns entry:

################################
heimdall:
  image: lscr.io/linuxserver/heimdall:latest
  container_name: heimdall
  environment:
    # Run as user/group
    - PUID=1000
    - PGID=1000
    - TZ=America/Los_Angeles
  volumes:
    - /dockerdata/heimdall/config:/config

  # Network - will default to the default bridge network, allowing this
  # container to communicate with other services via IP Address (but not host name).

  # Image has no valid DNS entry. Set it here to include it in container's /etc/resolv.conf
  dns:
   - 8.8.8.8

  ports:
    # Of the form: External:Internal (port running inside container)
    - 8006:80
    - 406:443
  restart: unless-stopped

Launch the container: docker-compose up -d heimdall

Observe the docker log to make sure all is ok: docker logs –tail=”200″ -f heimdall

Heimdall Evaluation

Browse to Browse to your-IP-here:8006 to start configuring your dashboard.

With the built-in configuration GUI, I found setting up my services super easy.

In just a few minutes, I had a preliminary dashboard.

The bad news is this is about as far as I got before identifying a number of limitations.

The first is there is no way to group your items one 1 screen in any way other than their order on screen. With over 2 dozen items, I wanted to separate mine into separate panels for devices, services, hosted applications, and more. This is a major limitation.

Next, if your application is not in the list of supported items, there is no generic alternative. The only option is to create your own custom item, which is way more trouble than I wanted to deal with (see Creating Private Apps). I tried looking around for supported apps with a matching configuration interface, but then you are stuck with the wrong icon (and nope, you can’t change it).

Overall, Heimdall is easy to set up and looks nice. If your set up is simple, it may be a good option for you. I chose to abandon it, and am now exploring alternatives. More on this later.