Managing the Manager: The dashboard-admin Web UI

Published on July 27, 2025


The Other Half of the System

In my Dashboard TUI article, I introduced the Dashboard TUI, a fast, keyboard-driven menu for running homelab scripts. The power of that tool comes from its data-driven design: the menu is built dynamically from a MySQL table. But how do you manage that table? While any database client would work, a dedicated tool makes the process faster, safer, and more intuitive. That tool is the dashboard-admin.

The dashboard-admin is a simple, single-page web application that serves as the dedicated control panel for the TUI. It’s the manager for the manager. It allows you to add, edit, delete, and reorder the commands for your dashboard through a clean web interface, without ever needing to write a single line of SQL.

The Command Structure

The interface is built around the core components of a dashboard command:

Effortless Reordering

One of the most important features is the ability to change the menu order on the fly. Every command in the list has a simple set of up and down arrows. Clicking an arrow instantly swaps the command with its neighbor. Behind the scenes, the application is intelligently re-calculating the `sort_order` column in the database, ensuring there are no gaps. This allows you to organize your menu exactly how you want it, with your most-used commands at the top, without any manual database editing.

Part of the AL Haines Homelab Suite

This tool is another component of my ongoing project to build a suite of simple, robust, and interconnected tools for the command-line focused system operator. The `dashboard-admin` (a web app) and the `Dashboard TUI` (a terminal app) work together on the same set of data, each providing the best interface for its specific task. This is the core philosophy: use the right tool for the job, and ensure your data, not your code, defines the behavior.

Copyleft

Like the TUI, this project is free to use, modify, and share. The code is available on my GitHub. I build these tools to solve real-world problems for myself, and my hope is that they might be useful to others as well.


« Back to Home