Heimdall или Dashy: что выгоднее и когда
Если на сервере крутится больше трёх self-hosted сервисов — Portainer, Grafana, Nextcloud, домашний Git — рано или поздно надоедает держать закладки на все адреса и порты. Хочется одну страницу со ссылками, статусами и виджетами. Два самых обсуждаемых кандидата на эту роль — Heimdall и Dashy, и они устроены принципиально по-разному. Разберём, чем именно, и когда какой выбор окажется правильным.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что это вообще такое и в чём разница философий
Heimdall — «стартовая страница» в классическом смысле: PHP-приложение (Lighthouse-фреймворк) с SQLite-базой внутри контейнера, где вы добавляете приложения через веб-интерфейс — кликами, без единого текстового файла. Это ближе к панели закладок из 2010-х, только красивой и с иконками сервисов из встроенной библиотеки.
Dashy — YAML-конфигурация как основа всего. Один файл conf.yml описывает разделы, ссылки, иконки, виджеты статуса и тему целиком. Интерфейс тоже позволяет редактировать через UI и сохранять изменения обратно в файл, но по духу это «инфраструктура как код»: конфиг живёт в git, его можно версионировать и переносить одним файлом на другой сервер.
Разница ощущается сразу на втором дне использования. С Heimdall вы кликаете «Add Application», выбираете иконку из каталога, вводите URL — и всё в браузере. С Dashy вы правите YAML (в браузере или в редакторе на сервере), а интерфейс — это просто рендер этого файла.
Установка и первый запуск
Оба разворачиваются в Docker за пару минут, отличие — в том, что происходит дальше.
Heimdall:
services:
heimdall:
image: lscr.io/linuxserver/heimdall:latest
container_name: heimdall
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Moscow
volumes:
- ./config:/config
ports:
- "8080:80"
- "8443:443"
restart: unless-stopped
После docker compose up -d вы попадаете на пустую страницу и добавляете приложения вручную через плюсик. Никакой предварительной подготовки не требуется — это и есть главное преимущество Heimdall на старте.
Dashy:
services:
dashy:
image: lissy93/dashy:latest
container_name: dashy
volumes:
- ./my-conf.yml:/app/public/conf.yml
ports:
- "4000:8080"
environment:
- NODE_ENV=production
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "/app/services/healthcheck"]
interval: 1m30s
Тут придётся заранее создать my-conf.yml, иначе контейнер стартует с дефолтным демо-конфигом Dashy — со ссылками на GitHub и документацию проекта, которые потом надо чистить. Минимальный рабочий файл:
pageInfo:
title: Панель сервисов
navLinks:
- title: Документация Dashy
path: https://dashy.to/docs
appConfig:
theme: dracula
layout: auto
sections:
- name: Инфраструктура
icon: fas fa-server
items:
- title: Portainer
icon: hl-portainer
url: https://portainer.example.com
statusCheck: true
- title: Grafana
icon: hl-grafana
url: https://grafana.example.com
statusCheck: true
Полный список готовых compose-файлов и пошаговых установок обоих сервисов — в Heimdall в Docker Compose и пошаговой установке Dashy на Ubuntu 24.04.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверКонфигурация: UI против кода
Это ключевое различие, вокруг которого строится весь остальной выбор.
В Heimdall всё состояние — 60+ приложений, иконки, теги — лежит в SQLite внутри /config. Плюс: не нужно знать YAML, добавить ссылку может кто угодно за 10 секунд. Минус: перенос на новый сервер — это перенос файла базы данных, а не читаемого текста; диффы в git бессмысленны, откат к прошлой версии панели неудобен.
В Dashy весь конфиг — читаемый YAML. Плюсы: можно держать в git-репозитории рядом с остальным IaC, делать git diff перед принятием изменений, откатывать одной командой, генерировать конфиг скриптом (например, из списка контейнеров через docker ps). Минус: нужно писать (или копировать) YAML, а синтаксические ошибки в отступах — источник половины багрепортов на Dashy в issues на GitHub.
Если у вас команда и панель — общий инструмент, YAML-подход Dashy обычно выигрывает: конфиг ревьюится в pull request'е так же, как код. Если панель — личный список закладок и трогаете её вы один раз в месяц, кликабельный UI Heimdall быстрее.
Внешний вид, темы и виджеты
Heimdall делает акцент на визуальной простоте: сетка плиток, встроенная библиотека логотипов популярных сервисов, несколько цветовых тем, поддержка «умных» карточек — модулей для конкретных приложений (например, показывать число загрузок в Sonarr/Radarr прямо на плитке через API-ключ). Список таких интеграций ограничен набором популярных self-hosted медиасервисов и не так широк, как хотелось бы для инфраструктурных панелей.
Dashy заметно богаче на виджеты общего назначения: погода, курсы валют, статус Docker-контейнеров, RSS-лента, системная нагрузка через glances, произвольный HTML-блок и десятки готовых виджетов сообщества. Тем в Dashy тоже больше — от минималистичной до «ретро-терминала», плюс можно писать свой CSS поверх.
Оба поддерживают проверку доступности ссылок (индикатор «сервис жив/недоступен»), но у Dashy эта функция настраивается тоньше — можно задать интервал опроса, ожидаемый HTTP-код, метод запроса для каждой ссылки отдельно.
Потребление ресурсов на VPS
Ни одна из панелей не тяжёлая по меркам сервера — обе рассчитаны на постоянную фоновую работу рядом с десятком других контейнеров, а не на выделенную машину под себя.
| Параметр | Heimdall | Dashy |
|---|---|---|
| Технологии | PHP + SQLite | Node.js (сборка на Vue при старте контейнера) |
| Хранение состояния | база в /config | один YAML-файл |
| Первый запуск контейнера | быстрый | заметно дольше — Dashy пересобирает статику при старте |
| Типичная нагрузка в простое | минимальная | минимальная, но выше базового потребления Node.js-процесса |
Точные цифры RAM и CPU сильно зависят от количества виджетов со статус-чеками (каждый — это периодический HTTP-запрос) и от того, сколько других контейнеров крутится рядом — не буду называть конкретные мегабайты, у вас на сервере они точно будут другими. Общая практика: обеим панелям достаточно скромного VPS с 1-2 ГБ RAM, если это не единственный сервис на машине — с запасом под остальной стек. Подробный разбор памяти под каждый вариант — в статьях сколько RAM нужно для Heimdall и по аналогичной методике для Dashy.
Дольше всего при первом запуске Dashy ждёт именно сборку статики — на слабом одноядерном VPS это может занять заметно больше времени, чем старт Heimdall. Дальнейшие перезапуски контейнера (без пересборки образа) — сопоставимы по скорости.
Когда выбрать Heimdall, когда Dashy
Сценарии, где выбор становится очевидным:
| Ситуация | Что выбрать | Почему |
|---|---|---|
| Личный сервер, 5-15 ссылок, редко меняются | Heimdall | Настроил через UI за 10 минут и забыл |
| Панель для команды, конфиг в git | Dashy | YAML ревьюится и версионируется как код |
| Нужны кастомные виджеты (погода, RSS, метрики) | Dashy | Библиотека виджетов шире и гибче |
| Домашний медиасервер (Sonarr/Radarr/Plex) | Heimdall | Готовые интеграционные карточки под этот стек |
| Панель генерируется скриптом из списка контейнеров | Dashy | Текстовый конфиг легко собрать программно |
| Минимум времени на настройку, максимум простоты | Heimdall | Ничего писать не нужно |
| Нужна тонкая настройка health-check по каждой ссылке | Dashy | Параметры проверки задаются гранулярно на уровне item |
Если сомневаетесь — начните с Heimdall: если через месяц упрётесь в его ограничения (нет нужного виджета, хочется версионировать конфиг), миграция на Dashy — это просто ручной перенос списка ссылок в YAML, часа на два-три работы для среднего набора сервисов. Обратная миграция сложнее, потому что придётся заново кликать всё через UI.
Обе панели обычно ставят за reverse proxy с TLS и, если сервисов много и они видны наружу — с отдельным слоем аутентификации. Как это собрать — в статье про Traefik как reverse proxy для Docker и про Authelia в Docker Compose, если нужен единый вход для всей панели, а не только https.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Можно ли перенести настройки Heimdall в Dashy автоматически?
Готового конвертера нет — придётся вручную выгрузить список ссылок (в Heimdall они видны в интерфейсе) и оформить их в YAML-секции Dashy. Для 20-30 ссылок это не больше часа.
Что проще защитить паролем — Heimdall или Dashy?
Оба сами по себе не имеют встроенной многопользовательской авторизации, поэтому доступ обычно закрывают на уровне reverse proxy (Basic Auth в Nginx/Traefik) или через отдельный SSO-слой вроде Authelia перед обеими панелями — разницы между ними в этом плане нет.
Dashy тяжелее в обслуживании, чем Heimdall?
Немного — YAML требует аккуратности с отступами, а Node.js-контейнер стартует дольше PHP. Но текстовый конфиг проще бэкапить одной строкой (cp conf.yml conf.yml.bak) и держать в git, чем файл SQLite.
Есть ли третий вариант, если ни один не подошёл?
Да, Homarr — более новый проект с drag-and-drop редактором и встроенной интеграцией с Docker API для автообнаружения контейнеров; он занимает промежуточную позицию между кликабельностью Heimdall и гибкостью Dashy. Установка описана в Homarr в Docker Compose.
Нужен ли отдельный сервер под панель запуска?
Нет — оба варианта легковесны и обычно живут рядом с остальными сервисами на одном VPS, занимая единицы процентов ресурсов в фоне.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →