W0CHP Git/Code Repository Migration
Since 2018, I migrated all of my code and repositories from GitHub onto my own on-premise, self-hosted solution which was based on the venerable Gogs software (proxied by an Apache web server).
While my solution worked quote well for some time, I had been meaning to migrate all of my code repositories to a different back-end.
Enter, Gitea. Gitea originated as a fork of Gogs, and has diverged significantly – for the better.
Gitea is significantly snappier than Gogs (don’t know why exactly; both are Golang-based). And Gitea offers functionality and features I have been longing-for in Gogs since 2018-ish.
Performance is of paramount importance to me, since all of the
W0CHP-PiStar-Dash updates, installations, hostfiles
updates, etc. are hosted on my git repo instance.
Unfortunately, Gogs is well-behind the times relating to performance, features, user-friendliness, and functionality. Gogs is simply stale…
Making the Switch
So I finally performed the migration…Likely 10 times in a test and staging environment, until it worked as I wanted it to. Placing it into production was a simple and changing the target destination on my proxy server. (Yes, it is still being proxied, and I am currently architecting a solution to allow SSH access via proxy as well).
But the migration/switch was not a simple task by any means. I had to rewrite server-side Gogs-centric SSH public keys, Gogs-centric git hooks, and a host of other changes, until it worked perfectly.
I’m so pleased I was finally able to migrate to Gitea. They have a migration guide, but none of it applied to my particular instance; so I had to get creative.