Non officiel
Sur cette page
  1. 01Une cible web
  2. 02Le projet du site
  3. 03Modifier, pousser, publier
  4. 04Ce que fait la publication

Un site web depuis Git : construire à chaque push et publier sur le serveur web du NAS

Bucket & Code Server IDE conserve un site web statique dans un dépôt Git sur votre NAS. Les pages se trouvent dans src/ ; un Makefile les copie dans public/, et chaque push lance une vérification des liens sur le runner du NAS. Un bouton copie public/ vers un serveur web, par exemple celui de QTS sur le même NAS, puis lit la page publiée pour vérifier sa présence.

  1. Cibleun dossier et son adresse
  2. ProjetNouveau projet, Site web statique
  3. Pushmake test à chaque push
  4. Publicationpublic/ vers la cible

Les captures proviennent du panneau de Bucket & Code Server IDE, avec les champs remplis comme dans ce tutoriel. Le NAS est à l’adresse 192.168.1.20 et le compte s’appelle ola.

01Une cible web

Une cible web est le lieu de publication : un dossier de ce NAS servi par un serveur web, ou une destination rclone telle que votre propre serveur via SFTP, FTP, WebDAV ou S3. Le serveur web de QTS (Control Panel → Applications → Web Server) sert le partage Web à l’adresse http://<NAS address>/. Un dossier dans ce partage est donc la cible la plus simple.

  1. Sur la page Publier (réservée à l’administrateur, sous Administration), cliquez sur Ajouter une destination dans la carte Cibles web.
  2. Choisissez Un dossier de ce NAS, renseignez Nom et saisissez sous Dossier un dossier distinct dans un partage, par exemple /share/Web/mysite. Il doit être vide ou nouveau, ne doit pas désigner tout le partage et doit rester hors du dossier de données.
  3. Saisissez sous Adresse publique l’adresse qui sert ce dossier, ici http://192.168.1.20/mysite/. Elle doit commencer par http:// ou https://, sans identifiant, mot de passe, paramètres de requête ni fragment. Cliquez sur Ajouter la cible. Formulaire de cible web : Un dossier de ce NAS sélectionné, Nom My website, Dossier /share/Web/mysite, Adresse publique http://192.168.1.20/mysite/ et bouton Ajouter la cible
  4. Sélectionnez la cible dans la liste et cliquez sur Tester. L’application copie un petit fichier dans le dossier, le relit depuis l’adresse publique, puis le supprime. Carte Cibles web : My website, /share/Web/mysite et http://192.168.1.20/mysite/ ; le dernier test confirme la copie d’un fichier, sa lecture à l’adresse publique et sa suppression

Une cible rclone indique un nom distant défini dans le fichier rclone.conf des sauvegardes, un chemin sur cette destination et l’adresse publique qui sert ce chemin.

02Le projet du site

Ouvrez Nouveau projet depuis la page Git ou la palette de commandes. Cette étape exige le rôle developer ; la publication décrite plus loin exige un compte administrateur.

  1. Modèle : sous Sites web, choisissez Site web statique. Carte Site web statique sélectionnée : pages et ressources dans src/, Makefile les copie dans public/ et make test vérifie les liens
  2. Nom et visibilité : le nom, par exemple mysite, désigne le dépôt et le dossier projects/mysite. Laissez Privé, sauf si tous les comptes doivent pouvoir le lire. Nom mysite, propriétaire ola et choix entre Privé et Public
  3. Compiler : laissez Compiler juste après la création activé.
  4. Publier : activez Publier sur mon serveur web et choisissez la cible. Ajouter une destination fonctionne ici comme sur la page Publier. Publier sur mon serveur web activé : copie public/ vers une cible web et relit index.html depuis son adresse publique ; cible My website sélectionnée
  5. Passez à Vérification, puis cliquez sur Créer le projet. La page suit les étapes : dépôt et premier commit, première compilation, puis publication. Création du projet : dépôt Forgejo et premier commit, première compilation et publication sur le serveur web, toutes les étapes terminées

Le site répond à l’adresse publique de la cible :

La page du modèle dans un navigateur : mysite, une indication sur src/index.html et un lien vers la présentation du site

03Modifier, pousser, publier

  • Modifiez les pages dans src/ avec l’éditeur (le projet est dans le dossier projects/), créez un commit et poussez-le. make copie src/ dans public/ ; make test vérifie que chaque lien local href= et chaque source src= des pages mène à un fichier de public/ ; make clean supprime public/.
  • Chaque push lance le workflow du projet sur le runner du NAS tant que le module CI est activé : make test s’exécute dans l’environnement de compilation Ubuntu 24.04. Un lien erroné fait échouer l’exécution. Onglet Actions de Forgejo : première exécution de build.yml pour le premier commit, réussie
  • La page du projet (Projets ou barre latérale de l’Éditeur) permet de compiler et publier manuellement : Compiler lance make, Recompiler lance make clean puis make, et Publier sur My website (pour l’administrateur) envoie public/ vers la cible. Un push seul ne déclenche jamais la publication. Étapes du projet : Compiler, état compilé avec la cible par défaut all, boutons Recompiler et Publier sur My website, puis état publié

04Ce que fait la publication

  • Après la copie, le dossier cible contient le site et rien d’autre : tout fichier supprimé du site y est effacé. bvsd marque le dossier avec .bvs-web-target lors de sa première écriture (le test le fait aussi). Si un dossier contient d’autres fichiers sans cette marque, la publication est refusée : elle ne vide donc pas un dossier qui n’appartient pas au site.
  • Après la copie, l’application lit index.html à l’adresse publique et le compare octet par octet. Si cette adresse ne sert pas le contenu copié, la tâche échoue avec web_check: et les deux valeurs : soit le serveur web sert un autre dossier, soit l’adresse est incorrecte.
  • Un projet qui crée un QPKG publie de la même manière le plus récent fichier .qpkg et son fichier .sha256, avec vérification de la somme sha256.