Docker и DevOps 14 мин чтения 2026-10-16

Персональный информационный дашборд Glance на VDS: развертывание в Docker Compose с лентами RSS, сабреддитами, погодой и мониторингом серверов

Glance — ультралегковесный персональный дашборд на Go, потребляющий всего 15 МБ RAM. Разбираем установку в Docker Compose, конфигурацию виджетов RSS, Reddit, погоды и мониторинга, а также защиту паролем и публикацию через Nginx с HTTPS.

Инженерная редакция SysKit Проверено инженерами SysKit.ru

В экосистеме self-hosted сервисов персональные стартовые страницы и дашборды стали неотъемлемой частью рабочего пространства разработчиков и системных администраторов. Они служат единой точкой входа для управления инфраструктурой: отображают статус контейнеров, быстрые закладки на веб-интерфейсы, котировки, погоду, свежие посты с профильных сабреддитов и RSS-ленты технических блогов.

Однако большинство популярных решений (таких как Dashy или Heimdall) страдают от избыточной тяжеловесности. Построенные на базе массивных JavaScript-фреймворков и среды выполнения Node.js, они нередко потребляют от 250 до 600 МБ оперативной памяти, требуют компиляции фронтенда и создают ощутимую задержку при открытии страницы на мобильных устройствах или слабых VDS. Появившийся как легкая альтернатива Glance кардинально меняет правила игры: написанный на скомпилированном языке Go (Golang), он потребляет в базовом режиме всего 15–25 МБ RAM (и не более 35–40 МБ при интенсивном параллельном опросе десятков лент) и отрисовывает чистый легковесный интерфейс мгновенно.

1. Преимущества Glance перед Homepage и Dashy: 15 МБ RAM на Go против тяжелого стека Node.js

Главное архитектурное отличие Glance от таких панелей, как Homepage, Dashy или Flame — отказ от прожорливого клиентского рендеринга на тяжелых JS-библиотеках в пользу компактного серверного шаблонизатора на Go. Весь сервис поставляется в виде одного оптимизированного Docker-образа размером менее 30 МБ, запускается за доли секунды и не требует внешних реляционных СУБД (PostgreSQL, MySQL) или кэшей Redis.

Вся конфигурация страниц, колонок, виджетов и учетных записей описывается в единственном декларативном файле glance.yml. При этом движок Glance непрерывно отслеживает состояние файла на диске (через системные события inotify) и мгновенно применяет изменения в браузере без необходимости перезапускать контейнер или сбрасывать пользовательские сессии.

Критерий сравнения Glance (Go) Homepage (Next.js) Dashy (Vue.js) Flame (Node.js)
Язык и runtime Go (Golang) Node.js / React Node.js / Vue.js Node.js / React
Потребление памяти (RAM) 15–25 МБ (базовое)
до 35–40 МБ при активном RSS
80–180 МБ 180–350 МБ 60–120 МБ
Формат конфигурации Один файл glance.yml Множество файлов YAML Большой conf.yml SQLite + веб-UI
Горячая перезагрузка (Hot-reload) Мгновенно (inotify) Частично Требует ребилд В реальном времени
Встроенная авторизация Да (bcrypt / сессии) Нет (через прокси) Да (Keycloak / basic) Да (пароль)

💡 Совет инженера

Если на вашем сервере уже крутится связка сервисов (Vaultwarden, Seafile, база данных PostgreSQL и бэкенды), выделять полгигабайта RAM под один лишь визуальный дашборд крайне нерационально. Glance потребляет меньше оперативной памяти, чем стандартный фоновый воркер Nginx, поэтому идеально подходит для компактных тарифов VDS с 1–2 ГБ памяти.

2. Подготовка сервера и развертывание Glance в Docker Compose

Для надежной промышленной эксплуатации развернем Glance в изолированном каталоге /opt/glance с жесткой привязкой порта к локальной петле 127.0.0.1. Это ключевой элемент безопасности: если указать порт как 8080:8080 (без префикса IP), демон Docker по умолчанию создаст в обход брандмауэра UFW сквозные правила в цепочках iptables, открыв незащищенный веб-интерфейс Glance всему миру (подробнее об этом механизме читайте в разборе обхода UFW портами Docker).

