mysurik.ru

Homepage — статичный дашборд для сервера который я пожалел что не поставил раньше

Homepage — статичный дашборд для сервера который я пожалел что не поставил раньше

Увидел я как-то в реддите скриншот дашборда одного парня. У него там всё — серверы, погода, загрузка CPU, даже сколько кофе в офисе осталось. Я сижу смотрю на свои 14 вкладок в браузере — Proxmox, Portainer, AdGuard, Grafana, ещё три штуки — и чувствую себя пещерным человеком.

Решил: хрен его знает сколько это займёт, но хочу так же. Нашёл Homepage — open-source, статичный, без базы данных. То есть поднял и забыл. Идеально для параноика вроде меня.

Docker Compose файл — буквально 12 строк. image, ports, volumes, пара environment переменных. Пробросил /var/run/docker.sock — так Homepage сам видит все мои контейнеры и подхватывает иконки. Первый запуск: пустая страница. Ну хоть не упало, уже хорошо.

Дальше — документация. Честно скажу, Homepage не из тех проектов где можно на глазок. Их yaml-формат специфичный. Пришлось посидеть, покурить маны. Но когда разобрался — понеслась.

Создал services.yaml. Разбил всё на группы: Виртуализация — Proxmox, Мониторинг — Grafana + Uptime Kuma, Сеть — AdGuard + Nginx, Утилиты — Portainer + Heimdall. Для каждого сервиса прописал URL и иконку. Всё это без базы данных — просто текстовые yaml файлы.

Дальше — виджеты. Погода через OpenWeatherMap API. Системные метрики — CPU, память, диск. И главное — поисковая строка. Поставил себе поиск по умолчанию DuckDuckGo, больше не открываю новую вкладку ради поиска.

Долго возился с Docker discovery. Homepage умеет сканировать Docker сокет и сам подцеплять контейнеры с иконками. Но если контейнер не имеет label’ов — будет тупо показывать имя. Пришлось добавить labels в docker-compose каждого сервиса. Туповато, но работает.

Из неприятного — не взлетела интеграция с Proxmox через API. В документации написано что поддерживается, но у меня на девятой версии Proxmox что-то пошло не так. Не выводил статистику по VM. Забил, повесил просто ссылку.

Сейчас Homepage висит на порту 3000, закрыт базовой аутентификацией через Nginx. Сделал себе правило — утром открываю дашборд а не 14 вкладок. Сэкономил, наверное, минут 10-15 в день. По мелочи, но приятно.

Единственный минус — Homepage написан на Node.js и жрёт около 200MB RAM. Для дашборда это перебор, согласен. Но у меня на сервере 8 гигов, могу себе позволить такую роскошь.

В итоге это одна из тех вещей которую я пожалел что не сделал раньше. Как переезд с голого редактора на IDE. Ничего критичного не меняет, но жить становится чуточку удобнее.

Если у тебя больше трёх сервисов на сервере — попробуй. Неделя привыкания, и ты уже не представляешь как жил без этого. По крайней мере у меня так.

Расскажу эту историю полностью, потому что переход на Homepage дал мне не только удобство, но и полезный опыт, которым стоит поделиться. Начну с того, что меня подтолкнуло.

Всё началось с картинки в реддите. Парень показал свой дашборд — красивая страница, на которой собраны все сервисы: серверы, погода, загрузка CPU, всякие интеграции. Я посмотрел на свои четырнадцать вкладок в браузере — Proxmox, Portainer, AdGuard, Grafana и ещё кучу всего — и почувствовал себя пещерным человеком. Каждое утро я открывал браузер и начинал сеанс «собери все вкладки обратно». Решение пришло само: мне нужен дашборд, единая стартовая страница, с которой можно попасть куда угодно. Так я и нашёл Homepage.

Почему выбор пал именно на Homepage, а не на что-то ещё. Мне нужен был статичный дашборд: без базы данных, без сложных демонов, «поднял и забыл». Homepage подошёл идеально — он open-source, работает в Docker, хранит конфигурацию в простых текстовых файлах. Никакой БД, никакого API, никаких регистраций. Для параноика вроде меня, который не любит, когда сервис хранит данные непонятно где, это именно то, что нужно. Поднял контейнер, написал пару yaml-файлов — и всё.

Про установку расскажу с деталями. Docker Compose файл получился буквально из двенадцати строк: image, ports, volumes и пара environment-переменных. Пробросил /var/run/docker.sock, чтобы Homepage мог видеть мои контейнеры — так он сам подхватывает их с иконками. Первый запуск показал пустую страницу. Я не расстроился — хотя бы не упало, уже хорошо. Дальше началась работа с документацией. Честно скажу: Homepage не из тех проектов, где можно на глазок. Их yaml-формат специфичный, и я посидел над документацией дольше, чем ожидал. Но когда разобрался — понеслась.

Теперь про конфигурацию подробнее. Я создал services.yaml и разбил всё на группы. Виртуализация — Proxmox. Мониторинг — Grafana и Uptime Kuma. Сеть — AdGuard и Nginx. Утилиты — Portainer и Heimdall. Для каждого сервиса прописал URL и иконку. Всё это — простые текстовые yaml-файлы, без базы данных. Мне понравился сам подход: конфигурация как код, её можно версионировать, бэкапить, переносить. Если что-то сломалось — открываешь файл, видишь, что не так, правишь. Никакой «магии в админке».

