Moving This Site From Github To codeberg.org/statichost.eu#

This is a quick writeup of the steps that I performed while moving this site to Europe.

Move Repositories To codeberg.org#

This was easy, though much manual work. Codeberg is a Forgejo instance, and that looks much like Github repo management. In Github I got confused from time to time, while in Codeberg so far I haven’t (though I cannot say exactly).

  • Create Codeberg account (thereby deploying the SSH public key, btw.)

  • Move repositories to Codeberg

    • Main repository

    • All the submodules that are used by that

    • Adjust the main repo’s submodule URLs accordingly

  • Remove unused repos from Github

Serving Homepage From statichost.eu#

I build this site using the Sphinx documentation generator. The build is performed locally, into a “deployment” Git repository. That repository is then pushed and automatically picked up by Github Pages via a webhook.

The excellent Statichost documentation describes how to setup build pipelines for various static site generators. I don’t want that (Sphinx is not among these generators anyway), so I take a shortcut that resembles the Github Pages deployment way:

  • On Codeberg, create a “deployment repo” (mine is here) which will serve as Sphinx’s output directory

  • On statichost.eu, create a new site, specifiying the deployment repo. My site is named jfasch-home; it will be served as https://jfasch-home.statichost.page

  • In the deployment repo, create a toplevel file statichost.yml with only one single line. Don’t specify an image: nor a command: as suggested - this will simply serve the html/ subdirectory of the deployment repo as the site content.

    statichost.yml#
    public: html
    
  • On Codeberg, setup a webhook for the deployment repo as described in the Statichost documentation <https://www.statichost.eu/docs/git-providers/>

  • Use Sphinx to massage the source repo right into the deployment repo

  • Push the deployment repo

  • Watch the Codeberg webhook communicate with Statichost, who then pulls and instantly serves the new content

Custom Domain#

Redirect both www.faschingbauer.me and faschingbauer.me to jfasch-home.statichost.page. The Statichost documentation describes what they need, everything else is left to the interface of your DNS provider.