Anyone knows a good lightweight self-hosted alternative to GitHub?

khoi@slrpnk.net to Selfhosted@lemmy.world – 119 points –

I'm looking to self-host a GitHub alt on a cheap Linux VPS for personal use. Any rec?

69

Strong recommend for Forgejo. It’s a community fork of gitea that’s actively maintained by the community and a great open source nonprofit.

It’s actually a drop in replacement for gitea if you are using that now.

Super lightweight. Super snappy, and it supports GitHub Actions style CI/CD.

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.

what’s the benefits of being federated for code?

This will allow you to browse & contribute to projects hosted on other instances without having an account there. Imagine using the GitHub search to find a project on Gitlab, then opening an issue there without ever even leaving GitHub. The protocol is called ForgeFed.

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.

If you just want a remote to push your code to without issues, projects, pull requests and such you can use git only: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server

This is actually a good idea! No need to over engineer stuff 😅

@khoi@slrpnk.net if you're okay with that I suggest you check out this https://gitolite.com/gitolite/overview.html.

In short "Gitolite allows you to setup git hosting on a central server, with fine-grained access control and many more powerful features.". It doesn't require some background daemon running, uses the server's SSH and it is a simple script that deals with access control so you can easily manage your users and repositories. The "cherry on top" is that you control your git "server" using a git repository :P

i run forgejo on my shitty vps and for the amount of features it has it is surprisingly lightweight, i love it so much

I use gitea and it's great, I would recommand having a good backup système if you care about your repos though

I personally use Gitea. It's really nice, and it stays out of the way until you need it.

Forgejo vs Gitea 🧐? Considering…

I'd recommend forgejo, it's a fork of gitea and unlike gitea actually a piece of free software. Gitea is developed (and the gitea.io site operated) by Gitea Limited. Whether or not that's a problem is up to you but I'd just like to highlight GitLab's recent move(s) to repeatedly increase subscription/hosting costs by various means as a potential future of Gitea. Forgejo is mainly developed by Codeberg e.V. which is a non-profit so enshittification is somewhat less likely.

Gitea also has webhooks so you can use it with Portainer to update Docker Compose container stacks from repo.

Here's another plug for gitea. It's lightweight, but still has a nice feature set.

I tried hosting GitLab a number of years back, but it was more resource hungry than my host machine could handle well.

Gitea.

Isn't this a spin-off of gogs?

I still need to convert.

Skip it and go right to forgejo : it's the current tip of the iceberg.

The majority of maintainers stayed with Gitea. Forgejo is not the tip, they still pull the majority of their commit from gitea directly.

Maybe, depends on the migration path. Gitea proved impossible to migrate to.

Could you not just push a git repo?

Sure, but then I'd have to remove gogs 1st after exporting everything. It's not a lot of data, but loads of repos. For me there was no reason to migrate (yet).

Apparently. When I wound up choosing Gitea for my own purposes, I don't recall even learning about Gogs somehow.

I picked gogs before I knew about the gitea fork. (Maybe even before the fork)

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!

I'd definetly recommend GitLab too - but it's not lightweight.

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
Git Popular version control system, primarily for code
SSD Solid State Drive mass storage
SSH Secure Shell for remote terminal access
VPS Virtual Private Server (opposed to shared hosting)

4 acronyms in this thread; the most compressed thread commented on today has 4 acronyms.

[Thread #276 for this sub, first seen 12th Nov 2023, 09:40] [FAQ] [Full list] [Contact] [Source code]

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.

Heard lots of good things about Forgejo!

If you don't need the web gui stuff (and you shouldn't for personal use) you can set up a git server using gitolite. Very easy to manage

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!

and you shouldn't for personal use

Nonsense. I like to see how my CI is going.

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.

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.

They genuinely looked identical to me.

Either way, gogs dies what I need it to, git server for backing up my code and super basic git web Hooks to trigger my build server.

Couldn't ask for anything more.

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.

I've spun up Gitea in my homelab as well as at work and don't recall being difficult so perhaps they fixed whatever was causing your issue

What about gitlab? Isn't that the same as GitHub? If not I'll need to see how they are different.

Gitlab isn't really lightweight. It is cool, but not lightweight.

Ahh ok, I know the other team deployed it in our openshift environment so wasn't sure.

Yeah. It needs 3gb ram, now. That's about 1/10th what a Windows VM needs to boot, seemingly, but still large.

If you don't need the web interface and just want a feature rich git server I recommend Soft Serve. It has a really cool ssh TUI 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.

How cheap are we talking? OneDev is awesome but is recommended to have 2gb ram - the more repos and larger code bases might eventually need more ram.

Memory vCPUs Transfer SSD 1 GiB 1 vCPU 1,000 GiB 25 GiB

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.

GitLab and GitHub were always developed separately by completely different people and have never shared code.

I wouldn't self host any git unless it was unimportant. Too easy to dick up disks.

Well thats what backups are for, but may be start with a mirror or with unimportant stuff for at least a year ;) Also proprietary service can delete your data, too. This happens especially when you are using the generous free tier and they decide to make more money. See Evernote, Gitlab, Heroku…

You wouldn't host anything important without doing it properly.

That should be obvious, man.

Not even remotely close to true. Services are mostly half assed. Doing them correctly is time consuming and expensive.