Подключитесь к вашему VDS по SSH и создайте рабочую директорию со структурой подкаталога для конфигурации:

sudo mkdir -p /opt/glance/config
cd /opt/glance

Создайте файл описания сервиса docker-compose.yml:

services:
  glance:
    # Фиксируем актуальный стабильный релиз вместо плавающего тега :latest
    image: glanceapp/glance:v0.8.6
    container_name: glance
    restart: unless-stopped
    ports:
      # Привязка строго к локальной петле 127.0.0.1 защищает порт от внешнего сканирования
      - "127.0.0.1:8080:8080"
    volumes:
      - ./config:/app/config
      # Монтирование системного часового пояса для точного времени в виджетах
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    environment:
      - TZ=Europe/Moscow
    # Ограничения ресурсов Compose Specification (cgroups)
    mem_limit: 128m
    cpus: 0.50

Пояснение по версии и лимитам ресурсов: В production-среде крайне важно фиксировать конкретную версию образа (в нашем примере — проверенный стабильный релиз glanceapp/glance:v0.8.6). Использование тега :latest несет риски, так как авторы проекта активно развивают движок, и неожиданное автоматическое обновление может нарушить синтаксис виджетов в вашем glance.yml.

Что касается ограничений ресурсов: в современной спецификации Compose Specification (Docker Compose v2+) поддерживаются как лаконичные директивы mem_limit: 128m и cpus: 0.50 на верхнем уровне описания сервиса, так и блок deploy.resources.limits (который начиная с Compose v2 применяется и в стандартном автономном режиме, а не только в Swarm). Мы используем прямой синтаксис mem_limit и cpus как наиболее компактный: демон Docker напрямую передает эти параметры ядру Linux в подсистему cgroups, жестко гарантируя, что даже при обработке огромных списков RSS контейнер не создаст риска OOM-сбоя для других служб сервера. Подробнее об этом читайте в руководстве по лимитам памяти и CPU в Docker Compose.

Загрузите эталонный стартовый шаблон конфигурации в каталог config/:

curl -sSL -o config/glance.yml https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml

Запустите контейнер в фоновом режиме через утилиту Docker Compose:

docker compose up -d

Проверка сетевой изоляции и брандмауэра:

Убедитесь, что порт 8080 слушает исключительно локальный интерфейс 127.0.0.1, а не публичный 0.0.0.0:

# Проверка сокетов ядра Linux:
sudo ss -tulpn | grep 8080

# Вывод должен содержать строго 127.0.0.1:8080, например:
# tcp  LISTEN  0  4096  127.0.0.1:8080  0.0.0.0:*  users:(("docker-proxy",pid=...))

Дополнительно проверьте активность брандмауэра UFW командой sudo ufw status verbose. На публичных сетевых интерфейсах должны быть открыты только порты 22 (SSH), 80 (HTTP) и 443 (HTTPS). Верифицировать недоступность порта 8080 из внешнего интернета можно прямо сейчас через сетевую утилиту SysKit Сканер сетевых портов онлайн.

3. Настройка встроенной аутентификации и защита дашборда паролем

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

Разработчики Glance предусмотрели встроенный модуль сессионной аутентификации, который не требует внешних баз данных или тяжелых SSO-серверов. Авторизация настраивается в три простых шага через CLI-утилиты, упакованные прямо в Docker-образ приложения.

Шаг 1. Генерация секретного ключа сессий:

Секретный ключ (secret key) используется Glance для криптографической подписи сессионных cookie в браузере. Если ваш контейнер Glance уже запущен, быстрее всего сгенерировать ключ прямо внутри работающего сервиса одной командой:

# Способ 1: внутри уже работающего контейнера Glance (рекомендуется)
docker compose exec glance glance secret:make

# Способ 2: через отдельный временный контейнер
docker run --rm glanceapp/glance:v0.8.6 secret:make

Команда выведет строку случайных байт вида: 7c3a9f8b1e4d2a6c8e5f0b3a1d9e7c5a8b2f4d6e1a9c3b7e5f0a2d8b4e6c1a9f. Сохраните ее.

Шаг 2. Генерация стойкого bcrypt-хэша пароля:

