Déployer Nikola en FTP
Nikola est livré avec un mécanisme de déploiement simple et la possibilité de déployer facilement sur GitHub. Cependant, j'héberge actuellement mes pages personnes chez Free, qui propose un service gratuit de qualité mais sans possibilité de faire du SSH (et rsync) ou d'utiliser directement Git. S'est donc posée pour la question de déployer ces pages à moindre frais en FTP.
La solution pour laquelle j'ai optée est LFTP qui est programme en ligne de commande qui permet de gérer ses transferts de fichiers via divers protocoles, dont FTP.
Prise en main
La prise en main est plutôt rapide :
lftp lftp :~> open ftp://user:password@ftp.server.com;
On peut alors effectuer un certain nombre de tâches de base, sur la machine locale (commandes précédées d'un l) et sur la machine distante :
lftp user@ftp.server.com:/~> cd website lftp user@ftp.server.com:/website~> pwd user@ftp.server.com:/website lftp user@ftp.server.com:/website~> lpwd /home/user/localdir
La commande mirror permet de réaliser des copies à la rsync en ne copiant que les fichiers qui ont été modifiés :
lftp user@ftp.server.com:/website~> mirror --reverse Total : 35 répertoires, 96 fichiers, 0 liens symboliques Modifié : 5 fichiers, 0 liens symboliques 49669 octets transférés
Déploiement avec Nikola
Il ne suffit plus que de mettre à jour conf.py et d'éditer DEPLOY_COMMANDS :
DEPLOY_COMMANDS = { 'default': [ """lftp -c 'set ftp:list-options -a; open ftp://user:password@ftp.server.com; lcd ./output; cd ./website; mirror --reverse'""", ] }
Qui permet ensuite d'utiliser directement la commande nikola deploy !