Nachdem ich nun meinen Blog mit pelican erstellt hatte, wollte ich ihn auch möglichst ohne viele Probleme auf den Server bekommen. Dafür legt pelican beim quickstart ein Beispiel-Makefile an, in dem ein paar Möglichkeiten vorkonfiguriert sind. So zum Beispiel ssh_upload, rsync_upload und auch dropbox_upload. Da ich aber weder rsync noch ssh Zugriff habe und auch keinen DropBox Account, war für mich der ftp_upload interessant.
Hier legt das script dann folgende Zeile an:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Es wird also auf den Server gespiegelt. Dabei wird allerdings weder die Verschlüsselung der Daten, noch die Verschlüsselung der Login-Daten erzwungen. Ein Austausch des ftp mit einem ftps brachte nur no connection Fehlermeldungen mit immer länger werdenden timeouts hervor. Ein Blick ins manual kann da allerdings Wunder wirken. Hier ein Auszug:
ftp:ssl-force (boolean)
if true, refuse to send password in clear when server does not
support SSL. Default is false.
Daraus ergibt sich dann folgender Befehl:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-force true; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Jetzt wird die Übertragung der Login-Daten zwingend verschlüsselt. Wenn man noch mehr Privatsphäre will, kann man zusätzlich ftp:ssl-protect-data auf true setzen, dann werden auch alle Daten verschlüsselt. Für einen öffentlichen Blog halte ich das jedoch nicht für notwendig.