A simple, fast, and efficient Text-based User Interface (TUI) for running common homelab scripts and commands. The dashboard is built with the Python Textual framework and is designed to be driven entirely by the keyboard.
- Database-Driven Menu: The menu is dynamically generated from a MySQL database table, making it easy to add, remove, or modify commands without changing the application code.
- Streaming Output: Long-running commands (like system updates) stream their output to the screen in real-time, preventing the UI from hanging.
- Interactive Command Support: Supports commands that require user input, as well as commands that need root privileges (via a graphical
sudopassword prompt). - Full-Screen Application Support: Can launch full-screen terminal applications like
far2lby suspending the dashboard and resuming when the application exits.
- A Linux system with Python 3.
- A working MySQL/MariaDB server.
- The
alsdatabase must exist. - The
als.dashboard_commandstable must be created in the database.
- Download and extract the project ZIP file to a location of your choice (e.g.,
~/Downloads/dashboard_TUI). - Navigate into the project directory in your terminal:
cd /path/to/dashboard_TUI - Make the installation script executable:
chmod +x install.sh - Run the installation script from within the project directory:
./install.sh
The script will guide you through installing dependencies.
This project includes a man page for easy reference. To install it manually:
- Ensure the target directory exists:
sudo mkdir -p /usr/local/share/man/man1 - Copy the
manpage file to the system directory:sudo cp /path/to/your/dashboard_TUI/dashboard.1 /usr/local/share/man/man1/ - Compress the
manpage (optional but good practice):sudo gzip /usr/local/share/man/man1/dashboard.1 - Update the
mandatabase:sudo mandb
After installation, you can view the documentation at any time by running man dashboard.
Before running the dashboard for the first time, you must create the dashboard_commands table. An example SQL file, dashboard_commands.sql, is included in this project to help you get started. You can import this file using a tool like phpMyAdmin or run it from the command line:
mysql -u your_user -p your_database < dashboard_commands.sql
After installation, simply run the main application file:
python3 /path/to/project/dashboard.py