Glance не хранит пароли в открытом виде, а сверяет их по стойкому криптографическому хэшу bcrypt. Сгенерируйте надежный пароль длиной от 16 символов (для создания стойкой комбинации воспользуйтесь сервисом Генератор надежных паролей) и передайте его во встроенный хэшер:

# Генерация bcrypt-хэша внутри контейнера:
docker compose exec glance glance password:hash 'ВашСложныйПароль2026!'

# Либо через docker run:
docker run --rm glanceapp/glance:v0.8.6 password:hash 'ВашСложныйПароль2026!'

В терминале появится вычисленный bcrypt-хэш, начинающийся с символов $2a$10$... или $2a$14$....

Шаг 3. Внедрение блока auth в glance.yml:

Откройте файл /opt/glance/config/glance.yml в текстовом редакторе и добавьте в самый верх файла секцию auth:

auth:
  secret-key: "ВСТАВЬТЕ_СЮДА_СГЕНЕРИРОВАННЫЙ_SECRET_KEY"
  users:
    admin:
      password-hash: "ВСТАВЬТЕ_СЮДА_ХЭШ_ПАРОЛЯ_BCRYPT"

💡 Рекомендация по безопасности при первичной настройке

Движок Glance отслеживает файл glance.yml через inotify в режиме реального времени. Тем не менее, при первоначальном создании и вставке секретного ключа рекомендуется выполнить профилактический перезапуск docker compose restart glance. Это инженерная лучшая практика (best practice), позволяющая гарантированно сбросить ранее открытые сессии и убедиться в валидности синтаксиса блока авторизации.

Все последующие действия (добавление дополнительных учетных записей в список users, смена паролей, добавление виджетов и закладок) подхватываются на лету автоматически без перезагрузки контейнера.

После сохранения файла при первом открытии веб-страницы Glance перенаправит вас на минималистичную форму авторизации с полями логина и пароля. Успешный вход сохраняет защищенную сессию в браузере.

4. Тонкая настройка glance.yml: закладки, RSS-ленты, сабреддиты, погода и релизы GitHub

Конфигурация интерфейса Glance строится на древовидной иерархии: страницы (pages) разбиваются на колонки (columns), внутри которых располагаются виджеты (widgets). Для колонок доступны размеры small (узкая колонка, идеальная для часов, погоды, виджетов статуса) и full (адаптивная широкая область под новости, графики и карточки).

Ниже представлен проверенный в production готовый шаблон glance.yml, объединяющий мониторинг инфраструктуры, закладки со встроенными иконками Simple Icons, ленты новостей и виджеты отслеживания релизов:

auth:
  secret-key: "СГЕНЕРИРОВАННЫЙ_КЛЮЧ"
  users:
    admin:
      password-hash: "СГЕНЕРИРОВАННЫЙ_ХЭШ"

# Настройки оформления и поведения
theme:
  # Поддержка светлой и темной темы с автоопределением по системным настройкам
  contrast: normal

pages:
  - name: Дашборд
    columns:
      # Левая узкая колонка: системные утилиты, погода, закладки
      - size: small
        widgets:
          - type: calendar
            first-day-of-week: monday

          - type: weather
            location: Moscow, Russia
            units: metric
            hour-format: 24h

          - type: bookmarks
            groups:
              - title: Инфраструктура
                color: 215 70 50
                links:
                  - title: Portainer / Dockge
                    url: https://dockge.example.com
                    icon: si:docker
                  - title: Мониторинг Beszel
                    url: https://beszel.example.com
                    icon: si:grafana
                  - title: Менеджер паролей
                    url: https://pass.example.com
                    icon: si:bitwarden

              - title: Разработка и облако
                color: 145 60 45
                links:
                  - title: Личный Git-сервер
                    url: https://git.example.com
                    icon: si:gitea
                  - title: Облако Seafile
                    url: https://files.example.com
                    icon: si:nextcloud
                  - title: Репозиторий GitHub
                    url: https://github.com
                    icon: si:github

          - type: markets
            markets:
              - symbol: BTC-USD
                name: Bitcoin
              - symbol: ETH-USD
                name: Ethereum

      # Правая широкая колонка: агрегаторы контента и технические новости
      - size: full
        widgets:
          - type: group
            widgets:
              - type: hacker-news
                limit: 8

              - type: reddit
                subreddit: selfhosted
                limit: 8
                show-thumbnails: true

          - type: rss
            limit: 12
            collapse-after: 4
            cache: 1h
            feeds:
              - url: https://habr.com/ru/rss/hubs/devops/all/
                title: Хабр DevOps
                limit: 4
              - url: https://www.opennet.ru/opennews/opennews_mini_security.rss
                title: OpenNET Безопасность
                limit: 4
              - url: https://selfh.st/rss/
                title: Selfh.st Digest
                limit: 4

          - type: releases
            cache: 6h
            # Необязательный токен GitHub для обхода ограничений API (60 req/h):
            # token: ghp_yourPersonalAccessTokenHere
            repositories:
              - glanceapp/glance
              - immich-app/immich
              - louislam/uptime-kuma

