Gitea - Git with a cup of tea

1 minute read

Gitea is a painless self-hosted Git service. It’s a community managed lightweight code hosting solution written in Go, similar to GitHub, Bitbucket, and GitLab.1

I’ve used GitHub - code on someone else’s server.2

I’ve used Bitbucket - ditto.

I’ve used GitLab on my NAS in a Docker container - but what a faff. GitLab is a beast.

Then I discovered Gitea, with all the features I need, in a blazingly fast package.

Here’s a comparison table with the other self hosted options:

gitea general functionality comparison

gitea code functionality comparison

You can try out a Gitea demo here.

I opted to host on a subdomain of stouty.xyz with a Postgres database, and the binary install, running behind nginx over HTTPS of course.

My nginx config wasn’t as straightforward as in the Gitea docs, as I wanted to enforce HTTPS and use Let’s Encrypt for SSL certificates. I needed to set a few proxy_set_header options. A snippet of my conf is below:

And here it is…

Dashboard

gitea dashboard

Repo View

gitea repo-view

Commit Diff

gitea commit-diff

In the above commit, I’m fixing my use of [NSData description]. iOS 13 changed the format of descriptions for Foundation objects, including NSData:

Was Apple irresponsible in making this particular change? No, not really — developers shouldn’t have relied on a specific format for an object’s description.

In conclusion, I’m very happy to have found Gitea. Oh, and if you want to migrate from GitHub, Bitbucket, or GitLab, they have automated migration tools:

gitea migration

Might be time to learn Go and see if I can contribute.


  1. source 

  2. Definition of “The Cloud”