Домашняя страница сервера (Heimdall)

Heimdall — домашняя страница сервера: единая закладка, с которой открываются все приложения сервера. Вместо того чтобы запоминать адреса каждого агента и инструмента, вы заходите на одну страницу и видите их карточки. Heimdall устанавливается из вкладки Heimdall страницы сервера и раздаётся в корне / вашего Nginx — у каждого сервера может быть своя домашняя страница со своим входом.

Установка

Вкладка Heimdall расположена справа от вкладки Nginx. Установка разворачивает контейнер agents-heimdall (образ lscr.io/linuxserver/heimdall) с файлом настройки и папкой data/, куда Heimdall сохраняет своё состояние (папка подключается к контейнеру как /config), в общей docker-сети сервера. Собственных опубликованных портов у контейнера нет: страница доступна только через корень Nginx, поэтому сначала устанавливается Nginx — попытка поставить Heimdall без него завершится понятной ошибкой в потоке прогресса.

Если на сервере ещё работает прежний Dashy, установка Heimdall аккуратно заменяет его: останавливает контейнер и удаляет папку dashy/, показывая свои шаги прогресса. Вкладка браузера получает заголовок «Agents», а иконка вкладки — логотип MultiAgent.

Собственный вход

Домашняя страница защищена собственной учётной записью — логином и паролем, которые задаются во вкладке Heimdall и никак не связаны с аккаунтами MultiAgent. Пароль хранится в зашифрованном виде, а на сервере дополнительно защищён (bcrypt внутри контейнера); страница открывается только после входа. Если при установке логин или пароль не задавались, они генерируются автоматически (логин — admin). Смена учётных данных во вкладке применяется фоновой синхронизацией без перезапуска контейнера; очистка логина открывает страницу вообще без входа.

Синхронизация карточек

Карточки на странице — это набор карточек, который MultiAgent ведёт из своей базы: по одной закреплённой карточке на каждого агента, продукт и инструмент с адресом (маршрут Nginx или прямой хост:порт для инструментов без веб-порта). Синхронизация проходит при каждом обновлении конфигурации Nginx, при установке и по кнопке Применить — MultiAgent собирает желаемое состояние из тех же записей базы, что и маршрутизация, и скрипт внутри контейнера применяет его одной операцией в базу Heimdall.

  • Реальные иконки — карточки несут логотипы реальных проектов: агенты — логотип Agent, приложения — логотип своего шаблона продукта, инструменты — логотип шаблона; файлы иконок загружаются в папку иконок Heimdall без обращения в интернет из контейнера;
  • Только своё — MultiAgent владеет ровно теми карточками, что создал: всё, что пользователь добавил в Heimdall сам (свои элементы, категории, тему, фон), не трогается, а выбранная пользователем иконка карточки сохраняется;
  • Разъехавшиеся карточки чинятся — откреплённая или убранная с доски управляемая карточка возвращается следующей синхронизацией; удалённая из MultiAgent запись исчезает с доски.

Доступ и приоритеты

Корень Nginx передаёт запросы на Heimdall по внутренней сети (http://heimdall:80) с теми же заголовками, что и маршрутизируемые подпапки. Приложения всегда имеют приоритет над внутренними путями Heimdall: агент со слагом settings будет отдан по /settings/, а сама домашняя страница продолжит работать в корне (вход /login и служебные пути /api/... нельзя перекрыть — так уже устроено). Если Heimdall остановлен или недоступен, ошибку получает только корень — подпапки приложений продолжают работать.

← Оглавление документации