Web z Gitu: sestavení po každém pushi a publikace na webovém serveru NASu
Bucket & Code Server IDE ukládá statický web do repozitáře Git na vašem NASu. Stránky jsou v src/; Makefile je kopíruje do public/ a každý push spouští kontrolu odkazů na runneru NASu. Jedním tlačítkem se public/ zkopíruje na webový server, například na webový server QTS na stejném NASu, a publikovaná stránka se načte zpět pro ověření.
- Cílsložka a její adresa
- ProjektNew project, Static website
- Pushmake test při každém pushi
- Publikacepublic/ do cíle
Obrázky pocházejí z panelu Bucket & Code Server IDE s poli vyplněnými podle tohoto návodu. NAS má adresu 192.168.1.20 a účet se jmenuje ola.
01Webový cíl
Webový cíl je místo publikace: složka na tomto NASu, kterou zpřístupňuje webový server, nebo vzdálené úložiště rclone, například vlastní server přes SFTP, FTP, WebDAV či S3. Webový server QTS (Control Panel → Applications → Web Server) zpřístupňuje sdílenou složku Web na http://<NAS address>/, takže složka uvnitř je nejjednodušším cílem.
- Na stránce Publish (pro administrátora, v části Administration) stiskněte Add a target na kartě Web targets.
- Vyberte A folder of this NAS, vyplňte Name a do Folder zadejte samostatnou složku ve sdílené složce, například
/share/Web/mysite. Musí být prázdná nebo nová, nesmí to být celý sdílený svazek a musí ležet mimo datovou složku aplikace. - Do Public address zadejte adresu, na které je složka dostupná, zde
http://192.168.1.20/mysite/. Musí začínathttp://nebohttps://a nesmí obsahovat uživatelské jméno, heslo, dotaz ani fragment. Stiskněte Add the target.
- Vyberte cíl v seznamu a stiskněte Test. Aplikace zkopíruje malý soubor do složky, načte jej z veřejné adresy a odstraní.

Cíl rclone určuje vzdálené úložiště ze souboru rclone.conf pro zálohy, cestu v něm a veřejnou adresu, na které je tato cesta dostupná.
02Projekt webu
Otevřete New project ze stránky Git nebo z palety příkazů. Tento krok vyžaduje roli developer; publikaci popsanou níže smí provést administrátor.
- Template: v části Websites vyberte Static website.

- Name and visibility: název, například
mysite, určuje jméno repozitáře a složkyprojects/mysite. Ponechte Private, pokud nemá mít každý účet právo ke čtení.
- Build: ponechte zapnuté Build right after creating.
- Publish: zapněte Publish to my web server a vyberte cíl. Add a target zde funguje stejně jako na stránce Publish.

- Přejděte na Review a stiskněte Create project. Stránka zobrazuje jednotlivé kroky: repozitář a první commit, první sestavení a publikaci.

Web je dostupný na veřejné adrese cíle:
03Úpravy, push a publikace
- Upravte stránky v
src/v editoru (projekt je ve složceprojects/), vytvořte commit a odešlete jej pushem.makekopírujesrc/dopublic/;make testkontroluje, zda každý místní odkazhref=a zdrojsrc=na stránkách vede k souboru vpublic/;make cleanodstraňujepublic/. - Každý push spustí workflow projektu na runneru NASu, pokud je zapnutý modul CI:
make testběží v prostředí Ubuntu 24.04 pro sestavení. Neplatný odkaz způsobí selhání běhu.
- Na stránce projektu (Projects nebo v postranním panelu editoru) můžete sestavovat a publikovat ručně: Build spustí
make, Rebuild spustímake cleana potémakea Publish to My website jako administrátor odešlepublic/do cíle. Samotný push publikaci nespouští.
04Co publikace provede
- Po kopírování obsahuje cílová složka web a nic dalšího: soubory odstraněné z webu se z cíle smažou. bvsd složku při prvním zápisu označí souborem
.bvs-web-target(totéž dělá test). Složka s jinými soubory bez této značky se odmítne, takže publikace nevyprázdní cizí složku. - Po kopírování aplikace načte
index.htmlz veřejné adresy a porovná jej bajt po bajtu. Pokud adresa neposkytuje zkopírovaný obsah, úloha selže s hlášenímweb_check:a oběma hodnotami: webový server zpřístupňuje jinou složku nebo je adresa chybná. - Projekt, který vytváří QPKG, publikuje stejným způsobem nejnovější soubor
.qpkgspolu s jeho.sha256, ověřeným pomocí sha256.