Рассмотрим ключевые параметры настройки виджетов:

  • Иконки закладок (Simple Icons): Glance «из коробки» содержит каталог тысяч векторных иконок. Достаточно указать префикс si: и название сервиса (например, si:docker, si:github, si:cloudflare, si:telegram), чтобы карточка ссылки получила аутентичный логотип.
  • Кэширование RSS и релизов (cache: 1h / 6h): Задает периодичность опроса внешних серверов. Это снижает нагрузку на сеть хоста и исключает блокировку по Rate Limit со стороны внешних источников.
  • Сворачивание списков (collapse-after: 4): При получении большого количества новостей виджет покажет первые 4 заголовка и аккуратную кнопку «Показать еще», сохраняя опрятный вид страницы.

5. Мониторинг доступности серверов и контейнеров через виджет Monitor

Одной из мощнейших функций Glance является встроенный виджет monitor. Он позволяет отказаться от отдельных тяжелых статус-страниц для персонального использования и выводит состояние работоспособности ваших ключевых сервисов прямо в шапку или боковую панель дашборда.

Виджет периодически опрашивает указанные веб-адреса с помощью легковесных HTTP-запросов и отображает аккуратный индикатор доступности: зеленый маркер при ответе 200 OK или красный бейдж со статусом ошибки (например, 502 Bad Gateway или таймаут соединения).

          - type: monitor
            title: Мониторинг серверов и сервисов
            cache: 1m
            sites:
              - title: Корпоративный портал
                url: https://syskit.ru
                icon: si:nginx

              - title: Менеджер паролей
                url: https://pass.example.com
                icon: si:bitwarden

              - title: Облачное хранилище
                url: https://files.example.com
                icon: si:nextcloud

              - title: Домашний AdGuard DNS
                url: http://127.0.0.1:3000
                icon: si:adguard

Параметр cache: 1m задает интервал опроса в одну минуту. Glance выполняет сетевые запросы в параллельных неблокирующих горутинах (goroutines), поэтому задержка ответа одного из внешних сайтов не замедляет отрисовку остальных блоков дашборда.

Если вам требуется не просто моментальный срез доступности, а накопление долгосрочной истории сбоев, графики нагрузки на процессор и алерты в Telegram, дополните Glance связкой специализированных инструментов: легковесным агентом метрик Beszel и Telegram-ботом SysKit Uptime & SSL Monitor.

6. Публикация в интернет: Nginx Reverse Proxy и автоматический SSL-сертификат

Поскольку контейнер Glance жестко привязан к локальному порту 127.0.0.1:8080, для доступа к нему из внешнего интернета по безопасному протоколу HTTPS настроим классический обратный прокси-сервер на базе Nginx с полным комплектом защитных заголовков.

Установите веб-сервер Nginx и утилиту Certbot на операционную систему вашего сервера Ubuntu или Debian:

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

Создайте конфигурационный файл виртуального хоста /etc/nginx/sites-available/glance.conf (заменив dash.example.com на ваш фактический поддомен):

