Sitecopy : synchroniser une copie locale de son site web

Cette brève inaugure une série consacrée au développement web local, où comment construire et tester son site sur son ordinateur, puis le mettre en ligne le plus simplement du monde.

Cette série ne sera sans doute d'aucune utilité à ceux et celles qui utilisent un cms pour publier leur site web. Elle apparaîtra même comme une collection d'évidences aux « professionnels de la profession ». Mais pour les amateurs de tripatouillage comme moi, elle pourra peut-être rendre quelques services.

Commençons par la mise en ligne des pages. Le site est géré par une collection de scripts PHP développée par mes soins. De fait, j'ai créé une interface d'administration me permettant de gérer les pages, mais je ne l'ai pas mis en ligne : je l'utilise uniquement en local et, pour mettre à jour les fichiers sur le serveur de mon site, je passe par une connection ftp classique.

J'établissais cette connection avec un logiciel dédié, Filezilla sous Windows puis gFTP sous Linux. Il fallait toujours transférer plusieurs fichiers (deux au minimum pour chaque nouveau contenu), placés dans des répertoires différents. Si on ajoute le fait que j'ai la fâcheuse manie de constamment réécrire des morceaux de code par-ci, par-là, et qu'il devient difficile au bout d'un moment de se rappeler quels sont les fichiers qui ont été modifiés, le processus de mise à jour du site devenait vite fastidieux.

La solution pour régler le problème est évidente : placer l'interface d'administration en ligne. Mais je ne veux pas (encore) choisir cette option. Il me fallait donc un outil capable de transférer tous les fichiers nécessaires en « un seul clic » ou, dans le cas présent, en une seule ligne de commande. Cet outil existe, il s'appelle Sitecopy.

Sitecopy est un utilitaire développé par Joe Orton, disponible sous Linux et sous Windows, capable de gérer une copie locale d'un site web et de mettre à jour sa copie distante (la version publiée).

Son utilisation est d'une extrême simplicité. La première étape consiste à créer le fichier de configuration indiquant au logiciel où se trouve la copie locale du site, l'adresse du serveur distant, les paramètres de la connection FTP et ceux qui régiront la mise à jour. Le manuel explique très bien tout cela.

Après vous être assuré que copie locale et site en ligne sont identiques, il faut indiquer à Sitecopy que les versions sont synchronisées :

sitecopy --catchup Nom_du_site

On travaille ensuite librement sur la version locale, on modifie ce qu'il y a à modifier et, finalement, pour mettre à jour le site tout en suivant le déroulement du processus :

sitecopy -o -u Nom_du_site

Si, avant de mettre à jour, vous voulez voir la liste des modifications (et donc ce que Sitecopy va faire) :

sitecopy -ll Nom_du_site

Voilà : on ne peut pas trouver plus simple ni plus efficace.

Ressources :

  • Sitecopy, le site du logiciel. Pour l'installer sous Linux, il est sans doute préférable de passer par le gestionnaire de paquetages de votre distribution.
  • Man Sitecopy. Version HTML et en français du manuel d'utilisation de Sitecopy. Vous pouvez bien-sur retrouver la même chose en tapant dans une console man sitecopy.