sphings-dev.de

Repo Stats auf Unraid installieren

Repo Stats auf einem Unraid-Server mit Compose Manager Plus einrichten: GitHub-Token erstellen, Stack anlegen und das Statistik-Dashboard öffnen.

Unraid kann Docker Compose nicht von Haus aus. Für Repo Stats gibt es auch keine Unraid-Vorlage, deshalb nutzt diese Anleitung das Plugin „Compose Manager Plus“. Am Ende läuft das Dashboard auf Port 8377 deines Servers. Die Bezeichnungen der englischen Unraid-Oberfläche stehen hier auf Englisch.

Vorbereitung

  1. Öffne die Unraid-Weboberfläche. Das Array muss gestartet sein.
  2. Gehe zu „Settings › Docker“.
  3. Stelle „Enable Docker“ auf „Yes“, falls es nicht schon so steht.
  4. Klicke auf „Apply“.

Danach erscheint der Reiter „Docker“. Je nach Version können Bezeichnungen leicht abweichen.

Compose Manager Plus installieren

  1. Öffne den Reiter „Apps“ (fehlt er, installiere zuerst Community Applications, siehe docs.unraid.net/community-applications).
  2. Suche nach „Compose Manager Plus“.
  3. Klicke bei der Hauptversion (nicht der Beta) auf „Install“.
  4. Lass das Installationsfenster geöffnet, bis es fertig ist.

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

Die Datenbank legt die Anleitung im Ordner /mnt/user/appdata/repostats ab, den Docker beim ersten Start anlegt. Die Pfade sind absolut, weil der Projektordner des Plugins auf dem USB-Stick liegt.

  1. Gehe zu „Docker“ und zum Bereich „Compose“.
  2. Klicke auf „Add Stack“.
  3. Gib als Namen repostats ein.
  4. Bestätige das Anlegen. Der Editor öffnet sich.
  5. Füge im Reiter „Compose“ den Inhalt des nächsten Kastens ein.
  6. Ersetze HIER-DEIN-TOKEN durch das kopierte GitHub-Token
  7. Ersetze DEIN-GITHUB-NAME durch deinen GitHub-Benutzernamen
  8. Speichere mit Strg+S.
  9. Klicke beim Stack repostats auf „Compose Up“.
# 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:
      - /mnt/user/appdata/repostats:/data                             # hier liegt die Datenbank (eine SQLite-Datei)
    ports:
      - "8377:8080"                              # Dashboard: http://IP:8377

Das Token steht jetzt im Klartext in dieser Konfiguration. Zeige oder teile sie deshalb nicht. Unraid lädt das Image und startet den Container; die Ausgabe endet mit „Started“.

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. Gehe zu „Docker“.
  2. Suche den Container repostats.

Das Symbol ist grün, nach kurzer Zeit zeigt die Gesundheitsanzeige „healthy“. Über das Symbol öffnest du ein Menü mit „Logs“. Nach „Jetzt alles sammeln“ erscheinen dort Meldungen zum Sammellauf. Die Datenbank ist eine einzige SQLite-Datei; ein Backup ist eine Dateikopie. Sie liegt in /mnt/user/appdata/repostats.

Updates

  1. Gehe zu „Docker“ und zum Bereich „Compose“.
  2. Öffne das Menü beim Stack repostats.
  3. Klicke auf „Update“.

Das Plugin lädt das neue Image und ersetzt den Container; die Datenbank im Appdata-Ordner bleibt. Auch automatische Updates pro Stack sind möglich. Je nach Version können Bezeichnungen leicht abweichen.

Wenn etwas nicht klappt

  • Reiter „Apps“ oder „Compose“ fehlt: Installiere Community Applications und danach Compose Manager Plus, und achte darauf, dass „Enable Docker“ auf „Yes“ steht.
  • Die Seite lädt nicht: Prüfe, ob der Container läuft, und rufe http://IP-DEINES-UNRAID:8377 auf. Ist der Port belegt, ändere "8377:8080" zu "8378:8080".
  • 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

  • Ein Unraid-Server (Version 7) mit gestartetem Array
  • Zugriff auf die Unraid-Weboberfläche
  • 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