Ultimate Unraid Dashboard Docker-Compose

Community Developer 'falconexe' over at the unraid forums has built and maintained the amazing Ultimate Unraid Dashboard, which is a stack of applications to gather and display data for the server admin. It consists of:

  • InfluxDB - A time series database for storing data
  • Telegraf - An Agent for collections server metrics and storing them in influxdb
  • UnraidAPI - A WIP open source api for the UnRaid operating System
  • Varken - A plex agent for collection stats from common Plex apps and storing them in InfluxDB
  • Grafana - An incredible data visualization tool

Since this setup relies on so many different containers and configuration files, there have been attempts to 'ease' users into it with 'all-in-one' solutions (like testdasi's abandoned grafana-unraid-stack project), but it felt more realistic to use Docker-Compose for the job.

Prerequisites:

  • A Functioning Unraid Operating System on 6.10.2
    • This requirement is based on the new 'labels' provided for docker compose, which lets us set icons and 'webui' parameters for compose-built containers
  • Docker Compose Manager plugin

Installation

  • With the Docker-Compose-Manager plugin installed, scroll to the bottom of the 'Docker' tab and press 'Add New Stack'

  • Enter a name, and hit okay

  • Scroll back down, and Press the Gear next to the Stack you just created

  • Under 'Edit env', copy the .env variables from this repository, and paste them into the textbox. Replace any of the variables with data according to your UnRaid Setup

    • HOSTNAME - The hostname of your server. Usually its 'Tower'
    • TIMEZONE - Your Timezone
    • APPDATA_PATH - The path to your appdata share
      • If you want to bypass the unraid fs layer, you can put '/mnt/YOURCACHEDISKNAME/appdata'
    • UNRAID_API_UI_PORT - The Port you will access your 'UnraidAPI' container through
    • GRAFANA_UI_PORT = The Port you will access your 'Grafana' container through
    • GF_SERVER_ROOT_URL - The Grafana Server Root url.
    • GF_SECURITY_ADMIN_PASSWORD - Your Secret Admin Password for Grafana
  • Scroll down, press the gear again, and hit 'Edit Stack'

  • Copy and paste the 'Ultimate_Unraid_Dashboard.yml' contents into your text box.

    • Since Docker-Compose uses its own network, only ports set in the .env will clash with your unraid docker ports. Other ports are seen by other containers in the network with the 'expose' setting
  • This is not the end of your setup. Some containers require a Config file to be made, and will not start without them. Varken and Telegraf are the main two.

Config

Varken

  • In your /mnt/user/appdata, create a folder called 'GUS-varken'
    • You can change this, but you'll need to edit the Docker-Compose stack if you do.
  • Download the 'varken.ini' file in the /appdata/GUS-varken folder of this repository
  • The Varken.ini file consists of individual 'blocks' for each service you configure with it. You will need to go into each instance of tautulli/sonarr/radarr/lidarr/sickchill/ombi in order to set up the information like URLs and API Keys for each individual block
    • Read carefully, because there's a few ways to format things like ips/ports
  • Once all of your services you want to connect are configured in the varken.ini, place it into your appdata/GUS-varken folder on your server

Telegraf

The .conf file was created by skaterpunk. All credit goes to him for trimming it down to what's required

  • In your /mnt/user/appdata, create a folder called 'GUS-telegraf'
  • Download the 'telegraf.conf' file found in the /appdata/GUS-telegraf folder of this repository
  • Most of the config should be done. You may need to change is the influx username/password, if you set them, but the Docker-Compose doesn't specify any.
  • In the 'telegraf.conf, uncomment either the [[inputs.hddtemp]] or the [[inputs.ipmi_sensor]] line, depending on your method of gathering data
    • If you use server hardware, it will likely be the ipmi line, and you'll need the plugin
    • If you use consumner hardware, hddtemp will likely suffice
  • Move your telegraf.conf to the appdata/GUS-telegraf folder on your server

Again, massive thanks to skaterpunk for doing the hard config work

Grafana

If you already have set up the UUD and are transitioning to Docker-Compose there are a few things that need to be changed in the Grafana WebUI configuration. Your data sources are referred to by IP address,but you need to change them to refer by container names.
  • Hit the 'Compose Up' button in the 'Docker' UnRaid tab, the 'Docker Compose Down', then 'Docker Compose Up' again

    • This is to ensure the Grafana Plugins are installed/recognized properly
  • The Actual Grafana Dashboard is found in the official forum post. Scroll down to the attachments in the main post, and download the 'Current' version.

  • Log into Grafana, and hit the 'Configuration' on the left side panel

  • In the configuration, you will need to edit the Telegraf, UnraidAPI, and Varken data sources.

  • Replace your current IP in them with the container names 'telegraf', 'unraidapi', 'varken'

Telegraf
  • Hit 'Add Data Source' and choose an 'InfluxDB' data type

  • With the containers being on the same docker compose network, we can refer to them by container name in URLs.

  • Top fields:

  • Bottom Fields:

    • Database - telegraf
    • User - telegraf

UnraidAPI
  • Hit 'Add Data Source' and choose an 'JSON API' data type
  • With the containers being on the same docker compose network, we can refer to them by container name in URLs.
  • Top fields:

Varken
  • Hit 'Add Data Source' and choose an 'InfluxDB' data type
  • With the containers being on the same docker compose network, we can refer to them by container name in URLs.
  • Top fields:
  • Bottom Fields:
    • Database - telegraf
    • User - telegraf

If you've uploaded the dashboard found at falconexe's forum page, then you should be close to finished. You can close the configuration screen, and go to your dashboard. You will need to set the variables at the top of your dashboard to match the information related to your setup.

Since there are a few final things you can do (like add in a location api to visualize where plex streams originate), I highly recommend checking final configs with the official setup instructions found in the Unraid Forums: https://forums.unraid.net/topic/96895-ultimate-unraid-dashboard-uud/ as I just wanted to get you up and running with docker-compose.