---
title: "Домашняя страница сервера (Heimdall)"
id: "1699"
type: "page"
slug: "heimdall"
published_at: "2026-09-04T07:20:54+00:00"
modified_at: "2026-09-04T09:01:23+00:00"
url: "https://pastukhov.com/agents/multiagent/docs/heimdall"
markdown_url: "https://pastukhov.com/agents/multiagent/docs/heimdall.md"
excerpt: "Heimdall — домашняя страница сервера: единая закладка, с которой открываются все приложения сервера. Вместо того…"
---

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

[https://pastukhov.com/agents/multiagent/docs/heimdall.md](https://pastukhov.com/agents/multiagent/docs/heimdall.md)

**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 остановлен или недоступен, ошибку получает только корень — подпапки приложений продолжают работать.

[← Оглавление документации](/agents/multiagent/docs)
