Deploy your Hugo site through SSH with GitHub Actions

Static site generation leverages website content management through version-control systems. With the help of CI (continuous integration) tools, we can set up automatic deployment via SSH. This article shows how to do such deployment using Hugo and GitHub Actions.
Deploy your Hugo site through SSH with GitHub Actions

Information

This article is an update of Deploy your Hugo site through SSH with Travis. I don’t use Travis CI anymore since they left open source maintainers out in the dust with their new pricing plan in 2020.

After having moved my blog from WordPress to Hugo, my next objective was to have it built and deployed automatically to my self-hosted webhosting server whenever I push a commit to GitHub. The main reasons to use this process are these:

  • I want that any change or addition to the website are as easy to deploy as a simple git commit;
  • I want my builds to be reproducible;
  • I want a clean state for each build;
  • I don’t want to be dependent on an external hosting service (no lock-in);
  • I don’t want to have to worry about a computer crash or about my own Internet connection.

I use this process for more about 4 years to deploy the MoodleBox documentation website (more than 1000 web pages!), and for a few days for deploying this blog (more than 900 pages!). It works great 👍

Continuer la lecture de « Deploy your Hugo site through SSH with GitHub Actions »