Дальше — виджеты. Это то, что превращает простую страницу с ссылками в полноценный дашборд. Я добавил погоду через OpenWeatherMap API — на стартовой странице всегда видно, какая погода за окном. Системные метрики — CPU, память, диск — прямо сверху. И главное — поисковая строка. Я поставил себе поиск по умолчанию DuckDuckGo. Теперь не нужно открывать новую вкладку ради поиска — он прямо на дашборде. Мелочь, но именно из таких мелочей складывается удобство.

Отдельно про Docker discovery расскажу, потому что это была моя главная возня. Homepage умеет сканировать Docker сокет и сам подцеплять контейнеры с иконками. Звучит здорово, но есть нюанс: если контейнер не имеет нужных labels — будет тупо показываться его имя без иконки. Пришлось добавить labels в docker-compose каждого сервиса. Это туповато, но работает. Зато после этого дашборд сам показывал все контейнеры, и не нужно было вручную прописывать каждый.

Про интеграцию с Proxmox скажу честно — она у меня не взлетела. В документации написано, что Homepage поддерживает Proxmox через API, но у меня на девятой версии что-то пошло не так: не выводил статистику по виртуальным машинам. Я попробовал разобраться, потратил время, но решил не зацикливаться — повесил просто ссылку на Proxmox и пошёл дальше. Это важный урок: не все интеграции работают идеально из коробки, и не нужно застревать на неработающей фиче, когда её можно заменить простой ссылкой.

Сейчас Homepage висит у меня на порту 3000, закрыт базовой аутентификацией через Nginx. Наружу он не торчит — доступ только из моей сети, и то по паролю. Я сделал себе правило: утром открываю дашборд, а не четырнадцать вкладок. Это экономит минут десять-пятнадцать в день. По мелочи, но приятно. Плюс это дисциплина: ты сразу видишь всё своё хозяйство на одной странице, а не собираешь его из закладок.

Про минус — про память — расскажу честно. Homepage написан на Node.js и жрёт около двухсот мегабайт RAM. Для дашборда это, согласен, перебор. Если бы у меня был сервер на два гигабайта — я бы, наверное, отказался или искал более лёгкую альтернативу. Но у меня восемь гигабайт, и я могу себе позволить такую роскошь. Всё же стоило упомянуть этот момент, чтобы ты мог оценить, потянет ли твой сервер такой дашборд.

Что я вынес из этой истории. Во-первых, не стоит жить с кучей вкладок, когда есть готовые решения. Во-вторых, конфигурация как текст — это удобно и переносимо. В-третьих, не все интеграции работают — и это нормально, не надо застревать. В-четвёртых, даже такой простой инструмент экономит время каждый день. Homepage — одна из тех вещей, о которых я пожалел, что не сделал раньше. Как переезд с голого редактора на IDE: ничего критичного не меняет, но жить становится удобнее.

Подведу итог. Если у тебя на сервере больше трёх сервисов — попробуй Homepage. Неделя привыкания — и ты уже не представляешь, как жил без этого. По крайней мере, у меня так. Дашборд стал моей стартовой страницей, и каждое утро я начинаю с одной страницы, на которой видно всё. Это удобно, это экономит время, и это просто приятно. Статичный, надёжный, с понятной конфигурацией — рекомендую.

Расскажу ещё о нескольких практических моментах, которые всплыли уже в процессе использования. Первое — про обновления. Homepage развивается активно, выходят новые версии с исправлениями и фичами. Обновление тривиальное: пересоздал контейнер с новым образом, проверил, что дашборд работает. Конфиги лежат в отдельной папке, поэтому при пересоздании ничего не теряется. Я обновляю примерно раз в месяц, и проблем ни разу не было.

Второе — про кастомизацию под себя. YAML-конфиг позволяет тонко настроить внешний вид: цвета, расположение, иконки, даже свои стили. Я не стал углубляться в экзотику, но базовую настройку под свой вкус сделал. Если ты любишь красивые вещи — в Homepage есть где разгуляться. Темы, тёмный режим, своя цветовая схема — всё настраивается.

Третье — про бэкап конфигурации. Мои yaml-файлы с настройками Homepage я копирую в общий бэкап сервера. Это несколько килобайт, но если контейнер когда-нибудь потеряется — я восстановлю весь дашборд за минуту. Как я уже говорил, отсутствие базы данных — огромный плюс в плане резервного копирования. Никаких дампов, никаких сложных процедур — просто скопировал файлы.

И четвёртое — про то, как дашборд вписался в мою экосистему. Homepage — это вход, визуальная карта всех сервисов. За мониторинг и уведомления отвечает Uptime Kuma и Grafana, а дашборд просто показывает, где что находится. Такое разделение ролей избавило меня от путаницы: каждый инструмент делает своё дело. Дашборд не пытается заменить мониторинг, а мониторинг не пытается быть красивой страницей входа. Всё по местам.

И напоследок одна мысль. Кажется, что дашборд — это мелочь, которая не влияет ни на что. Но на самом деле удобные мелочи вроде этой формируют ежедневную эффективность. Десять минут в день — это час в неделю, это четыре часа в месяц. За год набегает почти два рабочих дня. И всё это — просто от того, что все сервисы собраны на одной странице. Мелочи имеют значение, особенно если они работают каждый день.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *