Jan-Lukas Else

Tech, life and everything else

Bye Gitea, hey Forgejo!

Published on in 💭 Thoughts
Short link: https://b.jlel.se/s/86a
Share this post

I procrastinated a long time, but I finally migrated my self-hosted Git instance from Gitea to Forgejo. I still don’t know how to pronounce it, but it’s maintained by Codeberg e.V., where I’m also a member.

With some help from AI and some config updates, I was actually able to migrate from Gitea 1.25 to the latest Forgejo 14.0, even though migration is only officially supported until Gitea 1.22.

Here’s what I needed to execute in the SQLite database (Backup first! And NO guarantee that it will work for your setup or with future versions!):

UPDATE version SET version = 303 WHERE id = 1;
CREATE TABLE IF NOT EXISTS forgejo_version (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    version INTEGER
);
INSERT OR REPLACE INTO forgejo_version (id, version) VALUES (1, 0);

After replacing the container, I also ran these two commands:

docker exec -u 1000 forgejo forgejo doctor check --work-path /data/gitea
docker exec -u 1000 forgejo forgejo doctor recreate-table --work-path /data/gitea

However, already with Gitea, I had most features (like issues, actions, etc.) disabled and really only used it for my code hosting and some pull and push mirrors. Nothing fancy.

So far it looks good, and I don’t miss anything from Gitea. 😄

Tags: , ,

Jan-Lukas Else
Interactions & Comments