Deutsch
Loslegen

← Alle Vorlagen · Feeds und Lesezeichen

Glance mit einem Klick deployen

Ein schnelles, leichtes Dashboard für deine Feeds, News, das Wetter, Börsenkurse und mehr

Eine selbst gehostete Alternative zu Netvibes und Feedly.

Was ist Glance?

Glance ist ein selbst gehostetes Dashboard, das alles, was du täglich liest und prüfst, auf eine Seite bringt: RSS-Feeds, Subreddits, Hacker News und Lobsters, YouTube- und Twitch-Kanäle, Wetter, Börsenkurse, einen Kalender, neue Releases von GitHub-Repositorys und den Status deiner Websites. Viele nutzen es als Startseite im Browser, statt Netvibes oder eines Feedreaders wie Feedly, und auf dem Handy, wo sich die Seite dem Bildschirm anpasst.

Alles steht in einer YAML-Datei: so viele Seiten, wie du willst, jede in Spalten aus Widgets, mit Themes, eigenem CSS und eigenen Widgets, die jede beliebige JSON-API lesen. Glance ist ein einzelnes Go-Programm von weniger als 20 MB, braucht ein paar Dutzend Megabyte RAM und lädt eine Seite in etwa einer Sekunde.

Diese Vorlage betreibt Glance mit der Konfiguration in einem Volume, ausgehend von einer Beispielseite, und mit einer Anmeldung per Benutzername und Passwort, die du festlegst, sodass das Dashboard für Fremde verschlossen bleibt. Das Passwort kommt als bcrypt-Hash in die Konfiguration, und fehlgeschlagene Anmeldungen zählt Glance getrennt nach der IP-Adresse, von der sie kommen.

Glance-Hosting auf Pethost

  1. Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
  2. „Neues Projekt“ öffnet sich bei Glance. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: Benutzername, Admin-Passwort.
  3. In ein, zwei Minuten läuft Glance unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
  4. Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.

Fragen zu Glance

Ist Glance kostenlos?

Ja. Glance ist Open Source unter der AGPL-3.0-Lizenz, ohne kostenpflichtige Edition, und selbst betrieben kostet es nur die Maschine.

Wie füge ich Glance ein Widget oder eine Seite hinzu?

Bearbeite die glance.yml: Jede Seite hat Spalten und jede Spalte eine Liste von Widgets, jedes mit einem Typ wie rss, reddit, weather oder videos und seinen Optionen. Glance lädt die Seite neu, sobald die Datei gespeichert ist, und enthält die Datei einen Fehler, zeigt es weiter die letzte funktionierende.

Kann Glance meine eigenen Dienste oder APIs anzeigen?

Ja. Das Widget monitor zeigt, ob deine Websites antworten, und das Widget custom-api liest jede beliebige JSON-API und stellt sie mit einer Vorlage dar, die du schreibst. Community-Widgets binden auf diese Weise viele Dienste an.

Funktioniert Glance auf dem Handy?

Ja. Die Seite ist auch für kleine Bildschirme gemacht, und du kannst sie zum Startbildschirm hinzufügen. Melde dich einmal an, und die Sitzung hält 14 Tage.

Wie viel RAM und Speicherplatz braucht Glance?

Glance ist sehr leicht: etwa 20 MB RAM, und auf der Disk liegt nur seine Konfigurationsdatei. Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.

Glance: die Docker-Compose-Datei

Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist.

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

Volumes, im nächtlichen Backup: 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:

Mehr in Feeds und Lesezeichen