Bei den Webhostern gibt es in der Regel die Möglichkeit über ein Webinterface den Webspace zu managen. Meist gibt es auch einen Zugang indem man über das ftp-Protokoll auf den Speicherort zuzugreifen.

In früheren Versionen dieser Webseite habe ich mir in python ein Skript geschrieben, welches meine lokal gebaute Webseite auf den Webserver kopiert. Dabei habe ich ftp-Befehle verwendet.

Im Rahmen des Redesigns meiner Homepage habe ich mir auch über das Deployment Gedanken gemacht und bin auf rclone gestoßen.

In der rclone.conf Konfigurationsdatei kann man entsprechende Remotes konfigurieren, mittels rclone config kann man das auch interaktiv machen. Das Ergebnis sieht dann z.B. so aus.

[name_of_the_remote]
type = ftp
url = ftp.yourdomain.net
user = your_ftp_user
pass = cryptedpassword
host = ftp.yourdomain.net
explicit_tls = true

Nachdem die Hugo-Webseite lokal gebaut wurde (hugo --gc --minify), werden mit folgendem Befehl die statischen Seiten in public mit dem Remote-Speicherort abgeglichen. Der interactive-Modus ist zu Beginn hilfreich, da bei möglichen Konflikten noch mal nachgefragt wird, was zu tun ist.

rclone sync --interactive public/ name_of_the_remote:deployment_folder

So gelingt das Deployment von der Kommandozeile ohne Browser oder ftp-Client. Nicht mehr aktuelle Seiten werden vom Server abgeräumt.