Архитектура и производительность
Homepage — это современное приложение для создания панели управления (dashboard), которое выделяется своим подходом к генерации контента. В отличие от многих динамических веб-приложений, Homepage использует статическую генерацию (SSG) на базе Next.js. Это обеспечивает мгновенную загрузку страниц, так как весь контент формируется на этапе сборки, а не при каждом запросе пользователя.
Проект позиционируется как полностью статический, быстрый и безопасный. Все API-запросы к бэкенд-сервисам проксируются через само приложение, что позволяет скрывать API-ключи от конечного пользователя и снижает риски утечки данных. Проект активно поддерживается сообществом, включающим более 200 контрибьюторов, и регулярно проходит аудит безопасности.
Интеграции и экосистема
Ключевое преимущество Homepage — поддержка более 100 сервисов. Система автоматически обнаруживает контейнеры Docker через метки (labels) и предоставляет виджеты для популярных self-hosted решений. Особое внимание уделено экосистеме *arr (Radarr, Sonarr, Lidarr, Bazarr), медиа-серверам (Plex, Jellyfin, Emby) и торрент-клиентам (Transmission, qBittorrent, Deluge).
| Категория | Примеры интеграций | Функционал |
|---|---|---|
| Медиа и контент | Plex, Jellyfin, Emby, Ombi | Статус серверов, метаданные контента |
| Загрузки (P2P/NZB) | qBittorrent, Transmission, Deluge, NZBGet, SABnzbd | Мониторинг задач, управление очередью |
| Автоматизация | Radarr, Sonarr, Lidarr, Bazarr, Jackett | Статус поиска и скачивания медиа |
| Информационные виджеты | Weather, Time, Date, Glances, Search | Погода, системные метрики, глобальный поиск |
Безопасность и доступ
Разработчики делают акцент на безопасности при работе с персональными данными (например, от систем умного дома). Если Homepage доступен из ненадежных сетей, настоятельно рекомендуется размещать его за обратным прокси-сервером с поддержкой TLS и строгой валидацией заголовков Host.
Для аутентификации предусмотрены два опциональных механизма:
- OIDC login flow — интеграция с внешними провайдерами идентификации.
- Simple password login — базовая защита паролем (режим "authenticated or not").
Технические детали развертывания
Приложение кроссплатформенное, образы собираются для архитектур AMD64 и ARM64, что делает его доступным для широкого спектра устройств, включая Raspberry Pi. Поддерживается полная локализация (i18n) на более чем 40 языках.
Конфигурация осуществляется через YAML-файлы. Для запуска в Docker используется образ ghcr.io/gethomepage/homepage:latest. Обязательным параметром является переменная окружения HOMEPAGE_ALLOWED_HOSTS, которая задает разрешенные хосты для доступа.
Для разработчиков
Проект открыт для контрибуций. Разработка ведется с использованием pnpm и Next.js. Документация генерируется с помощью инструмента Zensical. Исходный код доступен на GitHub, где также размещены подробные инструкции по настройке, устранению неполадок и созданию собственных тем оформления.
Источник: Github ↗
