Onofficieel
Op deze pagina
  1. 01Een webdoel
  2. 02Het websiteproject
  3. 03Bewerken, pushen, publiceren
  4. 04Wat publiceren doet

Een website uit Git: bouwen bij elke push en publiceren op de webserver van je NAS

Bucket & Code Server IDE bewaart een statische website in een Git-repository op je NAS. De pagina’s staan in src/; een Makefile kopieert ze naar public/ en elke push start een linkcontrole op de runner van de NAS. Met één knop kopieer je public/ naar een webserver, zoals die van QTS op dezelfde NAS, waarna de gepubliceerde pagina wordt teruggelezen om het resultaat te controleren.

  1. Doeleen map en het adres ervan
  2. ProjectNieuw project, Statische website
  3. Pushmake test bij elke push
  4. Publicerenpublic/ naar het doel

De afbeeldingen komen uit het paneel van Bucket & Code Server IDE. De velden zijn ingevuld zoals deze handleiding beschrijft. De NAS heeft adres 192.168.1.20 en het account heet ola.

01Een webdoel

Een webdoel is de plek waar een website naartoe gaat: een map op deze NAS die door een webserver wordt aangeboden, of een rclone-remote zoals je eigen server via SFTP, FTP, WebDAV of S3. De webserver van QTS (Control Panel → Applications → Web Server) biedt de gedeelde map Web aan op http://<NAS address>/. Een map daarin is daarom het eenvoudigste doel.

  1. Klik op de pagina Publiceren (voor beheerders, onder Beheer) in de kaart Webdoelen op Een doel toevoegen.
  2. Kies Een map van deze NAS, vul bij Naam een naam in en geef bij Map een eigen map binnen een gedeelde map op, bijvoorbeeld /share/Web/mysite. De map is leeg of nieuw, is nooit een volledige gedeelde map en staat buiten de datamap.
  3. Vul bij Openbaar adres het adres in waarop de map wordt aangeboden, hier http://192.168.1.20/mysite/. Het moet beginnen met http:// of https:// en mag geen gebruikersnaam, wachtwoord, query of fragment bevatten. Klik op Doel toevoegen. Formulier voor webdoel: Een map van deze NAS geselecteerd, Naam My website, Map /share/Web/mysite, Openbaar adres http://192.168.1.20/mysite/ en de knop Doel toevoegen
  4. Kies het doel in de lijst en klik op Testen. De toepassing kopieert een klein bestand naar de map, leest het terug via het openbare adres en verwijdert het weer. Kaart Webdoelen: My website, /share/Web/mysite en http://192.168.1.20/mysite/; de laatste test bevestigt dat een bestand is gekopieerd, via het openbare adres gelezen en verwijderd

Een rclone-doel noemt een remote uit de rclone.conf van de back-ups, een pad op die remote en het openbare adres waaronder dat pad wordt aangeboden.

02Het websiteproject

Open Nieuw project vanaf de Git-pagina of via het opdrachtenpalet. Hiervoor is de rol developer nodig; voor de publicatiestap verderop zijn beheerdersrechten vereist.

  1. Sjabloon: kies onder Websites voor Statische website. Geselecteerde kaart Statische website: pagina’s en bestanden in src/, een Makefile kopieert ze naar public/ en make test controleert de links
  2. Naam en zichtbaarheid: de naam, bijvoorbeeld mysite, bepaalt de naam van de repository en de map projects/mysite. Laat Privé staan, tenzij elk account het project mag lezen. Naam mysite, eigenaar ola en de keuze tussen Privé en Openbaar
  3. Bouwen: laat Direct na het aanmaken bouwen ingeschakeld.
  4. Publiceren: schakel Publiceren op mijn webserver in en kies het doel. Een doel toevoegen werkt hier hetzelfde als op de pagina Publiceren. Publiceren op mijn webserver ingeschakeld: kopieert public/ naar een webdoel en leest index.html terug via het openbare adres; doel My website geselecteerd
  5. Ga naar Controle en klik op Project aanmaken. De pagina toont de stappen: repository en eerste commit, eerste build en publicatie. Project wordt aangemaakt: Forgejo-repository en eerste commit, eerste build en publicatie op de webserver zijn voltooid

De website is bereikbaar op het openbare adres van het doel:

De sjabloonpagina in een browser: mysite, een verwijzing naar src/index.html en een link naar informatie over de site

03Bewerken, pushen, publiceren

  • Bewerk de pagina’s in src/ met de editor (het project staat in de map projects/), maak een commit en push deze. make kopieert src/ naar public/; make test controleert of elke lokale href= en src= in de pagina’s naar een bestand in public/ verwijst; make clean verwijdert public/.
  • Elke push start de workflow van het project op de runner van de NAS zolang de CI-module aanstaat: make test draait in de Ubuntu 24.04-bouwomgeving. Een kapotte link laat de run mislukken. Forgejo-tabblad Actions: eerste run van build.yml voor de eerste commit geslaagd
  • Op de projectpagina (Projecten of in de zijbalk van de editor) kun je handmatig bouwen en publiceren: Bouwen start make, Opnieuw bouwen start make clean en daarna make, en Publiceren op My website stuurt als beheerder public/ naar het doel. Publicatie start nooit vanzelf na een push. Projectstappen: Bouwen, status gebouwd met standaarddoel all, knoppen Opnieuw bouwen en Publiceren op My website en status gepubliceerd

04Wat publiceren doet

  • Na het kopiëren bevat de doelmap de website en verder niets: bestanden die niet meer bij de site horen, worden verwijderd. bvsd markeert de map bij de eerste schrijfactie met .bvs-web-target (de test doet dat ook). Bevat een map andere bestanden maar niet deze markering, dan wordt ze geweigerd. Zo maakt een publicatie geen map leeg die niet bij de site hoort.
  • Na het kopiëren leest de toepassing index.html via het openbare adres terug en vergelijkt het bestand byte voor byte. Als het adres niet de gekopieerde inhoud aanbiedt, mislukt de taak met web_check: en beide waarden: de webserver biedt een andere map aan of het adres is onjuist.
  • Een project dat een QPKG maakt, publiceert op dezelfde manier het nieuwste .qpkg-bestand en het bijbehorende .sha256-bestand, gecontroleerd met sha256.