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

[← Усі шаблони](https://pethost.dev/uk/templates/) · [Стрічки й закладки](https://pethost.dev/uk/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 — з ключем доступу, через 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/uk/templates/reading/)

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

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблони](https://pethost.dev/uk/templates/)
- [Про нас](https://pethost.dev/about/)
- [Документація](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/uk/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/uk/postgres/)

Порівняння

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

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

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