Configuring Homer Dashboard

Configuring Homer Dashboard

In a previous post, I showed you how to get Homer up and running as a self-hosted dashboard in Docker to easily manage and see all of your self hosted services at a glance.  I did not, however, go into depth on how to configure Homer.

This guide will cover exactly that.

To quickly get into this file and begin editing it, navigate to your data directory within your Homer directory.  In here, you will see your config.yml file.  Open it with the text editor of your choosing.

Initially, it will be pretty bare but will give you a basic framework to go off of when building your dashboard.  If you'd like a bit more of a built out template, you can use mine, which in its current state is unfinished but is a bit more feature rich than the one initially provided to by a fresh install of the application.

---
# Homepage configuration
# See https://fontawesome.com/icons for icons options

title: "Cude Web Services"
subtitle: "Dashboard"
#logo: "logo.png"
# icon: "fas fa-skull-crossbones" # Optional icon

header: true
footer: false 
columns: "4"

# Optional theme customization
theme: default
colors:
  light:
    highlight-primary: "#3367d6"
    highlight-secondary: "#4285f4"
    highlight-hover: "#5a95f5"
    background: "#f5f5f5"
    card-background: "#ffffff"
    text: "#363636"
    text-header: "#ffffff"
    text-title: "#303030"
    text-subtitle: "#424242"
    card-shadow: rgba(0, 0, 0, 0.1)
    link-hover: "#363636"
  dark:
    highlight-primary: "#3367d6"
    highlight-secondary: "#4285f4"
    highlight-hover: "#5a95f5"
    background: "#131313"
    card-background: "#2b2b2b"
    text: "#eaeaea"
    text-header: "#ffffff"
    text-title: "#fafafa"
    text-subtitle: "#f5f5f5"
    card-shadow: rgba(0, 0, 0, 0.4)
    link-hover: "#ffdd57"

# Optional message
#message:
#  #url: https://b4bz.io
#  style: "is-dark" # See https://bulma.io/documentation/components/message/#colors for styling options.
#  title: "Demo !"
#  icon: "fa fa-grin"
#  content: "This is a dummy homepage demo. <br /> Find more information on <a href='https://github.com/bastienwirtz/homer'>github.com/bastienwirtz/homer</a>"

# Optional navbar
# links: [] # Allows for navbar (dark mode, layout, and search) without any links
links:
  - name: "Github"
    icon: "fab fa-github"
    url: "https://github.com/tanner4137"
    target: "_blank" # optional html a tag target attribute
  - name: "Wiki"
    icon: "fas fa-book"
    url: "https://www.wikipedia.org/"
  # this will link to a second homer page that will load config from additionnal-page.yml and keep default config values as in config.yml file
  # see url field and assets/additionnal-page.yml.dist used in this example:
  - name: "Blog"
    icon: "fas fa-file-alt"
    url: "https://tcude.net" 

# Services
# First level array represent a group.
# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
services:
  - name: "Server Monitoring"
    icon: "fas fa-cloud"
    items:
      - name: "Elmer - iDrac"
        logo: "assets/tools/sample.png"
        subtitle: "Lights Out Monitoring"
        tag: "app"
        url: "https://10.10.30.13/login.html/"
        target: "_blank" # optional html a tag target attribute
      - name: "Daffy - iLO"
        logo: "assets/tools/sample.png"
        subtitle: "Lights Out Monitoring"
        tag: "app"
        url: "https://10.10.0.102/"
      - name: "Scrutiny"
        logo: "assets/tools/sample.png"
        subtitle: "SMART data at a glance"
        tag: "app"
        url: "https://10.10.0.102/"
  - name: "Virtualization"
    icon: "fas fa-cloud"
    items:
      - name: "vCenter"
        logo: "assets/tools/sample.png"
        subtitle: "vCenter Appliance"
        tag: "app"
        url: "https://vcenter.tcudelocal.net"
        target: "_blank" # optional html a tag target attribute
      - name: "ESXi - Elmer"
        logo: "assets/tools/sample.png"
        subtitle: "ESXi Management Page"
        tag: "app"
        url: "https://elmer.tcudelocal.net"
      - name: "ESXi - Daffy"
        logo: "assets/tools/sample.png"
        subtitle: "ESXi Management Page"
        tag: "app"
        url: "https://daffy.tcudelocal.net"
  - name: "Media Server"
    icon: "fas fa-cloud"
    items:
      - name: "Plex"
        logo: "assets/tools/sample.png"
        subtitle: "Plex Media Server"
        tag: "app"
        url: "https://10.10.2.101:32400"
        target: "_blank" # optional html a tag target attribute
      - name: "Tautulli"
        logo: "assets/tools/sample.png"
        subtitle: "Plex Monitoring and Management"
        tag: "app"
        url: "https://10.10.2.101:8181"
      - name: "Scrutiny"
        logo: "assets/tools/sample.png"
        subtitle: "SMART Info at a Glance"
        tag: "app"
        url: "10.10.2.101:8080/web/dashboard"
      - name: "Portainer - svr-plex-01"
        logo: "assets/tools/sample.png"
        subtitle: "Portainer instance residing on svr-plex-01"
        tag: "app"
        url: "http://10.10.2.101:9000/#!/home"
  - name: "Management"
    icon: "fas fa-cloud"
    items:
      - name: "Unifi"
        logo: "assets/tools/sample.png"
        subtitle: "Personal Unifi Network"
        tag: "app"
        url: "https://10.10.0.1/login?redirect=%2F"
        target: "_blank" # optional html a tag target attribute
      - name: "UptimeRobot"
        logo: "assets/tools/sample.png"
        subtitle: "Monitor Service Uptime"
        tag: "app"
        url: "https://stats.uptimerobot.com/onVGVcXOB6"
      - name: "Cloudflare"
        logo: "assets/tools/sample.png"
        subtitle: "DNS and WAF"
        tag: "app"
        url: "https://dash.cloudflare.com/login"
      - name: "Portainer - svr-docker-01"
        logo: "assets/tools/sample.png"
        subtitle: "Portainer instance residing on svr-docker-01"
        tag: "app"
        url: "http://10.10.80.192:9000/#!/home"

As stated previously, at the time of this writing, the file shown above isn't quite finished but you can always check in my Github to see the most updated version of my config.yml file.

Pro Tip

If you aren't wanting to constantly edit your config.yml file within a text editor like VIM or Nano, consider doing a bit more setup work to have an even more convenient workflow by utilizing Git.  Take a look at this blog post if you're interested in converting your existing files into a git project.

My workflow consists of me editing my config.yml file on my laptop using VSCode, saving and pushing the changes to Github, and then pulling the changes to my local docker server.

Using an IDE such as VSCode for something like this comes with the advantages of easily being able to reference other files within your project, like images in the case of Homer, as well as several other neat features.

Personally, I switch between VSCode and VIM all the time, depending on the use case, but keeping all of my projects within Github has remained a consistent process, regardless of whether I'm using VSCode to edit on my local machine or not.

Conclusion

That's all there is to it.  

As a side note, you might have noticed that I recently added Disqus commenting to the blog.  Should you have any questions related to the set up of Homer, or questions related to any of my other blog posts, feel free to drop a comment!