# Planète Casio - Miroirs Bac À l'approche du bac, Planète Casio reçoit beaucoup de requêtes et ne peut répondre à toutes. C'est pour cela qu'un système de miroirs a été créé : des sites contiennent une version très minimale de Planète Casio, avec les quelques tutoriels, quelques programmes et quelques manuels que les gens cherchent pour passer leur bac un peu plus sereinement. Ce dépôt représente le contenu de l'ensemble des miroirs -- comprenez, l'ensemble des miroirs se synchronisent par rapport à ce dépôt. L'ensemble des ressources sont statiques (HTML, CSS, images, ...), donc rien de plus qu'un simple serveur web n'est requis. ## Créer un miroir Tout d'abord, puisque faire un miroir est là pour rendre service aux administrateurs, demandez-leur s'ils n'en ont pas déjà assez. De plus, faire un miroir est là pour prendre une partie du grand nombre de requêtes du site principal : assurez-vous d'avoir un serveur puissant ayant une solide connexion à Internet pour tenir la charge, par exemple un VPS chez un grand hébergeur. Préférant utiliser nginx, je continuerai en le prenant lui. Si préférez utiliser Apache, vous n'avez pas besoin de cette note. Pour l'installer sous une distribution Debian-based, un `sudo apt-get update && sudo apt-get install nginx` devrait suffire, sinon, là encore, je pense que vous savez comment faire. Je suppose également que vous savez faire pointer un nom de domaine vers ce serveur (via des champs A et AAAA). N'oubliez pas que ceci est un exemple et que vous pouvez bien entendu prendre vos libertés par rapport à cette base : mais quoi que vous fassiez, **restez cohérent** (gardez le même utilisateur et les mêmes dossiers tout le long). Clônez dans un endroit accessible avec les droits `r-x` sur les dossiers et `r--` sur les fichiers pour l'utilisateur `www-data`. L'exemple que je prendrai sera `/home/prenom/pcmirror`. Ensuite, allez dans le dossier de configuration de nginx (`/etc/nginx`). Les deux dossiers vous intéressant sont `sites-enabled` et `sites-available`. Si vous ne comptez pas faire d'utilisation un peu complexe de nginx, remplacer le dossier `sites-enabled` par un simple lien symbolique sur `sites-available` peut être une bonne idée : rm -rf sites-enabled ln -sf sites-available sites-enabled Une fois ceci fait, allez dans `sites-available` et remplacez default par la configuration suivante : server { listen 80 default_server; listen [::]:80 default_server; # content root /home/prenom/pcmirror; add_header X-Clacks-Overhead "GNU Terry Pratchett"; location / { autoindex on; } location /.git { return 404; } location /README.md { return 404; } } Les deux instructions `listen` indiquent à nginx d'écouter sur le port 80 pour des requêtes faites en IPv4 et en IPv6. Le `root` indique la racine du site. Remplacez-la par là où vous avez clôné le dépôt. La première `location` indique que s'il n'y a pas d'index, on peut lister les fichiers présents dans le dossier, les deux autres indiquent à nginx que pour toute requête commençant par `/.git` ou `/README.md`, il faut renvoyer une 404, ce qui masque ces fichiers-là aux yeux du monde. Le `X-Clacks-Overhead` est un clin d'oeil, allez voir [de ce côté](http://www.gnuterrypratchett.com/) pour comprendre. Plus qu'à recharger nginx (sur une debian-based, il suffit de faire `service nginx reload`), et voilà ! Votre miroir est en ligne ! ## Mettre à jour son miroir automatiquement Cependant, si le dépôt est mis à jour, votre miroir ne le sera plus, et c'est un problème, car les cours peuvent être modifiés, ou de nouveaux peuvent être ajoutés ! Le meilleur est de faire une cron pour mettre à jour tous les quarts d'heure (par exemple). Pour cela, créez un fichier `/home/prenom/pcmirror.cron` avec ceci dedans : #!/bin/sh LOGFILE=/home/prenom/pcmirror.log echo "[$(date + '%d-%m-%Y %H:%M:%S')] $1" >> $LOGFILE cd /home/prenom/pcmirror git pull origin master 2>&1 | cat >> $LOGFILE Et n'oubliez pas, une fois sauvegardé, de faire : chmod +x /home/prenom/pcmirror.cron Puis faites `crontab -e` et mettez dedans : 0,15,30,45 * * * * /home/prenom/pcmirror.cron Et voilà ! Tous les quarts d'heure, votre miroir sera mis à jour. Vous pouvez voir les logs dans `/home/prenom/pcmirror.log`.