Как создать личный дашборд для хоумлаба: пошаговое руководство с Dashy
Научитесь собирать и настраивать персональный дашборд для мониторинга сервисов в хоумлабе. Подробное руководство по Dashy, интеграции виджетов и безопасности.
Установка Docker и Docker Compose
Для начала необходимо подготовить операционную систему (Ubuntu/Debian) и установить Docker. Если Docker уже установлен, этот шаг можно пропустить.
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginСоздание структуры проекта
Создадим отдельную директорию для дашборда и подпапку для конфигурационных файлов, чтобы данные не потерялись при удалении контейнера.
mkdir -p ~/dashboard/config
cd ~/dashboardСоздание файла docker-compose.yml
В корневой папке создадим файл docker-compose.yml. В нем мы определим сервис Dashy. Важно пробросить порт 4000 (или любой свободный) и монтировать том с конфигом.
nano docker-compose.ymlНастройка docker-compose.yml
Вставьте следующее содержимое в открытый файл. Это настроит запуск Dashy и связь с файлом конфигурации.
version: "3.8"
services:
dashy:
image: lissy93/dashy:latest
container_name: dashy
ports:
- 4000:80
volumes:
- ./config/conf.yml:/app/public/conf.yml
environment:
- NODE_ENV=production
restart: unless-stopped
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 30sСоздание конфигурации дашборда
Теперь создадим файл конфигурации внутри папки config. Этот файл определяет внешний вид, название и список ссылок.
nano config/conf.ymlСодержимое конфигурации (Пример)
Минимальная рабочая конфигурация. Скопируйте это содержимое в файл. Вы можете менять URL, названия и иконки (используются классы FontAwesome).
appConfig:
title: Мой Хоумлаб
subtitle: Центральное управление
theme: material
language: ru
sections:
- name: Основное
icon: fas fa-server
items:
- title: Proxmox
description: Виртуализация
icon: fas fa-desktop
url: https://192.168.1.10:8006
- title: Router
description: Панель роутера
icon: fas fa-network-wired
url: http://192.168.1.1
- name: Медиа
icon: fas fa-film
items:
- title: Jellyfin
description: Медиацентр
icon: fas fa-play-circle
url: http://192.168.1.10:8096Запуск дашборда
Запустим контейнеры в фоновом режиме. После выполнения команды откроется доступ к дашборду.
sudo docker compose up -dПроверка работы
Откройте браузер и перейдите по адресу http://IP-адрес-вашего-сервера:4000. Вы должны увидеть ваш дашборд со ссылками.
Установка Uptime Kuma (Мониторинг статуса)
Чтобы дашборд показывал, работают ли сервисы, добавим Uptime Kuma в docker-compose.yml. Остановите контейнер (Ctrl+C) или редактируйте файл и обновите через docker compose up.
nano docker-compose.ymlКонфигурация Uptime Kuma
Добавьте этот блок под сервисом dashy в docker-compose.yml.
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
ports:
- 3001:3001
volumes:
- uptime-kuma-data:/app/data
restart: unless-stoppedИнтеграция статуса в Dashy
После запуска Kuma, зайдите на IP:3001, настройте проверки. Чтобы видеть их в Dashy, добавьте виджет iframe в config/conf.yml.
nano config/conf.ymlДобавление виджета
Добавьте секцию widgets в ваш conf.yml. Замените IP на адрес вашего сервера.
widgets:
- type: iframe
options:
url: http://192.168.1.10:3001
width: 2
height: 1
title: Статус сервисовОбновление сервисов
Примените изменения и перезапустите сервисы.
sudo docker compose up -dЗащита доступа (Базовая аутентификация)
Для защиты дашборда добавим простую аутентификацию. Редактируем docker-compose.yml для сервиса dashy.
nano docker-compose.ymlНастройка пароля
Добавьте переменные окружения в сервис dashy.
environment:
- NODE_ENV=production
- BASIC_AUTH_USER=admin
- BASIC_AUTH_PASS=supersecretПерезапуск с новыми настройками
Примените изменения.
sudo docker compose up -dБэкап настроек
Настройки хранятся в папке ~/dashboard. Для бэкапа скопируйте содержимое папки или создайте архив. Пример скрипта для cron.
#!/bin/bash
DATE=$(date +%Y-%m-%d)
tar -czf ~/dashboard_backup_$DATE.tar.gz -C ~/dashboard .
echo "Backup created: ~/dashboard_backup_$DATE.tar.gz"