GitHub is a popular enough name in the software developers scope. It is a software development tool used by millions programmers. GitHub adopts Git, a distributed version control system created by Linus Torvalds to allow developers track the changes on the source codes of the software they are maintaining. GitHub also offers some other features related to software development.
The story of GitHub changed a bit since Microsoft acquired it in June 2018. Some developers, especially those developing open source software, moved away from GitHub. One of the big enough developer teams who moved away from GitHub is the developer team of GIMP. Some open source developers still “say no” to Microsoft although the software company itself started to be much more friendly with open source community lately.
Instead of using proprietary software development tools like GitHub, some developers prefer to build their own tool (self-hosted). GitLab is one of the tools that you can use to build a self-hosted software development tool. GIMP developer team also use this tool, which is hosted by GNOME.
In addition to GitLab, there are several alternatives to GitHub that are open source in case you want to build a self-hosted software development tool. Following is the list of open source alternatives to GitHub.
1. GitLab
Right after the announcement of of GitHub acquisition by Microsoft, many developers made a switch to GitLab. GitLab itself is one the best alternative to GitHub which offers the similar features to GitHub. The key difference between GitHub and GitLab is that GitLab offers a Community Edition that is released as an open source software. You can use this edition to build a self-hosted software development tool like what the GIMP developer has done. GitLab enables Concurrent DevOps to make the software lifecycle faster. The core feature offered by GitLab is a Git-repository manager. But it also offers such features as wiki, issue tracker, code review, CI/CD, and so on. The Community Edition of GitLab is licensed under MIT License.
2. Gitea
Gitea is an open source software development tool written in Go. Gitea is lightweight and can be run on any platform. Be it Linux, Windows or macOS. Gitea has low minimal requirements. It can even run on an inexpensive Raspberry Pi. Gitea itself also uses Git as the version control system. Features like bug tracker, code review and wiki are also available on this tool. Gitea itself is community driven project. It is fork of Gogs, another software development management tool. Gitea is also licensed under MIT License.
3. GitBucket
GitBucket is another lightweight tool you can use to manage the development cycle of the software you are developing. GitBucket is written in Scala and work on JVM (Java Virtual Machine). The interface of GitBucket is pretty similar to GitHub. GitBucket itself also uses Git as the version control system. Features offered by this tool are repository viewer, wiki and issue tracker. GitBucket is licensed under the Apache License 2.0.
4. Gogs
Gogs is another lightweight tool in case you want to build a self-hosted software development tool. Gogs is the tool that makes it possible for Gitea to exist. Gogs is written in Go. Same as Gitea, Gogs also requires less resources to run. You can even run this tool on an inexpensive Raspberry Pi. According to an introduction on its official site, some of Gogs users even run Gogs instances on their NAS devices. Gogs uses Git as the version control system. Some of other features offered by this tool are code review, wiki and bug tracker. Gogs is licensed under the MIT License.
5. Kallithea
Unlike four first tools above which only supports Git, Kallithea also supports Mercurial in addition to Git. Kallithea can be run as standalone hosted application on your own server. Kallithea has a focus on providing a customized, self-administered interface for Mercurial and Git repositories. You can run Kallithea on Linux and Windows. Kallithea itself is written in Python and is licensed under GPLv3. Kallithea supports LDAP, making it easy to use your existing authentication system. You can integrate your instance with an issue tracker of your choice using JSON-RPC API and extensions interface.
6. Tuleap
Tuleap is another tool you can use as an alternative to GitHub. Tuleap also use Git as the version control system. Tuleap is an integrated tool for software development. It has a project management tool to centralize project activities with a single solution to plan, track, develop, deliver and maintain apps. Issue tracker is also available to allow you to track such issues as requirements, stories, tasks, bugs, requests and so on. Tuleap is licensed under GNU GPL v2.
7. Phabricator
Another open source software you can use to replace GitHub is Phabricator. This tool also uses Git as the version control system. In addition, it also supports Mercurial, and Subversion (SVN). The server of Phabricator can run on Linux, BSD macOS. At the time of writing, you can’t install the server of Phabricator on Windows. Same as the vast majority of similar tools above, Phabricator also offers features like code review, bug tracker, project manager and repository hosting. Phabricator is licensed under the Apache 2.0 License.