Самостоятельный Dashboard Glance: установка и настройка
Создайте личный хаб с Glance — self‑hosted дашбордом в Docker. Подключите виджеты, настройте мониторинг и кастомизацию за несколько минут.
Подготовка окружения
Создайте директорию для конфигурации Glance, чтобы хранить все настройки в одном месте.
mkdir -p /opt/glance
cd /opt/glanceСоздание docker-compose.yml
Создайте файл docker-compose.yml для запуска Glance в контейнере. Важно пробросить папку конфигов и порт 8080. Для работы виджета Docker пробрасываем сокет (опционально).
version: "3.3"
services:
glance:
image: glanceapp/glance:latest
container_name: glance
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Europe/Moscow # Установите ваш часовой поясЗапуск контейнера
Запустите контейнер и дождитесь его инициализации. После первого запуска Glance автоматически создаст дефолтный файл конфигурации.
docker compose up -dНастройка конфигурации (glance.yml)
Отредактируйте файл ./config/glance.yml. В примере ниже добавлены виджеты: поиск, ссылки на сервисы (Filebrowser, Portainer), мониторинг Docker-контейнеров и RSS-лента Хабра.
pages:
- name: Dashboard
columns:
- size: small
widgets:
- type: search
target: _blank
provider: DuckDuckGo
- type: links
items:
- title: Filebrowser
url: http://192.168.1.100:8085
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/1f4c1.svg
- title: Portainer
url: http://192.168.1.100:9000
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/2699-fe0f.svg
- size: medium
widgets:
- type: docker
show_healthy_only: true
- type: rss
cache: 1h
style: list
limit: 5
feeds:
- url: https://habr.com/ru/rss/best/daily/?fl=ru
title: "Хабр: Лучшие"Применение изменений
После сохранения изменений в конфигурационном файле перезапустите контейнер для применения настроек.
docker compose restartSelf-hosted Dashboard: Как создать собственную панель мониторинга и управления с Glance
Введение
В homelab рано или поздно возникает потребность в центральной точке доступа. Закладки в браузере не масштабируются, а поиск нужного сервиса через DNS-имена утомляет. Личный дашборд решает эту проблему, предоставляя единую страницу для доступа к самохостинговым сервисам, мониторингу состояния систем и RSS-лентам.
Glance — это self-hosted панель, которая не требует базы данных, написана на Go и работает в Docker. Она объединяет в себе функциональность стартера приложений (ссылки), виджетов мониторинга (Docker, системные метрики) и агрегатора контента (RSS, погода).
Обзор Glance: Простота, модульность и легкость развертывания
Ключевые преимущества Glance для homelab:
- Никаких зависимостей: Не требует PostgreSQL или Redis. Вся конфигурация в одном YAML-файле.
- Легковесность: Использует Alpine Linux, размер образа менее 15 МБ.
- Гибкость: Поддерживает мониторинг Docker-контейнеров, системные метрики (CPU, RAM, Disk), встроенные RSS-ридеры и быстрые ссылки.
- Внешний вид: Темная тема по умолчанию, кастомизация через CSS и Markdown.
Быстрый старт: Установка Glance через Docker Compose
Мы развернем Glance в Docker. Это займет 5 минут.
Шаг 1: Подготовка окружения
Создайте отдельную директорию для конфигурации:
mkdir -p /opt/glance
cd /opt/glance
Шаг 2: Создание docker-compose.yml
Создайте файл docker-compose.yml. Важно пробросить порт 8080 (или любой другой свободный) и папку с конфигами.
version: "3.3"
services:
glance:
image: glanceapp/glance:latest
container_name: glance
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro # Для мониторинга контейнеров (опционально)
environment:
- TZ=Europe/Moscow # Установите ваш часовой пояс
Шаг 3: Запуск и инициализация
Запустите контейнер:
docker compose up -d
После первого запуска Glance создаст дефолтный конфиг в папке config. Проверьте его наличие:
ls -l ./config
# Должен появиться файл glance.yml
Шаг 4: Проверка доступности
Откройте браузер и перейдите по адресу: http://<IP-ВАШЕГО-СЕРВЕРА>:8080. Вы увидите стандартный интерфейс с виджетами.
Конфигурация: Подключение виджетов
Весь интерфейс управляется файлом ./config/glance.yml. Остановите контейнер перед редактированием (docker compose stop), чтобы изменения применились после перезапуска.
Ниже приведены примеры популярных виджетов.
1. Быстрые ссылки (Кнопки доступа к сервисам)
Это основной блок для навигации по хомелабу.
pages:
- name: Главная
columns:
- size: small
widgets:
- type: links
items:
- title: Filebrowser
url: http://192.168.1.100:8085
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/1f4c1.svg
- title: Portainer
url: http://192.168.1.100:9000
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/2699-fe0f.svg
- title: WireGuard
url: http://192.168.1.100:51821
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/1f512.svg
2. Мониторинг Docker-контейнеров
Glance может показывать статус контейнеров и управлять ими (через Docker API). Для этого нужно пробросить docker.sock (уже сделано в docker-compose.yml).
- type: docker
show_healthy_only: true # Показывать только работающие
show_unhealthy_only: false
container_name_prefix: "container-" # Префикс для имен (опционально)
3. Системные метрики (CPU, RAM, Disk)
Для работы этого виджета нужно установить glance-system (сайдкар) или использовать встроенный мониторинг (требует прав доступа). Проще всего использовать встроенные возможности, если контейнер имеет доступ к хосту.
- type: system
disk_path: / # Путь к мониторингу диска внутри контейнера (нужен volume mapping host:/host)
# В docker-compose.yml нужно добавить:
# volumes:
# - /:/host:ro
Важно: Без проброса корневой файловой системы (/:/host:ro) виджет диска работать не будет.
4. RSS-ленты (Агрегатор новостей)
Виджет для чтения новостей прямо с дашборда.
- type: rss
cache: 1h # Как часто обновлять
style: list # grid или list
limit: 5
feeds:
- url: https://habr.com/ru/rss/best/daily/?fl=ru
title: "Хабр: Лучшие"
- url: https://xakep.ru/feed/
title: "Xakep"
5. Погода
- type: weather
location: Moscow, RU # Ваш город
unit: metric # Цельсий
key: <API_KEY_FROM_OPENWEATHERMAP> # Нужен бесплатный ключ
Полный пример конфигурации
Скомбинируем всё в один файл config/glance.yml:
pages:
- name: Dashboard
columns:
- size: small
widgets:
- type: search
target: _blank
provider: DuckDuckGo
- type: links
items:
- title: Home Assistant
url: http://192.168.1.50:8123
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/1f4bb.svg
- title: Plex
url: http://192.168.1.50:32400/web
icon: https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/1f3a5.svg
- size: medium
widgets:
- type: docker
filter: false # Показать все контейнеры
- type: rss
cache: 30m
feeds:
- url: https://news.ycombinator.com/rss
title: Hacker News
После редактирования перезапустите контейнер:
docker compose restart
Продвинутый уровень: Кастомизация интерфейса и стилей
Glance позволяет менять CSS прямо в конфиге. Это полезно для тонкой настройки под ваши нужды.
Изменение темы и шрифтов
В корне конфига (не внутри pages) добавьте секцию theme:
theme:
background-color: "#0d1117" # Темный фон (как у GitHub)
primary-color: "#58a6ff" # Основной цвет акцентов
secondary-color: "#161b22" # Вторичный фон виджетов
font-family: "Inter, system-ui, sans-serif"
border-radius: "8px" # Скругление углов
Кастомный CSS (Advanced)
Вы можете переопределить любые CSS-переменные или стили элементов:
custom-css: |
.widget-container {
box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
}
.link-item:hover {
transform: translateY(-2px);
transition: 0.2s;
}
Идеи для интеграций: Как Glance заменяет несколько сервисов
Glance может стать хабом, заменяющим сторонние сервисы:
- Замена Homepage/Dashy: Glance проще в настройке (один файл) и быстрее загружается.
- Агрегация уведомлений: С помощью RSS виджета вы можете получать уведомления о обновлениях ПО, если настроите RSS-фида для GitHub Releases.
- Мониторинг "на лету": Виджет Docker заменяет простые панели управления (например, базовый просмотр контейнеров в Portainer), если вам нужно только видеть статус (On/Off).
- Удаленный доступ: Используйте Glance как стартовую страницу в WireGuard, чтобы быстро перейти к любому сервису внутри сети.
Заключение
Glance — это "точное оружие" для homelab. Он не перегружен лишним функционалом, не требует сложной инфраструктуры и отлично смотрится на любом устройстве. За один вечер вы можете собрать дашборд, который будет отражать состояние вашей домашней лаборатории и давать быстрый доступ к нужным инструментам.
Что делать дальше:
- Запустите контейнер по инструкции выше.
- Добавьте 3-5 ссылок на ваши главные сервисы.
- Подключите RSS-ленту любимого блога.
- Экспериментируйте с цветами в
custom-css.
Удачи в настройке!