I vouch for gitea too! I have it on my home cluster with about 50 repos and some actions, 150MB memory for gitea and 50MB memory for the actions/runner pod sitting idle. Plus postgres (another < 200mb). Do keep in mind gitea does ALOT of read queries on page load so keep db and gitea close, but it's tiny!!