Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Der Paketserver auf GitHub

Das GitHub-Repository hinter dem Paketserver, se7enxweb/exponential.packages.exponential.earth, und wie daraus eine Website wird - die Einstellungen von GitHub Pages, die Workflow-Datei Zeile für Zeile, die Action für…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/package-server/the-package-server-on-github.md

On this page

This page is a translation. Read the English original

Der Paketserver auf GitHub

Diese Seite ist für Entwickler, die den Paketserver verstehen, nachbauen oder zu ihm beitragen wollen. Sie erklärt das Repository se7enxweb/exponential.packages.exponential.earth, wie GitHub daraus https://exponential.packages.exponential.earth/ macht und wofür jede Datei außerhalb der Release-Ordner da ist. Die Fakten zum Repository wurden am 18.10.2026 mit gh api (nur lesend) gelesen.

Inhalt

  1. Das Repository
  2. Vom Push zur Website
  3. Die Workflow-Datei
  4. Die Action für die Verzeichnisauflistung
  5. CNAME
  6. FUNDING.yml
  7. crossdomain.xml und README.md
  8. Die Einrichtung für einen eigenen Server nachbauen
  9. Verwandte Seiten

Das Repository

EigenschaftWert
Namese7enxweb/exponential.packages.exponential.earth
Sichtbarkeitöffentlich
Standard-Branchmaster
Homepagehttps://exponential.packages.exponential.earth/
Fork vonezpublishlegacy/packages.ezpublishlegacy.com, dem Spiegel von 2014 (Geschichte)
Größeetwa 2,5 GB mit seiner Geschichte (die GitHub-API meldet 2.520.299 KB)
Issueseingeschaltet
Commits341 (bis 16.10.2026)

Der Baum:

.github/FUNDING.yml
.github/workflows/workflow.yml
CNAME
README.md
crossdomain.xml
exponential/6.0/<version>/index.xml
exponential/6.0/<version>/<name>.ezpkg
exponential/6.0/<version>/thumbnails/<name>.png

Tipp Das Repository ist groß, weil jede .ezpkg jedes Release in seiner Geschichte aufbewahrt wird. Zum Lesen klonen Sie es ohne Blobs: git clone --filter=blob:none https://github.com/se7enxweb/exponential.packages.exponential.earth.git, dann nutzen Sie git log und git ls-tree -r -l HEAD; Git holt den Inhalt einer Datei erst, wenn Sie sie öffnen.

Vom Push zur Website

SchrittWas geschieht
1Ein Commit wird nach master gepusht (direkt oder durch Zusammenführen eines Pull Requests)
2Der Workflow main startet (on: [push])
3Der Job pages-directory-listing checkt master aus, schreibt in jeden Ordner eine index.html und lädt den ganzen Baum als Artefakt für Pages hoch
4Der Job deploy veröffentlicht dieses Artefakt in der Umgebung github-pages
5GitHub Pages liefert es unter der eigenen Domain aus CNAME aus, mit erzwungenem HTTPS

Die Einstellungen von Pages, wie die API sie meldet: Build-Typ workflow (kein Branch), Quell-Branch master, eigene Domain exponential.packages.exponential.earth, HTTPS erzwungen. Der Workflow ist 150 Mal gelaufen; die Läufe stehen unter Actions.

Hinweis Während ein Ausrollen läuft, kann der Server einige Minuten lang mit Fehlern antworten. Deshalb wiederholt der Setup-Assistent einen gescheiterten Download (Wenn der Paketserver nicht erreichbar ist).

Die Workflow-Datei

.github/workflows/workflow.yml, auf ihre arbeitenden Zeilen gekürzt:

name: main
on: [push]

concurrency:
  group: pages
  cancel-in-progress: false

jobs:
  pages-directory-listing:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/[email protected]
        with:
          ref: master
      - uses: jayanta525/github-pages-directory-listing@main
        with:
          FOLDER: .
      - uses: actions/upload-pages-artifact@v3
        with:
          path: '.'

  deploy:
    needs: pages-directory-listing
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
    runs-on: ubuntu-latest
    steps:
      - id: deployment
        uses: actions/deploy-pages@v4
TeilWarum
concurrency: group: pages, cancel-in-progress: falseEin Ausrollen nach dem anderen. Sein Kommentar erklärt: Ein Push, der während eines laufenden Ausrollens ankommt, wartet darauf, und nur der neueste wartende Push rollt aus; jedes Ausrollen veröffentlicht den ganzen Baum zum Stand seines Commits, sodass nichts verloren geht, wenn ein älterer wartender übersprungen wird. Hinzugefügt am 12.10.2026, als nacheinander gepushte Pakete die Ausrollvorgänge der anderen scheitern ließen
ref: masterRollt immer den Branch aus, gleich welcher Ref gepusht wurde
FOLDER: .Seiten der Auflistung für den ganzen Baum, von oben
path: '.'Der ganze Checkout ist die Website
permissionsDer Job zum Ausrollen darf nach Pages schreiben und ein OIDC-Token anfordern, das deploy-pages braucht

Die echte Datei hat außerdem Schritte, die ls -al und du -sh . ausgeben, um die Größe des Artefakts im Log zu sehen.

Die Action für die Verzeichnisauflistung

jayanta525/github-pages-directory-listing erzeugt für jeden Ordner die Seite „Index of /...“. Wie die Seiten aussehen, ist in Den Paketserver im Browser durchsuchen beschrieben. Vor dem 24.12.2023 nutzte der Server einen JavaScript-Dateibrowser in einer von Hand erstellten index.html; er wurde durch diese Action ersetzt.

CNAME

CNAME enthält eine Zeile, den Hostnamen, auf den GitHub Pages antwortet:

exponential.packages.exponential.earth

Sie hat diesen Wert seit dem 13.08.2025. Ihn zu ändern verlegt die Website auf einen anderen Hostnamen; jede Installation, deren RemotePackagesIndexURL den alten nennt, hinge dann von einer Umleitung ab. Ändern Sie ihn nicht in einem Pull Request.

FUNDING.yml

.github/FUNDING.yml lässt GitHub im Repository eine Schaltfläche Sponsor zeigen. Sie nennt GitHub Sponsors für die Organisation se7enxweb, Patreon und eigene Links zu PayPal, Venmo, Cash App und https://se7enx.com. Sie wurde am 24.12.2023 angelegt. Auf die Website hat sie keine Wirkung. Siehe Wer ist die Exponential Foundation?, wie das Projekt finanziert wird.

crossdomain.xml und README.md

  • crossdomain.xml ist eine Cross-Domain-Richtlinie, die den Zugriff von jeder Domain erlaubt (<allow-access-from domain="*"/>). Sie kam mit dem Spiegel von 2014; nichts in Exponential liest sie.
  • README.md nennt den Server (Paketserver für Exponential 6), das Datum seiner letzten Aktualisierung und Links zum Projekt, zum Paketserver, zur Dokumentation, zur Community und zum Hersteller. Sie wird als Datei der Website ausgeliefert und auf der Startseite des Repositorys gezeigt.

Die Einrichtung für einen eigenen Server nachbauen

Dieselben drei Dinge machen jedes Repository zu einem Paketserver: Release-Ordner mit einer index.xml und den Paketen, ein Workflow für Pages wie der oben und, wenn Sie einen eigenen Hostnamen wollen, eine Datei CNAME und ein DNS-Eintrag dafür. Siehe Einen eigenen Paketserver betreiben. Für ein Paket, das alle bekommen sollen, ist ein Pull Request an dieses Repository der bessere Weg: Ihr Seitenpaket beitragen.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x