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 ashttps://jfasch-home.statichost.pageIn the deployment repo, create a toplevel file
statichost.ymlwith only one single line. Don’t specify animage:nor acommand:as suggested - this will simply serve thehtml/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.