fegger 859af3c389 Add service logo icons
Official SVG logos for Open WebUI, ComfyUI, Gitea, Jellyfin, Immich,
Home Assistant, Nextcloud, Vaultwarden, Netbird, GitLab, Odoo (gem360)
and the Dubplate turntable, replacing the emoji placeholders.
2026-09-04 14:06:42 +02:00
2026-09-04 14:06:42 +02:00

Homelab Dashboard

A small, self-contained single-page dashboard that links all your homelab services. Static site (HTML + CSS + JS), served by a lightweight nginx image. No backend, no database, no build step — just static files.

Services

Internal: Open WebUI, ComfyUI, Gitea, Jellyfin, Immich, Home Assistant, Audio Server / Dubplate, Nextcloud, Vaultwarden, Nginx Proxy Manager, Netbird.

External: gitlab-ixsol, gem360.

Features

  • Responsive grid of service cards with icons, categories and a live "Online" indicator
  • Open (new tab) + Copy URL per service
  • Live search / filter across names, categories and URLs
  • Live local clock
  • Dark, themeable design; respects prefers-reduced-motion

Run with Docker

docker compose up -d --build

Then open http://localhost:8888.

Without Docker (quick dev)

Any static file server works:

# from this directory
python3 -m http.server 8888
# or: npx serve . -l 8888

Edit services

All services live in one array at the top of script.js. Add / remove / reorder entries there:

{ section: "internal", name: "My Service", url: "http://10.0.0.5:9000", cat: "infra", icon: "⚙️" }

section is either "internal" or "external". cat is any key from the CATEGORIES map (or add your own).

Build the image manually

docker build -t homelab-dashboard .
docker run -d --name homelab-dashboard -p 8888:80 --restart unless-stopped homelab-dashboard

Notes

  • The "Online" badge is cosmetic (a static site can't probe your services from the browser due to CORS). If you want real health checks later, a tiny backend that pings each URL would be the next step.
  • Port 8888 is published by the Compose file; change it there if needed.
S
Description
No description provided
Readme 173 KiB
Languages
JavaScript 69%
CSS 20.4%
HTML 5%
Python 3.5%
Dockerfile 1.2%
Other 0.9%