server {
    listen 80;
    listen [::]:80;
    server_name dash.example.com;

    # Ограничение размера тела запроса (дашборд не принимает файлы)
    client_max_body_size 1m;

    # Защитные заголовки промышленного стандарта
    add_header X-Frame-Options "DENY" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    # HSTS: принудительный переход на HTTPS на 1 год с поддоменами
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

    location / {
        # Запрет неиспользуемых HTTP-методов (DELETE, PUT, TRACE)
        limit_except GET POST HEAD {
            deny all;
        }

        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;

        # Проброс заголовков клиента и поддержка WebSocket (для Hot-Reload)
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Отключение буферизации для мгновенного стриминга событий
        proxy_buffering off;
        proxy_read_timeout 90s;
    }
}

Активируйте созданный виртуальный хост, создав символическую ссылку в каталоге sites-enabled, и проверьте корректность синтаксиса директив:

sudo ln -s /etc/nginx/sites-available/glance.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Выпустите бесплатный криптографический сертификат Let's Encrypt с автоматической настройкой перенаправления с HTTP на HTTPS:

sudo certbot --nginx -d dash.example.com --redirect --agree-tos --no-eff-email -m admin@example.com

Флаг --redirect гарантирует автоматическую генерацию безопасного 301-редиректа на защищенный порт 443. После успешного выпуска сертификата проверьте корректность TLS-цепочки и дату окончания действия с помощью инструмента Проверка SSL / TLS сертификата онлайн. Для генерации альтернативных конфигураций веб-серверов воспользуйтесь генератором Nginx Reverse Proxy или Caddy Reverse Proxy.

7. Автоматическое обновление через Watchtower и резервное копирование glance.yml

Архитектурная красота Glance заключается в полном отсутствии изменяемого состояния (stateless-дизайн). В отличие от сложных систем с базами данных, где при обновлении требуется контролировать миграции схем, для 100% сохранения всех данных Glance достаточно иметь копию единственного файла glance.yml.

Для создания регулярных бэкапов конфигурации настройте простое задание в системном планировщике crontab:

# Ежедневный бэкап конфигурации в архивы tar.gz с сохранением за 14 дней
0 3 * * * tar -czf /opt/backups/glance-$(date +%F).tar.gz -C /opt/glance/config glance.yml && find /opt/backups/ -name "glance-*.tar.gz" -mtime +14 -delete

Полноценный стек с автообновлением Watchtower:

Если вы хотите настроить автоматическое применение патчей в рамках вашей ветки релизов, разверните утилиту Watchtower прямо внутри того же манифеста docker-compose.yml. Использование флага WATCHTOWER_LABEL_ENABLE=true гарантирует, что Watchtower будет обновлять строго те контейнеры, где явно указана метка com.centurylinklabs.watchtower.enable=true, не трогая другие сервисы хоста:

services:
  glance:
    # Зафиксированная стабильная версия
    image: glanceapp/glance:v0.8.6
    container_name: glance
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - ./config:/app/config
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    mem_limit: 128m
    cpus: 0.50

  watchtower:
    # Зафиксированная проверенная стабильная версия Watchtower
    image: containrrr/watchtower:1.7.1
    container_name: glance-watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      # Удалять старые неиспользуемые слои образов
      - WATCHTOWER_CLEANUP=true
      # Обновлять только контейнеры с разрешающей меткой
      - WATCHTOWER_LABEL_ENABLE=true
      # Интервал проверки обновлений (раз в 24 часа = 86400 сек)
      - WATCHTOWER_POLL_INTERVAL=86400
      - TZ=Europe/Moscow
    mem_limit: 64m
    cpus: 0.25

💡 Совет по безопасным обновлениям версий в Production

В примере зафиксированы проверенные стабильные релизы обоих сервисов: glanceapp/glance:v0.8.6 и containrrr/watchtower:1.7.1. Единый стандарт явного указания тегов исключает случайное применение несовместимых мажорных изменений, сохраняя полную надежность вашей серверной среды.

Чтобы планово перейти на следующий стабильный релиз Glance (например, v0.8.7), достаточно обновить тег в docker-compose.yml и применить изменение командой docker compose pull && docker compose up -d. А отслеживать появление новых версий можно прямо на дашборде через встроенный виджет releases!

Glance доказывает, что современный персональный дашборд может быть одновременно функциональным, визуально привлекательным и потрясающе быстрым, не расходуя ценные вычислительные ресурсы сервера. Развернув его однажды, вы получаете надежный командный центр для всех ваших домашних и серверных проектов.

