Создаём дашборд для Homelab с Dashy: руководство

Научитесь собирать и настраивать персональный дашборд для мониторинга сервисов в хоумлабе. Подробное руководство по Dashy, интеграции виджетов и безопасности.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор22 января 2026 г.

Установка 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"

Как собрать и настроить персональный дашборд для вашего хоумлаба

Введение

Дашборд (панель управления) в хоумлабе — это центральная точка доступа ко всем вашим сервисам, системам и мониторингу. Он позволяет:

  • Экономить время: Не нужно помнить адреса и порты десятка сервисов.
  • Повышать удобство: Клик по иконке перенаправляет к нужному ресурсу.
  • Контролировать состояние: Видеть, какие сервисы работают, а какие требуют внимания.

Что такое хоумлаб? Это не обязательно физический сервер. Хоумлабом может быть комбинация Raspberry Pi, NUC, виртуальных машин (Proxmox, ESXi) или даже мощного ПК под управлением Linux. Главное — желание экспериментировать с сетевыми сервисами, виртуализацией и системами хранения данных.


Основа: Выбор платформы и инструментов

Для хоумлаба лучшим выбором станут саморазворачиваемые решения с открытым исходным кодом (Open Source).

Рекомдуемый стек:

  1. Операционная система: Ubuntu Server, Debian или Ubuntu (предпочтительно LTS-версии).
  2. Система контейнеризации: Docker и Docker Compose. Это стандарт для современных хоумлабов.
  3. Платформа дашборда: Dashy. Это современный, красивый и простой в настройке дашборд. Он имеет мощную конфигурацию через YAML-файл, поддержку виджетов и иконок.
  4. Мониторинг: Uptime Kuma (для проверки доступности сервисов) и Glances (для мониторинга ресурсов хоста).

Требования:

  • Терминал для работы с командной строкой.
  • Docker и Docker Compose, установленные на хост-системе.

Сборка простого дашборда на базе Dashy

Dashy — идеальный старт для хоумлаба. Он визуально привлекателен и легко настраивается.

Шаг 1: Установка Docker и Docker Compose

Если Docker еще не установлен, выполните команды (для Ubuntu/Debian):

# Обновление списка пакетов
sudo apt update && sudo apt upgrade -y

# Установка зависимостей
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# Добавление официального GPG ключа Docker
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

# Установка Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Шаг 2: Создание директории и файла конфигурации

Создайте отдельную папку для хранения настроек дашборда:

mkdir -p ~/dashboard/config
cd ~/dashboard

Создайте файл docker-compose.yml:

nano docker-compose.yml

Вставьте следующее содержимое:

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

Шаг 3: Конфигурация дашборда

Теперь создадим сам файл конфигурации conf.yml. Он отвечает за внешний вид и ссылки.

nano config/conf.yml

Пример минимальной конфигурации:

# Дашборд должен быть публичным, чтобы видеть статусы (или приватным, если вы добавите аутентификацию)
public: true
appConfig:
  title: Мой Хоумлаб
  subtitle: Центральное управление
  theme: material
  layout: auto
  iconSize: medium
  language: ru

# Секции с ссылками (секции - это группы виджетов)
sections:
  - name: Основное
    icon: fas fa-server
    items:
      - title: Router
        description: Панель управления роутером
        icon: fas fa-network-wired
        url: http://192.168.1.1
      - title: Proxmox
        description: Панель управления виртуализацией
        icon: fas fa-desktop
        url: https://pve.local:8006
        target: _blank
  - name: Медиа
    icon: fas fa-film
    items:
      - title: Jellyfin
        description: Медиа-сервер
        icon: fas fa-play-circle
        url: http://192.168.1.100:8096
      - title: Prowlarr
        description: Агрегатор торрентов
        icon: fas fa-magnet
        url: http://192.168.1.100:9696

Шаг 4: Запуск

Запустите контейнер командой:

sudo docker compose up -d

Откройте браузер и перейдите по адресу: http://<IP-адрес-вашего-сервера>:4000.


Расширение функционала: Мониторинг и статусы сервисов

Без мониторинга дашборд — просто набор ссылок. Интегрируем проверку статуса и метрики.

Шаг 1: Установка Uptime Kuma

Uptime Kuma — отличный инструмент для проверки доступности (пинг, HTTP-статус).

Добавьте сервис в ваш 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

Запустите: sudo docker compose up -d.

Настройте мониторинг сервисов через веб-интерфейс на порту 3001. Создайте проверки для каждого сервиса из вашего дашборда.

Шаг 2: Настройка виджета статуса в Dashy

Dashy поддерживает виджеты. Мы добавим виджет, отображающий статус сервисов из Uptime Kuma или статические ссылки.

Измените файл config/conf.yml, добавив виджет:

widgets:
  - type: iframe
    options:
      url: http://localhost:3001 (или ссылка на ваш хост)
      width: 2
      height: 1
      title: Статус сервисов

Примечание: Если вы используете Uptime Kuma, лучше использовать API или iframe (если разрешено в настройках безопасности Uptime Kuma).

Шаг 3: Мониторинг ресурсов (Glances)

