sphings-dev.de

Repo Stats auf UGREEN NAS installieren

Repo Stats mit der Docker-App von UGOS Pro auf einer UGREEN-NAS einrichten: GitHub-Token erstellen, Projekt bereitstellen und das Dashboard öffnen.

Diese Anleitung installiert Repo Stats mit der Docker-App von UGOS Pro auf einer UGREEN-NAS. Am Ende läuft das Dashboard auf Port 8377. Die Schritte folgen der UGREEN-Dokumentation für UGOS Pro ab Firmware 1.19.1.0126; ältere Versionen können abweichende Menüs haben. Je nach Version können Bezeichnungen leicht abweichen.

Vorbereitung

Docker-App installieren

  1. Öffne das „App Center“.
  2. Suche nach „Docker“.
  3. Klicke auf „Installieren“ und durchlaufe den Assistenten.
  4. Öffne die App „Docker“.

UGREEN rät davon ab, die Docker-App auf ARM-Geräten mit 4 GB Arbeitsspeicher oder weniger zu installieren. Scheitert später das Herunterladen von Images oder dauert es sehr lange, trägst du in der Docker-App unter „Image › Einstellungen“ im Tab „Image-Repository“ bei „Registrierungseinstellungen“ einen Registry-Mirror ein.

GitHub-Token erstellen

Repo Stats liest deine Repositories über die GitHub-API und braucht dafür ein persönliches Zugriffstoken (Personal Access Token), eine Art Passwort nur für diese Anwendung. Das Token kann auch private Repositories lesen. Gib es deshalb niemandem weiter und trage es nur auf deinem eigenen Gerät ein. Am einfachsten ist ein klassisches Token.

  1. Melde dich bei github.com an.
  2. Klicke oben rechts auf dein Profilbild.
  3. Klicke auf „Settings“.
  4. Scrolle in der linken Seitenleiste nach unten und klicke auf „Developer settings“.
  5. Klicke unter „Personal access tokens“ auf „Tokens (classic)“.
  6. Klicke auf „Generate new token“ und dann auf „Generate new token (classic)“.
  7. Trage bei „Note“ einen Namen ein, zum Beispiel „Repo Stats“.
  8. Wähle bei „Expiration“ eine Laufzeit. Läuft das Token ab, trägst du ein neues ein.
  9. Setze das Häkchen bei „repo“.
  10. Klicke ganz unten auf „Generate token“.
  11. Kopiere das angezeigte Token (es beginnt mit ghp_) und füge es zunächst in ein Textdokument ein.

GitHub zeigt das Token nur ein einziges Mal an. Wenn du die Seite verlässt, ohne es zu kopieren, erstellst du ein neues. Statt eines klassischen Tokens geht auch ein fein granuliertes („Fine-grained tokens“): Es braucht dann Lesezugriff (Read-only) auf „Actions“, „Administration“, „Contents“, „Issues“, „Metadata“ und „Pull requests“. Das Recht „Administration“ schaltet die Verkehrszahlen frei und wird leicht übersehen; ohne es bleiben die Traffic-Zahlen leer. Optional gibt es ein zweites, klassisches Token mit nur dem Scope public_repo für die Sternhistorie (Variable GITHUB_TOKEN_STARS). Ohne dieses Token beginnt die Sternkurve beim ersten Sammellauf. Je nach Version können Bezeichnungen leicht abweichen.

Installation

UGOS legt beim Anlegen eines Projekts automatisch einen Ordner mit dem Projektnamen im freigegebenen Ordner docker an. Die Datenbank liegt in einem Docker-Volume, deshalb brauchst du keinen Datenordner.

  1. Öffne in der Docker-App die Seite „Projekt“.
  2. Klicke auf „Erstellen“.
  3. Gib bei „Projektname“ repostats ein.
  4. Füge unter „Compose-Konfiguration“ den Inhalt des nächsten Kastens ein.
  5. Ersetze HIER-DEIN-TOKEN durch das kopierte GitHub-Token
  6. Ersetze DEIN-GITHUB-NAME durch deinen GitHub-Benutzernamen
  7. Klicke auf „Bereitstellen“.
