Inoffiziell
Auf dieser Seite
  1. 01Ein Webziel
  2. 02Das Website-Projekt
  3. 03Bearbeiten, pushen, veröffentlichen
  4. 04Was beim Veröffentlichen geschieht

Eine Website aus Git: bei jedem Push bauen und auf dem Webserver des NAS veröffentlichen

Bucket & Code Server IDE verwaltet eine statische Website in einem Git-Repository auf dem NAS. Die Seiten liegen in src/; ein Makefile kopiert sie nach public/, und jeder Push startet eine Linkprüfung auf dem Runner des NAS. Ein Knopfdruck kopiert public/ auf einen Webserver, etwa den QTS-Webserver auf demselben NAS, und ruft die Seite anschließend zur Kontrolle ab.

  1. Zielein Ordner und seine Adresse
  2. ProjektNeues Projekt, Statische Website
  3. Pushmake test bei jedem Push
  4. Veröffentlichenpublic/ an das Ziel senden

Die Bilder stammen aus dem Bedienfeld von Bucket & Code Server IDE. Die Felder sind wie in dieser Anleitung ausgefüllt. Das NAS hat die Adresse 192.168.1.20, das Konto heißt ola.

01Ein Webziel

Ein Webziel ist der Veröffentlichungsort: ein Ordner auf diesem NAS, den ein Webserver ausliefert, oder ein rclone-Remote wie ein eigener Server über SFTP, FTP, WebDAV oder S3. Der QTS-Webserver (Systemsteuerung → Anwendungen → Webserver) liefert die Freigabe Web unter http://<NAS address>/ aus. Daher ist ein Ordner darin das einfachste Ziel.

  1. Klicke auf der Seite Veröffentlichen (nur für Administratoren, unter Administration) in der Karte Webziele auf Ziel hinzufügen.
  2. Wähle Ein Ordner dieses NAS, gib unter Name einen Namen ein und trage bei Ordner einen eigenen Ordner innerhalb einer Freigabe ein, etwa /share/Web/mysite. Er muss leer oder neu sein, darf nicht die gesamte Freigabe umfassen und muss außerhalb des Datenordners liegen.
  3. Trage unter Öffentliche Adresse die Adresse ein, die den Ordner ausliefert, hier http://192.168.1.20/mysite/. Sie muss mit http:// oder https:// beginnen und darf weder Benutzernamen noch Passwort, Abfrage oder Fragment enthalten. Klicke auf Ziel hinzufügen. Formular für ein Webziel: Ein Ordner dieses NAS gewählt, Name My website, Ordner /share/Web/mysite, öffentliche Adresse http://192.168.1.20/mysite/ und die Schaltfläche Ziel hinzufügen
  4. Wähle das Ziel in der Liste und klicke auf Testen. Die Anwendung kopiert eine kleine Datei in den Ordner, liest sie über die öffentliche Adresse ein und löscht sie wieder. Karte Webziele: My website, /share/Web/mysite und http://192.168.1.20/mysite/; der letzte Test meldet, dass eine Datei kopiert, über die öffentliche Adresse gelesen und gelöscht wurde

Ein rclone-Ziel bezeichnet ein Remote aus der rclone.conf der Sicherungen sowie einen Pfad darauf. Dazu gehört die öffentliche Adresse, unter der dieser Pfad erreichbar ist.

02Das Website-Projekt

Öffne Neues Projekt auf der Git-Seite oder über die Befehlspalette. Dafür ist die Entwicklerrolle nötig; der Schritt Veröffentlichen weiter unten erfordert Administratorrechte.

  1. Vorlage: wähle unter Websites die Vorlage Statische Website. Gewählte Karte Statische Website: Seiten und Ressourcen in src/, ein Makefile kopiert sie nach public/, und make test prüft die Links
  2. Name und Sichtbarkeit: der Name, zum Beispiel mysite, benennt das Repository und den Ordner projects/mysite. Belasse es bei Privat, sofern nicht jedes Konto Lesezugriff haben soll. Name mysite, Eigentümer ola und die Auswahl zwischen Privat und Öffentlich
  3. Bauen: lasse Direkt nach dem Anlegen bauen aktiviert.
  4. Veröffentlichen: aktiviere Auf meinem Webserver veröffentlichen und wähle das Ziel. Ziel hinzufügen funktioniert hier wie auf der Seite Veröffentlichen. Auf meinem Webserver veröffentlichen aktiviert: public/ wird an ein Webziel kopiert und index.html über dessen öffentliche Adresse gelesen; Ziel My website ausgewählt
  5. Prüfe die Angaben unter Überprüfen und klicke auf Projekt anlegen. Die Seite zeigt die Schritte: Repository und erster Commit, erster Build und Veröffentlichung. Projekt wird angelegt: Forgejo-Repository und erster Commit, erster Build sowie Veröffentlichung auf dem Webserver sind abgeschlossen

Die Website ist unter der öffentlichen Adresse des Ziels erreichbar:

Die Vorlagenseite im Browser: mysite, ein Hinweis auf src/index.html und ein Link zur Beschreibung der Website

03Bearbeiten, pushen, veröffentlichen

  • Bearbeite die Seiten in src/ im Editor (das Projekt liegt im Ordner projects/), erstelle einen Commit und pushe ihn. make kopiert src/ nach public/; make test prüft, ob jeder lokale Verweis mit href= und src= auf eine Datei in public/ zeigt; make clean entfernt public/.
  • Jeder Push startet den Workflow des Projekts auf dem Runner des NAS, solange das CI-Modul eingeschaltet ist: make test läuft in der Ubuntu-24.04-Buildumgebung. Ein fehlerhafter Link lässt den Lauf scheitern. Forgejo-Registerkarte Actions: Lauf 1 von build.yml für den ersten Commit erfolgreich
  • Auf der Projektseite (Projekte oder in der Seitenleiste des Editors) kannst du manuell bauen und veröffentlichen: Bauen startet make, Neu bauen startet make clean und danach make, und Auf My website veröffentlichen sendet als Administrator public/ an das Ziel. Ein Push allein veröffentlicht nichts. Projektschritte: Bauen, Status gebaut mit Standardziel all, die Schaltflächen Neu bauen und Auf My website veröffentlichen sowie der Status veröffentlicht

04Was beim Veröffentlichen geschieht

  • Nach dem Kopieren enthält der Zielordner die Website und sonst nichts: Dateien, die nicht mehr zur Website gehören, werden entfernt. bvsd kennzeichnet den Ordner beim ersten Schreiben mit .bvs-web-target (auch der Test legt die Datei an). Enthält ein Ordner andere Dateien, aber nicht diese Kennzeichnung, wird er abgelehnt. So leert die Veröffentlichung keinen fremden Ordner.
  • Nach dem Kopieren ruft die Anwendung index.html über die öffentliche Adresse ab und vergleicht die Datei Byte für Byte. Liefert die Adresse nicht den kopierten Inhalt, schlägt der Auftrag mit web_check: und beiden Werten fehl: Entweder liefert der Webserver einen anderen Ordner aus oder die Adresse ist falsch.
  • Ein Projekt, das ein QPKG erstellt, veröffentlicht auf dieselbe Weise die neueste .qpkg-Datei zusammen mit ihrer .sha256-Datei; die Prüfsumme wird kontrolliert.