🎯 Разверните персональный дашборд Glance на быстром NVMe VDS

Для мгновенного рендеринга виджетов и постоянного мониторинга серверов 24/7 выбирайте надежный облачный сервер с низким пингом и защитой от сетевых атак.

Рекомендуемые VDS-провайдеры

Отказоустойчивые сервера с быстрыми NVMe и каналом до 1 Гбит/с

Выбор редакции
⚡

Timeweb Cloud — Быстрые NVMe VDS для self-hosted дашборда

Низкий пинг до российских провайдеров, моментальный запуск контейнеров Glance и бесплатный круглосуточный DNS для вашего поддомена.

Конфигурация
1 vCPU 3.3 ГГц • 1 ГБ RAM • 15 ГБ NVMe • Трафик без лимита
Премиум Tier III
🔷

Selectel — Надежные VDS в Tier III дата-центрах

Стабильная сетевая связность, выделенный белый IPv4 и безупречный аптайм для постоянного мониторинга инфраструктуры 24/7.

Конфигурация
1 vCPU • 1 ГБ RAM • 20 ГБ NVMe • Канал до 1 Гбит/с
Простота и надежность
🟠

Beget — Доступные облачные серверы для домашних утилит

Почасовая тарификация, удобная панель управления и моментальный деплой стека Docker Compose для персональных сервисов.

Конфигурация
1 vCPU • 1 ГБ RAM • 10 ГБ NVMe • Трафик без ограничений

Вопросы и ответы (FAQ)

Популярные вопросы вебмастеров и сисадминов по данной теме

Какое реальное потребление оперативной памяти у контейнера Glance?
Благодаря тому, что Glance скомпилирован на языке Go в единый оптимизированный бинарный файл без тяжелой среды выполнения Node.js или браузерных движков, базовое потребление оперативной памяти в Docker составляет всего 15–20 МБ RAM. Даже при активном опросе десятков RSS-лент и виджетов мониторинга потребление редко превышает 35–40 МБ.
Нужно ли перезапускать Docker-контейнер при редактировании glance.yml?
Нет, перезапуск контейнера не требуется. В Glance встроен механизм отслеживания изменений файлов (Hot-Reload через inotify). Как только вы сохраняете обновленный файл glance.yml на сервере, сервис мгновенно перечитывает конфигурацию и обновляет виджеты в браузере без разрыва соединения.
Как скрыть определенные виджеты на мобильных устройствах?
В Glance колонки и виджеты адаптируются автоматически. Для создания компактного вида для смартфонов можно выносить второстепенные виджеты на отдельную страницу (массив pages в YAML) либо настраивать параметр collapse-after для списков RSS и закладок, чтобы длинные блоки сворачивались в компактный аккордеон.
Почему виджет релизов GitHub перестает показывать обновления?
API GitHub без авторизации жестко ограничивает неавторизованные запросы с одного IP-адреса лимитом в 60 запросов в час. Если вы отслеживаете более 5–10 популярных репозиториев, лимит быстро исчерпывается. Для стабильной работы достаточно выпустить персональный токен GitHub (Personal Access Token с правами public_repo) и указать его в параметре token: ghp_... виджета releases.
Можно ли использовать Glance в локальной сети или домашней лаборатории без доступа в интернет?
Да. Glance отлично функционирует в полностью изолированных контурах (Air-gapped) для мониторинга внутренних серверов, отображения локальных закладок, календаря и часов. Виджеты, требующие выхода во внешнюю сеть (погода, внешние RSS, Reddit), при отсутствии связи отображают корректный статус ошибки, не нарушая работу остальных компонентов.
Поддерживает ли Glance двухфакторную аутентификацию (2FA) или единый вход SSO/OIDC?
Встроенный модуль авторизации Glance поддерживает базовую аутентификацию по связке логина и bcrypt-хэша пароля. Если вашей инфраструктуре требуется 2FA (TOTP) или SSO по протоколам OpenID Connect / SAML, рекомендуется оставить Glance без встроенного пароля внутри приватной сети 127.0.0.1 и подключить внешний шлюз аутентификации, например Authelia или Authentik через Nginx Forward Auth.

Читайте также в блоге SysKit

Смежные руководства и полезные технические статьи