Upgrading Gitea Is Painful

I just wanted to upgrade a Gitea instance and, in the process, deleted old gitea binaries. After that, pushing to a repository did not work anymore, because the path to the gitea binary which is eg. used when the instance or a repository is being created, is being hard-coded into several files, and that file was just gone. So, in order to upgrade to a newer version of gitea, you have to do the following, assuming you run the service under the gitea user:

  1. In ~gitea/.ssh/authorized_keys, you have to adjust the path of gitea to the location of the new binary.
  2. Per repo, you need to adjust the path to the gitea binary in the following files:

    • hooks/post-receive.d/gitea
    • hooks/pre-receive.d/gitea
    • hooks/update.d/gitea

Maybe more files need to be changed, but at the moment, this seems to be enough to generally make things work again.


  • https://gitea.io