From 27fb66c2663d5f2ae70c87fd03b0970496c0ce7e Mon Sep 17 00:00:00 2001 From: Jay Date: Sun, 12 Mar 2023 01:55:21 +0000 Subject: [PATCH] first commit --- README.md | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..71f5eed --- /dev/null +++ b/README.md @@ -0,0 +1,116 @@ +# Migrating from Gogs 0.13 to Gitea + +In short...it is not possible to directly migrate from Gogs 0.13 to Gitea. While methods were published to do this from 0.11; the database structure has apparently changed entirely too much to be imported. + +### This is not a direct migration + +You will lose some things in doing this; primarily you'll lose all your existing users and issues unless you use external issue tracking. If you have a large number of users and repositories, this is not a good solution sadly. + +Your repositories and repository-data however, remains intact. + +It may be possible to have gogs export the database to a common format. I did read where it can export to a JSON file; all you would need to do is reimport that in to a format Gitea understands. + +## This Is How I Migrated git.pickmy + +### Pre-Installation + +Stop the gogs service: + +``` +sudo systemctl stop gogs +sudo systemctl disable gogs +``` + +Move the git user home directory and create new one: + +``` +sudo mv /home/git /home/gogs_old +mkdir /home/git +``` + +Copied some needed files in to that directory: + +``` +sudo mv /home/gogs_old/.bashrc /home/git/.bashrc +sudo mv /home/gogs_old/.profile /home/git/.profile +sudo mv /home/gogs_old/.gitconfig /home/git/.gitconfig +``` + +### Install Gitea + +Mostly taken from their documentation...we already have a git user setup thanks to having run gogs. + +``` +sudo su - git +wget https://dl.gitea.com/gitea/1.19/gitea-1.19-linux-amd64 +chmod +x gitea-1.19-linux-amd64 +wget https://dl.gitea.com/gitea/1.19/gitea-1.19-linux-amd64.asc +gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 +gpg --verify gitea-1.18.5-linux-amd64.asc gitea-1.18.5-linux-amd64 +sudo mkdir -p /var/lib/gitea/{custom,data,log} +sudo chown -R git:git /var/lib/gitea/ +sudo chmod -R 750 /var/lib/gitea/ +sudo mkdir /etc/gitea +sudo chown root:git /etc/gitea +sudo chmod 770 /etc/gitea +sudo cp gitea-1.19-linux-amd64 cp gitea /usr/local/bin/gitea +``` + +Configure the gitea.service file: + +``` +wget https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service +sudo mv gitea.service /etc/systemd/system/gitea.service +sudo nano /etc/systemd/system/gitea.service +``` + +Verify all the various options are to your liking for the .service. + +``` +sudo systemctl enable gitea +sudo systemctl start gitea +``` + +The reverse proxy configuration for gogs in nginx is valid, so you should just have to visit your URL and setup gitea in the browser. + +### Additional Configuration + +By default Gitea makes all repositories private. If this is not how you ran your gogs, then you'll need to edit `/etc/gitea/app.ini`: + +``` +[repository] +ROOT = /var/lib/gitea/data/gitea-repositories +FORCE_PRIVATE = false +DEFAULT_PRIVATE = public +``` + +Unlike gogs, Gitea does not use /home/git as it's default home path. This can break a lot of githook scripts if you were using them. Normally you can specify the working directory and drop the .gitconfig in there according to docs; but I instead just pointed it to the old directory. They say this is not recommended...but it's how I was running before. This literally had me pulling my hair out for a while but the guys on their Discord pointed me to this and I thank them. + +``` +[git] +HOME_PATH = /home/git +``` + +You can also adjust other configuration options at this time. Their (Configuration Cheat Sheet)[https://docs.gitea.io/en-us/config-cheat-sheet/] is worth taking a look at. + +Now stop gitea. + +`sudo systemctl stop gitea` + +### Copy and claim orphened repositories + +`sudo mv /home/gogs_old/gogs-repositories /var/lib/gitea/data/gitea-repositories` + +Make sure `git` owns the directory + +`sudo chown git:git /var/lib/gitea/data/gitea-repositories` + +Start up Gitea + +`sudo systemctl start gitea` + +Log in as your admin user, click site administration, select Repositores. Click the "Unadopted Repositories" button. + +This should find all the repositories and put them in gitea. You'll need to verify they're owned by the original owners and organizations. + +You may need to go through and adjust privacy settings for repositories. The config option above makes public the default; so all imported repositories will be public.