Glances показывает нагрузку на CPU, RAM, сеть прямо в браузере.

Добавьте в docker-compose.yml:

  glances:
    image: nicolargo/glances:latest
    container_name: glances
    pid: host
    ports:
      - 61208:61208
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /:/rootfs:ro
    restart: unless-stopped
    command: -w

В Dashy добавьте виджет с ссылкой на веб-интерфейс Glances (порт 61208).


Персонализация: Темы, виджеты и интеграции

Темы

Dashy имеет встроенные темы. Измените ключ appConfig.theme в conf.yml:

  • material (по умолчанию)
  • autumn (теплые тона)
  • monokai (темная для программистов)
  • dracula

Пример:

appConfig:
  theme: dracula

Кастомные иконки

Используйте Font Awesome (версия 5 или 6). Укажите класс иконки в свойстве icon секции или элемента.

  • Пример: icon: fas fa-database (сервер), icon: fas fa-video (видео).

Интеграция с Home Assistant (если используется)

Home Assistant часто живет в хоумлабе. Можно добавить ссылку на его панель или встроить iframe. Для более глубокой интеграции используйте RESTful сенсоры, но для базового дашборда достаточно ссылки.


Безопасность: Доступ из внешней сети

ВАЖНО: Прямой доступ к дашборту из интернета без защиты — огромная дыра в безопасности.

Вариант 1: VPN (WireGuard)

Самый безопасный способ. Установите WireGuard сервер на хоумлаб.

  1. Установите WireGuard: sudo apt install wireguard.
  2. Сгенерируйте конфигурации для клиентов (смартфон, ноутбук).
  3. Подключайтесь к VPN и используйте дашборт по внутреннему IP (192.168.x.x).

Вариант 2: Туннель (Cloudflare Tunnel / Ngrok)

Если нужен доступ без настройки роутера:

  • Cloudflare Tunnel (бесплатно): Требует домена.
    1. Установите cloudflared.
    2. Авторизуйте: cloudflared tunnel login.
    3. Создайте туннель и прокиньте трафик на localhost:4000.
    4. Настройте DNS-запись в Cloudflare.

Вариант 3: Обратный прокси (Nginx Proxy Manager)

Если у вас есть SSL-сертификаты и домен:

  1. Установите Nginx Proxy Manager через Docker.
  2. Создайте хост (Proxy Host) для dashboard.yourdomain.com.
  3. Проксируйте на http://localhost:4000.
  4. Получите SSL-сертификат (Let's Encrypt).

Аутентификация на уровне дашборда

Даже за прокси, добавьте базовую аутентификацию. В docker-compose.yml для Dashy добавьте переменные окружения:

environment:
  - BASIC_AUTH_USER=admin
  - BASIC_AUTH_PASS=ваш_сложный_пароль

Или используйте аутентификацию на уровне Nginx Proxy Manager.


Автоматизация и бэкапы настроек

Ваш дашборд и его конфигурации — это ценные данные. Их нужно регулярно бэкапить.

Бэкап конфигурации Dashy

Файл конфигурации лежит в папке ~/dashboard/config/conf.yml. Просто копируйте его.

Пример скрипта бэкапа (backup.sh):

#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/path/to/backups"
mkdir -p $BACKUP_DIR
# Копируем конфиг Dashy
cp ~/dashboard/config/conf.yml $BACKUP_DIR/conf_$DATE.yml
# Копируем все Docker volumes (включая данные Uptime Kuma)
tar -czf $BACKUP_DIR/dashboard_data_$DATE.tar.gz -C ~/dashboard .
# Очистка старых бэкапов (старше 30 дней)
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
find $BACKUP_DIR -name "*.yml" -mtime +30 -delete

Сделайте скрипт исполняемым: chmod +x backup.sh. Добавьте его в cron для ежедневного запуска.

Автоматическое обновление

Для обновления контейнеров можно использовать Watchtower. Он автоматически перезапускает контейнеры при выходе новых версий образов.

Добавьте в docker-compose.yml:

  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 300 # Проверка каждые 5 минут
    restart: unless-stopped

Заключение: Вдохновение и готовые конфигурации

Создание дашборда — это непрерывный процесс. Не пытайтесь собрать все сразу.

Ресурсы для вдохновения:

  1. Awesome Selfhosted (GitHub): Список альтернативных сервисов для хоумлаба.
  2. r/selfhosted (Reddit): Сообщество с обсуждением и скриншотами дашбордов.
  3. Docker Compose примеры: Репозитории на GitHub с готовыми docker-compose.yml для всего хоумлаба (например, "DockSTARTer").

Чек-лист готовности:

  • Docker установлен и работает.
  • Dashy доступен по локальному IP.
  • Виджеты ссылок настроены.
  • Мониторинг (Uptime Kuma) проверяет основные сервисы.
  • Настроен VPN или туннель для безопасного внешнего доступа.
  • Настроен бэкап конфигурации.

Управление хоумлабом — это навык, который приходит с практикой. Начните с малого, расширяйте по мере необходимости, и ваш персональный дашборд станет мощным инструментом управления цифровой жизнью.

Поделиться:TelegramX / TwitterVK