Open-source и свой сервер 4 мин чтения

Homepage: одна стартовая страница команды со всеми сервисами

У команды ссылки на CRM, админку сайта, мониторинг и почту лежат в закладках и чатах. Разбираю Homepage (GPL-3.0): что это, как ставится в Docker, чем виджеты полезны бизнесу, как закрыть панель VPN или прокси, где хранить ключи и чего в ней нет.

Homepageстартовая страницадоступыself-hosted
Коротко. Homepage это панель быстрого доступа: одна страница со ссылками на CRM, админку сайта, мониторинг и почту, которая крутится на вашем сервере. Лицензия GPL-3.0, последний релиз v2.5.0 вышел 10 октября 2026 года. Настройка идёт через YAML-файлы или метки Docker, интеграций больше сотни. Встроенная защита появилась в версии 2.0: общий пароль или вход через OIDC. Документация всё равно просит ставить панель за прокси с авторизацией или за 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 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх