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.
- Zielein Ordner und seine Adresse
- ProjektNeues Projekt, Statische Website
- Pushmake test bei jedem Push
- 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.
- Klicke auf der Seite Veröffentlichen (nur für Administratoren, unter Administration) in der Karte Webziele auf Ziel hinzufügen.
- 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. - Trage unter Öffentliche Adresse die Adresse ein, die den Ordner ausliefert, hier
http://192.168.1.20/mysite/. Sie muss mithttp://oderhttps://beginnen und darf weder Benutzernamen noch Passwort, Abfrage oder Fragment enthalten. Klicke auf Ziel hinzufügen.
- 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.

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.
- Vorlage: wähle unter Websites die Vorlage Statische Website.

- Name und Sichtbarkeit: der Name, zum Beispiel
mysite, benennt das Repository und den Ordnerprojects/mysite. Belasse es bei Privat, sofern nicht jedes Konto Lesezugriff haben soll.
- Bauen: lasse Direkt nach dem Anlegen bauen aktiviert.
- Veröffentlichen: aktiviere Auf meinem Webserver veröffentlichen und wähle das Ziel. Ziel hinzufügen funktioniert hier wie auf der Seite Veröffentlichen.

- 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.

Die Website ist unter der öffentlichen Adresse des Ziels erreichbar:
03Bearbeiten, pushen, veröffentlichen
- Bearbeite die Seiten in
src/im Editor (das Projekt liegt im Ordnerprojects/), erstelle einen Commit und pushe ihn.makekopiertsrc/nachpublic/;make testprüft, ob jeder lokale Verweis mithref=undsrc=auf eine Datei inpublic/zeigt;make cleanentferntpublic/. - Jeder Push startet den Workflow des Projekts auf dem Runner des NAS, solange das CI-Modul eingeschaltet ist:
make testläuft in der Ubuntu-24.04-Buildumgebung. Ein fehlerhafter Link lässt den Lauf scheitern.
- Auf der Projektseite (Projekte oder in der Seitenleiste des Editors) kannst du manuell bauen und veröffentlichen: Bauen startet
make, Neu bauen startetmake cleanund danachmake, und Auf My website veröffentlichen sendet als Administratorpublic/an das Ziel. Ein Push allein veröffentlicht nichts.
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 mitweb_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.