Server Dashboard
Веб-панель для контроля и базового администрирования внутренних Linux-серверов.
О проекте
Server Dashboard собирает в одном интерфейсе состояние Linux-сервера, служб systemd, Docker, Fail2Ban, дисков, SMART и расписания. Панель позволяет выполнять ограниченный набор административных действий, вести журнал операций и подключать собственные модули без изменения ядра.
- Стек
- Python · PHP · JavaScript · Nginx · systemd
- Направление
- Внутренние инструменты
- Год
- 2026
Задача
На Linux-сервере состояние системы обычно приходится проверять разными командами и отдельными средствами: службы через systemctl, контейнеры через Docker, блокировки через Fail2Ban, диски через SMART, расписание через systemd timers.
Хотелось получить одну небольшую внутреннюю панель, в которой видно текущее состояние сервера и можно выполнить несколько повседневных административных действий без полноценной системы управления инфраструктурой.
При этом панель не должна была превращаться в универсальный комбайн. Важными требованиями были простая установка, работа без внешних облачных сервисов, ограничение привилегированных действий и возможность отключать ненужные функции.
Реализация
Server Dashboard состоит из веб-интерфейса и отдельной системной службы на Python. Веб-часть работает без привилегий root, а операции, которым нужны повышенные права, передаются системной службе через Unix-сокет.
В интерфейсе отображаются загрузка процессора, температура, память, средняя нагрузка, время работы сервера и заполнение файловых систем. Отдельные разделы показывают состояние служб systemd, контейнеров Docker, Fail2Ban, SMART и выбранных timer-юнитов systemd.
Административные действия ограничены конфигурацией. Можно отдельно указать, какие службы и контейнеры разрешено перезапускать и в каких правилах Fail2Ban разрешено снимать блокировки. Перезагрузка и выключение самого сервера требуют подтверждения.
В панели есть авторизация, защита от перебора пароля, CSRF-защита и журнал входов и административных действий. Для локальной эксплуатационной документации предусмотрен просмотр Markdown-файлов прямо из интерфейса.
Все основные страницы и компоненты можно включать и отключать через конфигурацию. Например, на сервере без Docker или Fail2Ban соответствующие пункты полностью исчезают из интерфейса.
Отдельно реализована система внешних модулей. Модуль может добавить собственную страницу или встроить блок в существующие разделы «Обзор» и «Система», используя общие элементы интерфейса. Благодаря этому специфичные для конкретного сервера функции не приходится добавлять в ядро проекта.
Для разработки собственных модулей в репозитории есть отдельная документация и готовый минимальный шаблон.
Результат
Получилась компактная панель для повседневного контроля внутреннего Linux-сервера. Основные состояния видны на одной странице, а типовые административные действия можно выполнить из браузера без постоянного подключения по SSH.
На моём сервере панель используется вместе с Docker, Fail2Ban, SMART, systemd и собственной эксплуатационной документацией. Дополнительные специфичные функции подключаются отдельными локальными модулями и не требуют изменений основного приложения.
Перед первым публичным выпуском проект прошёл несколько независимых проверок, после чего версия 1.0.0 была проверена в рабочей среде, включая установку, перезагрузку сервера и загрузку внешних модулей.
Проект опубликован на GitHub под лицензией MIT.