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