first commit
commit
27fb66c266
@ -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.
|
Loading…
Reference in New Issue