Gitea - Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
From my personal experience running GitLab and Forgejo (Gitea Drop-In replacement/Fork):
Gitea/Forgejo is easier to get running
UI is less bloated/faster
GitLab redesigned their UI and imo it's shit now
No features locked behind a "Pro" Version (Pull or Bidirectional mirrors are for example unavailable on GitLab self-hosted unless you shell out for premium)
Gitea Actions is a lot more intuitive than GitLab CI, this is likely personal preference but it's still an important factor
Definitely agree on the UI part. The UI of Gitea/Forgejo is very intuitive and easy to understand. When you go to a repository you just have the tabs to go to issues etc. and you can always see those at the top. The first time I used GitLab, I found it very unintuitive. There were 2 sidebars on the left side with their respective buttons right on top of each other. Issues and stuff are also in the sidebar, so I couldn't find them immediately.
Also, with gitea the table of contents for org files are properly rendered in HTML as it should be. As someone that uses org-mode this is a reason to avoid gitlab.
But for most people I'd say the less resources that gitea requires means you save on compute and ultimately is cheaper to host.
I've been running my own gitea server on kubernetes and with istio for over 3 years with no issues.
I have honestly no idea what the GitLab devs did but their service is such an incredible memory hog it's insane. Obviously GitLab has a pages service tacked onto it but my GitLab instance (mostly legacy but a friend still uses it so it keeps chugging along) eats a whole 5GB of RAM while my Forgejo Instance only uses 200MB. I have no idea where all of that memory is going because it sure as hell isn't going into responsitivity. I've no idea if I configured something wrong or if it's GitLab pages but it's still excessive
Its mostly the default settings of Gitlab being complete overkill for self-hosters. You can cut the requirements down to 25% of the default if you don't use the installer or the default docker compose.
However Gitlab is written in Ruby, while Gitea is written in Golang, so there is definitely some advantage there for Gitea.
Self-Hosting GitHub is available under the name "GitHub Enterprise", but there is nothing stopping a smaller company from getting an "Enterprise" license. At my job we are running self-hosted GitHub for less than 50 developers.
true but then again that isn't quite what I meant with my comment. For an individual looking for a self-hosted forge GitHub just isn't really an option. Pricing aside having to go through a sales channel and then likely not having full control over the software stack is not what individuals look for when they want to host a private git service
GitLab is mean for large enterprise environments. It's overkill for most users. Gogs/Gitea/Forgejo focus on simplicity. These are also pretty easy to self-host.