Big +1 for Forgejo, also they are actively working on implementing Federation, i.e. in the future Forgejo servers will be able to exchange information as a federated network, just like good old Lemmy 😊
If you want to try the toolchain (Forgejo+Woodpecker CI), it's what Codeberg.org (run by the German nonprofit organization of the same name) offers freely.
The actions are amazing, and I was also able to integrate them with tailscale so I can build and deploy everything within my network automatically.
I run it in a vps with 1cpu and 2gb ram along several other services.
I recommend against gogs. It's missing lots of features that I expected and I ended up switching to gitea anyways. Gitea works well for everything I need and forgejo is a fork of gitea that I might switch to in the future.
As a dumb user I like gitlab! It's responsive, clean, legible, and pretty easy to navigate compared to others. Also anything that supports git clone because it's pretty nice for manually building stuff on arch.
I don't know what your project is or if it's going to be public but that's my vote if it is!
Forgejo is my go to, I ran it in a GCP micro instance, which has 768 MB ram and a piddling processor. One of my friends works for a company that had all their devs run a local instance in addition to the main repo, it was that light.
Gitea is the former go to, but gitea was hijacked and stolen from the community by a for profit company. Forgejo is currently a drop in replacement fork, but with added privacy features, future federation options, and a reputable parent organization.
Gogs and Gitea are very similiar, Gitea is a fork of Gogs with a bit more features as I understand it.
However when I tried to get Gitea working personally a year and a half ago, it had some rough issues with redirect looping onto itself infinitely, could never get it to work.
On the other hand Gogs didn't have this issue, and was much more painless to stand up, so it's what I use now.
Used gogs, it was... fine. Made the jump to Gitea and it's just amazing. Not that it does anything really different, but you can tell it's much more polished. Gogs just felt like a CS student's final project, Gitea is something I could use at work.
I setup Gogs once like 6 years ago or something lol, I remember it being pretty easy and it is nice. Although if Gitea is more actively maintained then it's probably worth giving that a shot first.
And if you really want even more barebones, you can just do git init --bare into a directory on your VPS, and then git clone user@your.ip.here:path/to/the/directory and use git as you would normally!
Most of the Web GUIs are designed for interaction/collaboration between multiple people, and are massive overkill for one person. Tools like gitk/git gui are more than enough to see what's going on graphically.
If you want to install all the other stuff, that's completely up to you, but a lot of people don't seem to realise that the Web GUI stuff and command line are completely separate things, and you don't have to install both of them.
Gitlab at least used to be the open source release of GitHub. I ran it in my lab for a while but stopped as I was using github anyway. It was easy to setup and maintain but it used a lot of resources. I ran it on a vm, there is likely a docker build as well.
I've been using gogs since I had my RPi2. It's not fancy, it just works. Gitea is a fork of it, as there are others, but I never really put time in a conversion, as gogs just works. I don't do more then synching repos over ssh and an occasional repo creation via the web interface. It's a 1 user setup.
Edit: just spend a bit of spare time to install forgejo to figure out what I need to do to move the repos I have (~200) over. All that was needed was to create all repos manually and then rsync the content from the direcory with the gogs repos to the forgejo repo storage. I went ftom gogs 0.12 to forgejo 1.20.5 in a tad over 2h.