# Repo Stats – Dashboard für deine GitHub-Statistiken
services:
  repostats:
    image: ghcr.io/sphings79/repostats:latest    # fertiges Image (amd64 und arm64)
    container_name: repostats
    restart: unless-stopped                      # startet nach einem Neustart wieder
    environment:
      GITHUB_TOKEN: "HIER-DEIN-TOKEN"            # Pflicht. Das Token liest auch private Repos – geheim halten!
      GITHUB_LOGIN: "DEIN-GITHUB-NAME"           # Pflicht. Dein GitHub-Benutzername
      GITHUB_TOKEN_STARS: ""                     # optional: zweites Token (Scope "public_repo") für die Sternhistorie
      FULL_RUN_HOUR: "4"                         # Stunde (UTC) des täglichen Komplettlaufs
      QUICK_RUN_MINUTES: "60"                    # Minuten zwischen den schnellen Zähler-Läufen
      TZ: Europe/Berlin                          # Zeitzone
    volumes:
      - repostats-data:/data                             # hier liegt die Datenbank (eine SQLite-Datei)
    ports:
      - "8377:8080"                              # Dashboard: http://IP:8377

volumes:
  repostats-data:

Das Token steht jetzt im Klartext in dieser Konfiguration. Zeige oder teile sie deshalb nicht. Das System lädt das Image und erstellt den Container. Danach steht unter „Container“ der Eintrag repostats als laufend.

Einrichtung in der Weboberfläche

Beim ersten Aufruf gibt es noch kein Konto. Wer den Port zuerst erreicht, legt es an. Erledige diesen Schritt deshalb sofort nach dem Start.

  1. Öffne im Browser http://IP-DES-GERÄTS:8377 (im Beispiel http://192.168.1.50:8377).
  2. Lege auf der Einrichtungsseite einen Benutzernamen und ein Passwort fest.
  3. Öffne den Bereich „Verwaltung“.
  4. Wähle die Repositories aus, die verfolgt werden sollen.
  5. Klicke auf „Jetzt alles sammeln“.

Der erste Lauf holt alle Zahlen, die GitHub hergibt; danach füllt sich die Übersicht mit Kacheln für Sterne, Besucher, Clones und Downloads. Benutzername und Passwort lassen sich später unter „Konto“ ändern. Ab jetzt sammelt Repo Stats von selbst: stündlich die günstigen Zähler (Sterne, Forks, Downloads) und täglich um 4 Uhr UTC alles andere, etwa Verkehr, Herkunft und CI-Läufe.

Kontrolle

  1. Öffne die Seite „Container“.
  2. Klicke auf repostats.
  3. Wechsle zum Reiter „Protokoll“.

Der Container hat den Status „Running“, das Protokoll zeigt Meldungen zum Sammellauf. Das Docker-Volume repostats-data enthält die Datenbank, eine einzelne SQLite-Datei.

Updates

Schalte zuerst die Updateerkennung ein: In der Docker-App aktivierst du unter „Verwaltung“ die „Updateerkennung“. Gibt es eine neue Version, erscheint ein Hinweis in der Liste.

  1. Öffne die Seite „Projekt“.
  2. Wähle repostats und klicke auf „Update“.

UGREEN beschreibt, dass dabei die neuesten Images geladen und das Projekt neu aufgebaut wird, mit kurzer Unterbrechung. Die Position der Schaltfläche kann je nach Version abweichen. Das Volume mit der Datenbank bleibt erhalten.

Wenn etwas nicht klappt

  • Die Seite lädt nicht: Prüfe, ob der Container „Running“ ist, und rufe http://IP-DER-NAS:8377 auf. Der NAS-Port darf nicht schon belegt sein; ändere sonst "8377:8080" zu "8378:8080".
  • Der Container startet nicht: Die UGREEN-Dokumentation empfiehlt, zuerst das Container-Protokoll zu prüfen.
  • Das Herunterladen des Images scheitert: Trage wie oben beschrieben einen Registry-Mirror ein.
  • Die Verkehrszahlen (Besucher, Clones) bleiben leer: Dem Token fehlt ein Recht. Beim klassischen Token muss „repo“ gesetzt sein, beim fein granulierten Token Lesezugriff auf „Administration“.
  • Die Sternkurve beginnt erst heute: Ohne GITHUB_TOKEN_STARS (klassisches Token mit public_repo) beginnt sie beim ersten Sammellauf.
  • Passwort für das Dashboard vergessen: Das Konto lässt sich verwerfen und neu einrichten (Befehl siehe Projektseite auf GitHub). Das Token bleibt davon unberührt.
  • Die Seite ist öffentlich erreichbar: Im Container liegt ein Token, das private Repositories lesen kann. Veröffentliche den Port nicht ins Internet.

Voraussetzungen

  • Eine UGREEN-NAS mit UGOS Pro (ab Firmware 1.19.1.0126 beschrieben)
  • Ein Administrator-Konto auf der NAS
  • Ein GitHub-Konto

Andere Systeme

Unterstützen

Diese Tools entstehen in meiner Freizeit und bleiben kostenlos, offen und cloud-frei. Wenn dir eins davon einen Nachmittag gespart hat, freue ich mich über einen Kaffee oder ein Stück Pizza.

Kaffee oder Pizza