Skip to main content

I’ve been using GitHub, and conversely git for years now, and its my main version control. It’s a solid platform and its just built into the coding culture, employers, and fellow coders will ask to see your repos. As time passes, and I’m more interested in DevOps, more and more I see the value in self hosting, as with all things, the more you can do yourself, the more money you save (barring electric bills). Not to mention the whole thing with “free” services, being a way to harvest data and monetize their users. No thanks, if anyone is going to make money off my data it’s going to be me (I’ll get back to you, when I actually do make money off my data, but that’s a story for another day).

So being the average GitHub user, I figure why not look for greener pastures? I don’t publish everything I do onto there. Sometimes I make stupid stuff, I don’t want everyone to see my bad code! Sure, I could make a private repo and push to that, but damn it, GitHub doesn’t have to be the end all be all of version control solutions, so to pull myself out GitHub’s many tentacled clutches, and learn something new for a change, we’re going to take a look at 5 self hosted GitHub alternatives that you can try out on your home server!

Gitea

Website: https://gitbucket.github.io/

Gitea's Landing Page
Gitea landing page

Gitea (pronounced “git-tea”) is an open source fork of Gogs (another GitHub alternative), forked in 2016, and is actively maintained at the time of this writing. When it comes to GitHub alternatives, Gitea comes up a lot, appearing in many lists, and for good reason. Built on the GO language, it strives to be the fastest, and easiest way to get a self hosted GitHub clone up and running. Which I can definitely attest to, the hardest part about installing gittea is the MySQL setup, which incase you missed it, we do have a quickstart guide available here on linuxman. It is cross platform so anywhere you can compile GO, you can run Gitea, it can also be docker-ized! Its also very lightweight, which I am always an instant fan of, you can even run Gitea off a raspberry pi!

ProsCons
The UI is very clean and focusedGitea requires a MySQL database
Great documentation
Can be installed in many ways (docker, snap, binary)
Lot’s of UI customization
Lightweight
Easy setup and install

GitLab

Website: https://about.gitlab.com/

GitLab's project layout
GitLab’s project layout

GitLab is definitely the most beefy offering in terms of GitHub alternatives, acting as a full development suite for a small team or enterprising individual. Gitlab’s system requirements are far beyond anything else on this list, requiring a 4 core CPU & 4GB of RAM minimum. What you get in return is a vast slew of features including Pull requests, repositories, Wikis, issue tracking, built-in package management, and robust branching options. Perhaps the coolest option that GitLab offers is its CI/CD (Continuous Integration/Deployment) feature that will automatically build, test, and measure your code using pipelines (think of it as a software workflow, where at various stages, the pipeline with preform assigned tasks, all the way to deploying it to a production server). Gitlab is a very full featured GitHub alternative that requires a seasoned self-hoster to take on, but the features that you do get, even on the free tier, are outstanding.

ProsCons
Free Community EditionRequires a GitLab account
Has many Installation optionsHigh minimum system requirements
Supports major Linux distrosRequires external database (Redis Only)
Complete end to end DevOps platform
Supports up 500 users on a single instance
Great Documentation
CI/CD pipelines for software development

GitBucket

Website: https://gitbucket.github.io/

GitBucket's UI
GitBucket’s UI

Gitbucket is another lightweight offering, built on top of scala, it requires only java to be installed on your system, and then one command to get it up and running. Lightweight as it may be they did not skimp out on options as all your basic GitHub features are here, issue tracking, activity timelines, public/private repos, and gitLFS (large file support). Gitbucket also offers a plugin system to add more features such as notifications, backup systems, and even a Kanban board plug in for project management. Overall a very minimalist choice when it comes to GitHub alternatives, if you are a fan of lightweight software or are raspi enthusiast I would definitely recommend checking out GitBucket, especially if you don’t want to hassle with a lot of setup and prerequisites.

ProsCons
Super Lightweight Sparse documentation
Only needs Java to run Almost too minimal
Expandable via plugins
No external DB needed

GitPrep

Website: https://gitprep.yukikimoto.com/

GitPrep's landing page
GitPrep’s landing page

GitPrep is a straight GitHub clone, based on perl, which is all you need to have installed on your server. This one is as lightweight as they come, so this one goes out to all my other fellow lazy admins. What you see is what you get, when compared to the other alternatives on this list, GitPrep is particularly nondescript. Gitprep covers the basic GitHub functionalities (PRs, public/private repos, Issue tracker, etc), but it covers them well enough, so if you aren’t looking for all the bells and whistles but you still want to self host git, check this one out, as its still actively maintained.

ProsCons
LightweightFeels lacking in features
No extra setup required
Has issue tracking, wiki, pull requests, public/private repos
SSL Support with built in Reverse proxy
Supports HTTPS & HTTP

Apache Allura

Website: https://allura.apache.org/

Apache Allura
Allura’s project repository page

Apache Allura is a self-described ‘software forge’, which at this point, we all know means GitHub clone—that’s not to say that Allura is a complete one, nor is it trying to be. It has a very different interface, that shares almost no resemblance to GitHub (unlike everything else on this list), depending on your preference, you may or may not like this presentation style, but in my opinion it just doesn’t do it for me. Looks aside, Allura is probably 2nd in terms of features on this list, because let me tell you Allura has a lot of them! Along with the regular stuff we’ve come to expect, it has a plugin system, which allows blogs, forums, and even custom themes. It’s also offers Oauth support for the security minded! Allura definitely feels more tailored towards a community or team, like GitLab, than an individual.

ProsCons
Supports Docker for an easy install!Cluttered UI
Git & SVN support
Customizable UI
Has Issue tracker, wiki, and plugin support
Good Documentation

There you have it, 5 GitHub alternatives to checkout over a weekend. You gotta love having options especially when you can self host them. A lot of other GitHub alternatives you find out their are cloud based which is just really switching out GitHub with some other corporation that has the reigns over your data. Hopefully after checking some of these alternatives out, the next time you reach for GitHub, you can instead, spend some quality server time and host your code the cool way instead.

Leave a Reply