Español
Empezar

← Todas las plantillas · Feeds y marcadores

Despliega Glance en un clic

Un panel rápido y ligero con tus feeds, noticias, el clima, los mercados y más

Una alternativa autoalojada a Netvibes y Feedly.

¿Qué es Glance?

Glance es un panel autoalojado que reúne en una página lo que lees y consultas cada día: feeds RSS, subreddits, Hacker News y Lobsters, canales de YouTube y Twitch, el clima, precios de mercado, un calendario, nuevas versiones de repositorios de GitHub y el estado de tus sitios. La gente lo usa como página de inicio del navegador, en lugar de Netvibes o de un lector de feeds como Feedly, y en el teléfono, donde la página se ajusta a la pantalla.

Todo se escribe en un archivo YAML: tantas páginas como quieras, cada una en columnas de widgets, con temas, CSS propio y widgets tuyos que leen cualquier API JSON. Glance es un solo programa en Go de menos de 20 MB, usa unas pocas decenas de megabytes de memoria y carga una página en más o menos un segundo.

Esta plantilla ejecuta Glance con su configuración en un volumen, a partir de una página de ejemplo, y protegido por un inicio de sesión con el nombre de usuario y la contraseña que indicas, así que el panel está cerrado para extraños. La contraseña va en la configuración como hash bcrypt, y los inicios de sesión fallidos se cuentan por la dirección IP de cada visitante.

Hosting de Glance en Pethost

  1. Inicias sesión en Pethost con una passkey, GitHub o Google. ¿Aún no tienes máquina? Eliges un plan, y el enlace espera hasta que esté lista.
  2. Nuevo proyecto se abre en Glance. Rellenas lo que pide y haces clic en Crear proyecto: Nombre de usuario, Contraseña de administrador.
  3. En un par de minutos Glance está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar, y sus datos entran en el backup de cada noche.
  4. Es un proyecto como cualquier otro: tú o tu agente lo pueden cambiar, volver a una versión anterior o restaurar.

Preguntas sobre Glance

¿Glance es gratis?

Sí. Glance es de código abierto bajo la licencia AGPL-3.0, sin edición de pago, y ejecutarlo tú mismo solo cuesta la máquina.

¿Cómo agrego un widget o una página a Glance?

Edita glance.yml: cada página tiene columnas, y cada columna una lista de widgets, cada uno con un tipo, como rss, reddit, weather o videos, y sus opciones. Glance recarga la página en cuanto se guarda el archivo, y si el archivo tiene un error, sigue mostrando la última versión que funcionaba.

¿Glance puede mostrar mis propios servicios o APIs?

Sí. El widget monitor muestra si tus sitios responden, y el widget custom-api lee cualquier API JSON y la dibuja con una plantilla que tú escribes. Los widgets de la comunidad agregan así muchos servicios.

¿Glance funciona en el teléfono?

Sí. Su página está hecha también para pantallas pequeñas, y puedes agregarla a la pantalla de inicio. Inicias sesión una vez y la sesión dura 14 días.

¿Cuánta memoria y disco necesita Glance?

Glance es muy ligero: unos 20 MB de memoria, y no guarda nada en disco salvo su archivo de configuración. En Pethost le basta el plan Starter, y queda sitio para otras apps a su lado.

El archivo Docker Compose de Glance

La plantilla es este compose.yaml y las variables que se escriben en el .env del proyecto al crearlo. Pethost ejecuta el archivo tal como está escrito.

Contenedores: glance (glanceapp/glance:v0.8.7).

Volúmenes, en el backup de cada noche: 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:

Más en Feeds y marcadores