---
title: "Glance: Docker Compose и хостинг в один клик"
description: "Self-hosted Glance: легкий open source дашборд с RSS-лентами, Reddit, Hacker News, YouTube, погодой и котировками, со входом по паролю, в одном YAML-файле."
---

[← Все шаблоны](https://pethost.dev/ru/templates/) · [Ленты и закладки](https://pethost.dev/ru/templates/reading/)

# Задеплойте Glance в один клик

Быстрый и легкий дашборд с вашими лентами, новостями, погодой, котировками и не только

Альтернатива Netvibes и Feedly на вашей машине.

[Задеплоить на Pethost](https://console.pethost.dev/?template=glance)

## Что такое Glance?

Glance — self-hosted дашборд, который собирает на одной странице то, что вы каждый день читаете и проверяете: RSS-ленты, сабреддиты, Hacker News и Lobsters, каналы YouTube и Twitch, погоду, биржевые котировки, календарь, новые релизы репозиториев GitHub и состояние ваших сайтов. Его используют как стартовую страницу браузера вместо Netvibes или читалки лент вроде Feedly, а еще на телефоне, где страница подстраивается под экран.

Все пишется в одном YAML-файле: сколько угодно страниц, каждая из колонок с виджетами, с темами, своим CSS и собственными виджетами, которые читают любой JSON API. Glance — одна программа на Go размером меньше 20 MB, занимает несколько десятков мегабайт памяти и загружает страницу примерно за секунду.

Этот шаблон запускает Glance с конфигом в томе, начиная с примера страницы, и со входом по имени пользователя и паролю, которые вы задаете, так что дашборд закрыт для посторонних. Пароль попадает в конфиг в виде bcrypt-хеша, а неудачные попытки входа считаются по собственному IP-адресу каждого посетителя.

## Хостинг Glance на Pethost

1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
2. Окно «Новый проект» открывается на приложении Glance. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: **Имя пользователя**, **Пароль администратора**.
3. Через минуту-две Glance работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
4. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

## Вопросы про Glance

**Glance бесплатный?**

Да. Glance распространяется с открытым кодом под лицензией AGPL-3.0, платной редакции у него нет, и если запускать его самому, платить придется только за машину.

**Как добавить в Glance виджет или страницу?**

Отредактируйте glance.yml: у каждой страницы есть колонки, у каждой колонки — список виджетов, и у каждого виджета — тип, например rss, reddit, weather или videos, и свои параметры. Glance перезагружает страницу, как только файл сохранен, а если в файле ошибка, продолжает показывать последнюю рабочую версию.

**Может ли Glance показывать мои собственные сервисы или API?**

Да. Виджет monitor показывает, отвечают ли ваши сайты, а виджет custom-api читает любой JSON API и отображает его по шаблону, который вы пишете сами. Виджеты от сообщества так добавляют поддержку многих сервисов.

**Работает ли Glance на телефоне?**

Да. Его страница рассчитана и на маленькие экраны, и ее можно добавить на главный экран. Войдите один раз, и сессия продлится 14 дней.

**Сколько памяти и диска нужно Glance?**

Glance: совсем небольшие требования — около 20 MB памяти, а на диске он не хранит ничего, кроме своего конфига. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

## Glance: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.

**Контейнеры:** glance (glanceapp/glance:v0.8.7).

**Тома, в ночном бэкапе:** config.

```
services:
  glance:
    image: glanceapp/glance:v0.8.7
    restart: unless-stopped
    environment:
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # The dashboard is /app/config/glance.yml, yours to edit: Glance reloads it when it is saved.
    # Its first start writes it from the one below and makes the key that signs sessions. Glance
    # puts ${VARIABLES} into the file as text before it reads it, so the password goes in as its
    # bcrypt hash, made at every start from the project's .env.
    entrypoint: ["/bin/sh", "-c"]
    command:
      - |
        set -e
        cd /app/config
        [ -f .secret-key ] || (umask 077 && /app/glance secret:make > .secret-key)
        [ -f glance.yml ] || cat /etc/glance/glance.yml > glance.yml
        GLANCE_SECRET_KEY="$$(cat .secret-key)"
        GLANCE_PASSWORD_HASH="$$(/app/glance password:hash "$$ADMIN_PASSWORD")" || {
          echo "$$GLANCE_PASSWORD_HASH" >&2
          exit 1
        }
        export GLANCE_SECRET_KEY GLANCE_PASSWORD_HASH
        unset ADMIN_PASSWORD
        exec /app/glance --config /app/config/glance.yml
    configs:
      - source: glance
        target: /etc/glance/glance.yml
    volumes:
      - config:/app/config

configs:
  glance:
    content: |
      server:
        # Requests come through the proxy: failed sign-ins are counted by the client's own address.
        proxied: true

      auth:
        secret-key: $${GLANCE_SECRET_KEY}
        users:
          "$${ADMIN_USERNAME}":
            password-hash: $${GLANCE_PASSWORD_HASH}

      pages:
        - name: Home
          columns:
            - size: small
              widgets:
                - type: calendar
                  first-day-of-week: monday

                - type: rss
                  limit: 10
                  collapse-after: 3
                  cache: 12h
                  feeds:
                    - url: https://selfh.st/rss/
                      title: selfh.st
                      limit: 4
                    - url: https://ciechanow.ski/atom.xml
                    - url: https://www.joshwcomeau.com/rss.xml
                      title: Josh Comeau
                    - url: https://samwho.dev/rss.xml
                    - url: https://ishadeed.com/feed.xml
                      title: Ahmad Shadeed

            - size: full
              widgets:
                - type: group
                  widgets:
                    - type: hacker-news
                    - type: lobsters

                - type: videos
                  channels:
                    - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
                    - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
                    - UCsBjURrPoezykLs9EqgamOA # Fireship
                    - UCBJycsmduvYEL83R_U4JriQ # Marques Brownlee
                    - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium

                - type: group
                  widgets:
                    - type: reddit
                      subreddit: technology
                      show-thumbnails: true
                    - type: reddit
                      subreddit: selfhosted
                      show-thumbnails: true

            - size: small
              widgets:
                - type: weather
                  location: London, United Kingdom
                  units: metric
                  hour-format: 24h

                - type: markets
                  markets:
                    - symbol: SPY
                      name: S&P 500
                    - symbol: BTC-USD
                      name: Bitcoin
                    - symbol: NVDA
                      name: NVIDIA
                    - symbol: AAPL
                      name: Apple
                    - symbol: MSFT
                      name: Microsoft

                - type: releases
                  cache: 1d
                  repositories:
                    - glanceapp/glance
                    - go-gitea/gitea
                    - immich-app/immich
                    - syncthing/syncthing

volumes:
  config:
```

[compose.yaml](https://pethost.dev/templates/glance/compose.yaml)[Открыть на GitHub](https://github.com/pethost-dev/templates/tree/main/glance)

## [Еще в категории «Ленты и закладки»](https://pethost.dev/ru/templates/reading/)

- [**FreshRSS**Читалка лент RSS и Atom](https://pethost.dev/ru/templates/freshrss/)
- [**RSSHub**RSS-ленты для сайтов, у которых их нет](https://pethost.dev/ru/templates/rsshub/)
- [**linkding**Менеджер закладок с тегами и поиском](https://pethost.dev/ru/templates/linkding/)
- [**Karakeep**Приложение для закладок со ссылками, заметками и изображениями, с полнотекстовым поиском](https://pethost.dev/ru/templates/karakeep/)
- [**RSS-Bridge**RSS- и Atom-ленты для сайтов, у которых их нет](https://pethost.dev/ru/templates/rss-bridge/)
- [**ArchiveBox**Сохраняйте страницы, видео и статьи в HTML, PDF, скриншотах и медиафайлах — свой архив интернета](https://pethost.dev/ru/templates/archivebox/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагин](https://github.com/pethost-dev/plugin)
- [Условия](https://pethost.dev/terms/)
- [Конфиденциальность](https://pethost.dev/privacy/)
- [Возвраты](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Базы данных

- [Postgres](https://pethost.dev/ru/postgres/)

Сравнения

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/ru/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/ru/blog/coolify-cloud-vs-dokploy-cloud/)
- [Цены Railway, Render и Fly.io](https://pethost.dev/ru/blog/railway-vs-render-vs-fly-io-pricing/)
- [Управляемый хостинг Docker Compose](https://pethost.dev/ru/blog/managed-docker-compose-hosting/)

Альтернативы

- [Альтернативы Railway](https://pethost.dev/ru/blog/railway-alternatives/)
- [Альтернативы Heroku](https://pethost.dev/ru/blog/heroku-alternatives/)
- [Альтернативы Dokploy](https://pethost.dev/ru/blog/dokploy-alternatives/)
- [Альтернативы Coolify](https://pethost.dev/ru/blog/coolify-alternatives/)
- [Альтернативы Render](https://pethost.dev/ru/blog/render-alternatives/)
- [Альтернативы Sliplane](https://pethost.dev/ru/blog/sliplane-alternatives/)
