tidbyt-unraid

tidbyt-unraid

Docker app from cmalec's Repository

Overview

Display live Unraid server metrics on your Tidbyt device. Uses the official Unraid GraphQL API (Unraid 7.2+) and pushes directly to your Tidbyt over WiFi.

Tidbyt Unraid Monitor

A self-contained Docker app that displays Unraid server metrics on your Tidbyt device.

Features

  • Fully local — runs entirely on your Unraid server (or any Docker host)
  • No cloud dependencies — pushes directly to your Tidbyt over WiFi
  • Customizable metrics — choose what to display and how often
  • Auto-scaling layout — fonts resize dynamically based on how many metrics you enable
  • Auto-updating — refreshes on your chosen interval

How It Works

  1. Fetch — The container queries your Unraid's native GraphQL API for the metrics you've enabled
  2. Render — It builds a 64x32 WebP image using PIL: metric labels and values in a centered grid layout
  3. Push — The image is pushed to your Tidbyt device via Tidbyt's HTTP API
  4. Repeat — Sleeps for UPDATE_INTERVAL seconds and does it again

The renderer dynamically scales fonts to fit your chosen metrics. Fewer metrics = bigger text. More metrics = compact layout.

Supported Metrics

Metric Label Description
cpu CPU CPU load percentage
ram RAM RAM usage percentage
array ARR Array state + capacity used
temps TMP Average disk temperature
docker DKR Running / total containers
vms VM Running / total VMs
uptime UP Server uptime (e.g. 5d3h)
network hostname Short hostname display

Note: Only the first 4 metrics are displayed. The renderer uses a grid layout:

  • 1 metric → full screen
  • 2 metrics → side by side
  • 3 metrics → top half + bottom row split
  • 4 metrics → 2×2 grid

Display Example

4-metric grid layout

Quick Start

1. Prerequisites

  • Unraid server running 7.2+ (native GraphQL API)
  • Tidbyt device set up and connected
  • Docker enabled/installed

2. Get Your Credentials

Tidbyt:

  • Open the Tidbyt app → your device → Settings
  • Note your Device ID and API Key

Unraid:

  • Unraid 7.2+ exposes a native GraphQL API at https://tower.local/graphql
  • Generate an API key in Settings → Management Access → API Keys in the Unraid web UI

3. Run with Docker Compose

# Clone the repo
git clone https://github.com/cmalec/tidbyt-unraid.git
cd tidbyt-unraid

# Edit environment variables
nano docker-compose.yml

# Pull and run from GitHub Container Registry
docker-compose up -d

Or use docker run:

docker run -d \
  --name tidbyt-unraid \
  --restart unless-stopped \
  -e UNRAID_URL=https://tower.local \
  -e UNRAID_API_KEY=your-key \
  -e TIDBYT_DEVICE_ID=your-device-id \
  -e TIDBYT_API_KEY=your-api-key \
  -e UPDATE_INTERVAL=3600 \
  -e METRICS=cpu,ram,array,uptime \
  ghcr.io/cmalec/tidbyt-unraid:latest

To build locally instead, use docker build -t tidbyt-unraid:latest . and update the image name in docker-compose.yml.

4. Environment Variables

Variable Required Default Description
UNRAID_URL Yes Unraid server URL (e.g. https://tower.local)
UNRAID_API_KEY Yes API key for authentication
TIDBYT_DEVICE_ID Yes Your Tidbyt device ID
TIDBYT_API_KEY Yes Your Tidbyt API key
UPDATE_INTERVAL No 3600 (1 hour) Seconds between updates
METRICS No cpu,ram,array,uptime Comma-separated list of metrics
TEMP_UNIT No F Temperature unit (C or F)
TZ No America/Los_Angeles Timezone for logs

5. Installing on Unraid

  1. Go to Apps → search for "Tidbyt Unraid" (if published) or use the Community Applications template
  2. Fill in the environment variables
  3. Apply

Or manually add as a custom Docker container with the variables above.

Customizing Metrics

To change what appears on your Tidbyt, edit the METRICS environment variable. It's a comma-separated list with no spaces. After changing METRICS, restart the container. The layout auto-scales with 1 metric → full screen, 2 metrics → side by side, 3 metrics → top half + bottom row split, 4 metrics → 2×2 grid.

Example Logs

==================================================
Tidbyt Unraid Monitor
==================================================
Unraid URL: http://ip.example
Tidbyt Device: your-device-id
Update interval: 3600s
Metrics: cpu, ram, docker, vms
==================================================
Fetching Unraid metrics...
Rendering image...
Pushing to Tidbyt...
Push result: {}
Sleeping 3600s...

Troubleshooting

Connection refused to Unraid:

  • Verify UNRAID_URL points to your Unraid server (default: https://tower.local)
  • Ensure the API key is valid in Settings → Management Access → API Keys

Push fails:

  • Double-check your TIDBYT_DEVICE_ID and TIDBYT_API_KEY
  • Ensure your Tidbyt is online and connected to WiFi

Self-signed certificate errors:

  • The app disables SSL verification for Unraid connections (Unraid uses self-signed certs by default)

Media gallery

Install tidbyt-unraid on Unraid in a few clicks.

Find tidbyt-unraid in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for tidbyt-unraid Review the template variables and paths Click Install

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/cmalec/tidbyt-unraid:latest
Last Updated2026-07-01
First Seen2026-06-22

Runtime arguments

Network
bridge
Privileged
false

Template configuration

Unraid URLVariable

Your Unraid server URL (e.g. https://tower.local or http://192.168.1.100)

Target
UNRAID_URL
Unraid API KeyVariable

API key from Unraid (Settings → Management Access → API Keys)

Target
UNRAID_API_KEY
Tidbyt Device IDVariable

Your Tidbyt device ID (from Tidbyt app)

Target
TIDBYT_DEVICE_ID
Tidbyt API KeyVariable

Your Tidbyt API key (from Tidbyt app settings)

Target
TIDBYT_API_KEY
Update IntervalVariable

Seconds between updates (default 1hr)

Target
UPDATE_INTERVAL
Default
3600
MetricsVariable

Comma-separated, max 4: cpu,ram,array,temps,docker,vms,uptime,network

Target
METRICS
Default
cpu,ram,array,uptime
Temperature UnitVariable

C or F

Target
TEMP_UNIT
Default
F
TimezoneVariable

Timezone for logs

Target
TZ
Default
America/Los_Angeles