Homepage: одна стартовая страница команды со всеми сервисами
У команды ссылки на CRM, админку сайта, мониторинг и почту лежат в закладках и чатах. Разбираю Homepage (GPL-3.0): что это, как ставится в Docker, чем виджеты полезны бизнесу, как закрыть панель VPN или прокси, где хранить ключи и чего в ней нет.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
DevOps-сопровождение: стартовая страница, защита доступа и мониторинг под ключГде у вас ссылка на админку
Новый менеджер спрашивает в чате, где CRM. Ему отвечают ссылкой. Потом он спрашивает про админку сайта, про мониторинг, про бота. Часть адресов лежит в закладках у основателя, часть в закрепе рабочего чата, часть в голове у человека, который уехал в отпуск.
Лечится это одной страницей «все наши системы». Открыл браузер, нажал на плитку, попал куда нужно. Если рядом с плиткой горит зелёный индикатор, сразу видно, что сервис жив. Такую страницу делает Homepage. Пока систем пять-десять, порядок в доступах наводится за вечер.
Что это за проект и что я проверил
Репозиторий gethomepage/homepage не архивирован. По файлу LICENSE это GPL-3.0. Последний релиз v2.5.0 опубликован 10 октября 2026 года, последний коммит в основной ветке от 11 октября. Проект живой: с начала сентября вышло четыре релиза, от v2.2.0 до v2.5.0.
В README написано: настройка через YAML или автообнаружение сервисов по меткам Docker, больше 100 интеграций, перевод на больше чем 40 языков, образы для AMD64 и ARM64, запросы к API идут через серверную часть, поэтому ключи не попадают в браузер. Всё это сверено с README и документацией.
О лицензии. GPL-3.0 разрешает использовать программу в своей компании без раскрытия чего-либо. Обязательства по исходникам возникают, когда вы распространяете изменённую версию. Договоры и продажу своей сборки сверяйте с юристом.
Как устроена настройка и какие виджеты пригодятся
Ставится Docker-образом из реестра ghcr.io, есть варианты для Kubernetes, UNRAID и сборка из исходников. Каталог настроек монтируется в контейнер, в нём лежат файлы services.yaml, bookmarks.yaml, widgets.yaml, settings.yaml и docker.yaml. Группа, название, иконка и адрес сервиса это четыре строки YAML. Если сервис запущен в Docker, те же поля задаются метками вида homepage.group и homepage.name, и плитка появляется сама.
Для бизнеса полезны виджеты из списка документации. Uptime Kuma показывает, какие проверки зелёные, о нём я писал в разборе мониторинга доступности. Portainer выводит состояние контейнеров, про сам инструмент есть отдельная статья. Есть виджеты для Grafana, Prometheus, Proxmox, Beszel, Glances, Nextcloud, Authentik и Healthchecks. В списке документации я насчитал около 160 виджетов сервисов, точное число меняется от релиза к релизу. Ваша CRM или самописный бот в этот список могут не попасть, тогда это обычная плитка со ссылкой без цифр.
Как закрыть панель от посторонних
Это главный пункт. На странице установки документация говорит прямо: публичные развёртывания Homepage нужно защищать через reverse proxy, VPN или что-то подобное (Public deployments of Homepage should be secured via a reverse proxy, VPN, or similar). Там же сказано, что виджеты могут показывать личные данные.
Встроенная защита есть с версии 2.0. Включается переменной HOMEPAGE_AUTH_ENABLED=true, нужны ещё секрет для cookie не короче 32 символов и внешний адрес панели. Дальше либо один общий пароль, либо вход через OIDC, например через Keycloak, о нём есть материал про единый вход. У пароля нет ограничения числа попыток. Документация советует ограничить частоту запросов к /api/auth/callback/credentials на прокси, неудачные входы пишутся в лог на уровне warn, их можно отдать fail2ban или CrowdSec.
Для малой команды я бы выстроил так. Первый слой: панель доступна только через VPN или туннель, про такие варианты есть статьи про Pangolin и Pritunl. Второй слой: встроенный пароль или OIDC. Третий: порт контейнера слушает только 127.0.0.1, наружу смотрит прокси. В примере из документации порт опубликован как 3000:3000, то есть на все интерфейсы, поэтому адрес 127.0.0.1 я добавляю от себя.
Где лежат ключи и как их не светить
Виджету нужен ключ API сервиса, и в примерах документации он стоит прямо в services.yaml. Любой, кто прочитает файл, прочитает ключ. Выбор тут такой. Подстановка из окружения: переменная HOMEPAGE_VAR_ИМЯ подставляется вместо {{HOMEPAGE_VAR_ИМЯ}} в любом конфиге. Либо HOMEPAGE_FILE_ИМЯ, где значение это путь к файлу с секретом. Файл .env с правами только для владельца, вне репозитория.
Ключи лучше выпускать с минимальными правами, только на чтение. Рядом с Docker осторожнее: документация не рекомендует подключать сокет напрямую, он требует запуска от root или членства в группе docker. Есть путь через docker-socket-proxy с запретом POST-запросов. Сами пароли от систем в Homepage не кладите, для них нужен менеджер, например Passbolt. Плитка ведёт на страницу входа и ничего больше.
Чего здесь нет
Ролей по людям в документации нет: либо вошёл, либо нет. С OIDC панель пустит любого, кого пропустил провайдер. Дополнительной проверки по группам Homepage не делает, это сказано в документации. Значит, «бухгалтеру не показывать мониторинг» через панель не настроить. Журнала действий, кто что открыл, я не нашёл, есть только записи о неудачных входах.
Панель не заменяет права в самих системах. Когда сотрудник уходит, плитка остаётся, а доступ в CRM надо отзывать там. Порядок действий разобран в статье про доступы в день ухода.
Что можно сделать уже сегодня вечером
- Выпишите все системы команды на лист: CRM, сайт, бот, мониторинг, почта, хостинг, бухгалтерия. У каждой адрес, владелец и способ входа.
- Разверните Homepage в Docker на своём сервере, версию образа закрепите номером вместо latest, порт откройте только на 127.0.0.1.
- В
HOMEPAGE_ALLOWED_HOSTSвпишите свой домен, включите вход по паролю или OIDC и поставьте перед панелью VPN или прокси с авторизацией. - Сделайте плитки на пять самых нужных систем, подключите виджеты мониторинга. Ключи через
HOMEPAGE_VAR_или файлы. - Закройте старые закладки и закрепы в чатах, оставьте одну ссылку. Раз в месяц сверяйте плитки со списком реальных доступов.
Если хотите получить это под ключ вместе с защитой и мониторингом, это входит в DevOps-сопровождение.
Частые вопросы
Можно ли выставить Homepage в интернет только с паролем?
Документация советует так не делать: для публичных развёртываний нужен прокси с авторизацией или VPN. Пароль в панели один на всех и без ограничения попыток.
Нужен ли Docker?
Нет. Есть сборка из исходников на Next.js и установка на Kubernetes через Helm. Автообнаружение по меткам работает только с Docker и Kubernetes.
Чем это отличается от Uptime Kuma?
Uptime Kuma проверяет доступность и шлёт уведомления. Homepage ничего не проверяет сам, он показывает ссылки и данные из других систем. Они дополняют друг друга.
Коротко о главном
Homepage собирает все системы команды на одной странице на вашем сервере, лицензия GPL-3.0, проект обновляется. Встроенная авторизация простая: общий пароль или OIDC, без ролей и журнала. Доступ нужно закрывать VPN или прокси, а ключи хранить в переменных окружения или файлах.
Если хотите стартовую страницу для вашей команды с закрытым доступом, напишите мне в Telegram кодовое слово «ПАНЕЛЬ», подберу набор плиток под ваши системы.
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


