Upgrade from Gogs
Gogs, version 0.9.146 and older, can be easily migrated to Gitea.
There are some basic steps to follow. On a Linux system run as the Gogs user:
- Create a Gogs backup with
gogs backup
. This createsgogs-backup-[timestamp].zip
file containing all important Gogs data. You would need it if you wanted to move to thegogs
back later. - Download the file matching the destination platform from the downloads page. It should be
1.0.x
version. Migrating fromgogs
to any other version is impossible. - Put the binary at the desired install location.
- Copy
gogs/custom/conf/app.ini
togitea/custom/conf/app.ini
. - Copy custom
templates, public
fromgogs/custom/
togitea/custom/
. - For any other custom folders, such as
gitignore, label, license, locale, readme
ingogs/custom/conf
, copy them togitea/custom/options
. - Copy
gogs/data/
togitea/data/
. It contains issue attachments and avatars. - Verify by starting Gitea with
gitea web
. - Enter Gitea admin panel on the UI, run
Rewrite '.ssh/authorized_keys' file
. - Launch every major version of the binary (
1.1.4
→1.2.3
→1.3.4
→1.4.2
→ etc ) to migrate database. - If custom or config path was changed, run
Rewrite all update hook of repositories
.
Change gogs specific information
Rename
gogs-repositories/
togitea-repositories/
Rename
gogs-data/
togitea-data/
In
gitea/custom/conf/app.ini
change:FROM:
[database]
PATH = /home/:USER/gogs/data/:DATABASE.db
[attachment]
PATH = /home/:USER/gogs-data/attachments
[picture]
AVATAR_UPLOAD_PATH = /home/:USER/gogs-data/avatars
[log]
ROOT_PATH = /home/:USER/gogs/log
TO:
[database]
PATH = /home/:USER/gitea/data/:DATABASE.db
[attachment]
PATH = /home/:USER/gitea-data/attachments
[picture]
AVATAR_UPLOAD_PATH = /home/:USER/gitea-data/avatars
[log]
ROOT_PATH = /home/:USER/gitea/log
Verify by starting Gitea with
gitea web
Upgrading to most recent gitea
version
After successful migration from gogs
to gitea 1.0.x
, it is possible to upgrade gitea
to a modern version in a two steps process.
Upgrade to gitea 1.6.4 first. Download the file matching the destination platform from the downloads page and replace the binary. Run Gitea at least once and check that everything works as expected.
Then repeat the procedure, but this time using the latest release.
Upgrading from a more recent version of Gogs
Upgrading from a more recent version of Gogs (up to 0.11.x
) may also be possible, but will require a bit more work. See #4286, which includes various Gogs 0.11.x
versions.
Upgrading from Gogs 0.12.x
and above will be increasingly more difficult as the projects diverge further apart in configuration and schema.
Troubleshooting
- If errors are encountered relating to custom templates in the
gitea/custom/templates
folder, try moving the templates causing the errors away one by one. They may not be compatible with Gitea or an update.
Add Gitea to startup on Unix
Update the appropriate file from gitea/contrib with the right environment variables.
For distros with systemd:
- Copy the updated script to
/etc/systemd/system/gitea.service
- Add the service to the startup with:
sudo systemctl enable gitea
- Disable old gogs startup script:
sudo systemctl disable gogs
For distros with SysVinit:
- Copy the updated script to
/etc/init.d/gitea
- Add the service to the startup with:
sudo rc-update add gitea
- Disable old gogs startup script:
sudo rc-update del gogs