{{indexmenu_n>3}} # Modifier un site web La mise à jour de tous les sites Picasoft termine par la même étape : on a des fichiers locaux, il faut la transférer sur le serveur web. À ce jour, les sites de Picasoft tournent sur `pica01` et `pica03`. On peut le vérifier sur [[technique:graph_services|ces graphes]]. On commence par transférer ces fichiers dans sur `pica01` ou `pica03`. Supposons qu'ils soient situés en local, dans le dossier `~/website` : ```bash rsync -a ~/site @pica01.picasoft.net:/tmp ``` ## Cas de Scenari Scenari génère systématiquement une archive ZIP. Une fois transférée sur `pica01` ou `pica03`, il faut l'extraire. ``` cd /tmp unzip .zip -d site ``` Si on se contentait d'extraire `.zip`, tous les dossiers qu'il contient se retrouveraient dans `/tmp`. Il est plus pratique de les extraire dans un dossier à part, ici `site`. En théorie, un [script](https://gitlab.utc.fr/picasoft/projets/website) existe pour faire le transfert et la mise à jour automatiquement ; il est cassé/obsolète mais peut être amélioré pour accélérer de nouveau le processus. Dans les items de publication Scenari `.website` un commentaire propose un squelette de commande bash à finir de configurer (il suffit de changer l'user (ici crozatst) et la machine (ici pica01), comme par exemple ``` # Pour publier : # - générer # - télécharger le ZIP du site généré dans /tmp # - lancer (avec son user pica01 pour le rsync et ssh) : cd /tmp && rm -rf picahome && unzip home_gen_tileSite.zip -d picahome && rsync -va picahome/* crozatst@pica01.picasoft.net:/tmp/website && ssh crozatst@pica01.picasoft.net "docker cp /tmp/website/. website:/usr/share/nginx/html" ``` ## Copier les fichiers dans le conteneur Cette opération écrase les fichiers existants. Trouver le nom du conteneur concerné. Un `docker ps` peut aider. La racine de tous les fichiers servis par les sites de Picasoft se trouve à `/usr/share/nginx/html` dans les conteneurs. Il suffit alors de lancer un simple `docker cp`. L'arborescence peut avoir son importance, en particulier dans le cas des sites générés par Scenari. Par exemple, un module de `doc.picasoft.net` sera à remplacer dans `/usr/share/nginx/html/modules/`, et non à la racine ! Aussi, une recette de `culture.picasoft.net` sera à ajouter dans `/usr/share/nginx/html/recipes`, et pas à la racine. Une fois que vous avez identifié le chemin où remplacer les fichiers **à l'intérieur du conteneur**, il suffit de les copier : ``` cd /tmp/site docker cp . :/usr/share/nginx/html/[complement] ``` Le `[complement]` est optionnel ; dans la plupart des cas, on remplace tout le site (radio, site principal...).