Git is a version control system. Linus Torvalds created Git in 2005 for development of the Linux kernel. Git is mainly used for software source code management. However, it can be used to keep track of any set of files such as HTML or CSS or a tutorial written in the markup language. Git is a Distributed Version Control Systems. A dedicated Git server helps to manage access control, show contents of a Git repository via the web and manage multiple repositories. In a Git, clients do not just check out the latest snapshots of the files. They entirely mirror the repository including history.
Microsoft to acquire Github
It is official now. Microsoft announced an agreement to acquire GitHub, the world’s leading software development platform. I think it is a wake-up call for open source projects. So much of open source code hosted on Github. I twitted this other day:
I got an email from one my client who is @Github private repo business customer. They want to move out of Github to a personal GIT server hosted either in AWS or Google Cloud. They fear that Microsoft might get insight into their codebase. Small startups/business do not trust MS.
— nixCraft (@nixcraft) June 3, 2018
Some of us working in IT for a long time. We have not forgotten big evil Microsoft. Microsoft is the same company that was behind the SCO Lawsuit against Linux and called open source cancer. It actively follows a policy of Embrace, Extend, Extinguish. Microsoft is also known for its abuse of patents (see Netscape and Microsoft is generating $2 billion per year in revenue from Android patent royalties) and the recent Windows 10 Telemetry privacy issues. The list is endless. One should be a cautious trusting company that has a strong history of abuse towards open source communities and Linux operating system. Hence, installing your Git server is the best policy.
Various implementations of Git and Github alternatives
There is a number of implementations of Git server:
- Proprietory (e.g. Bitbucket)
- Git as service (e.g. GitHub)
- Open source (e.g. gitolite, Gerrit)
Let us see six open source Github alternatives that you can host on your own server.
1. GitLab – a web-based Git-repository manager with wiki, issue-tracking features and more
GitLab is a free, open source and a web-based Git-repository manager software. It has a wiki, issue tracking, and other features. The code was originally written in Ruby, with some parts later rewritten in Golang. GitLab Community Edition (CE) is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab CE on your own servers, in a container, or on a cloud provider.
|
Manager: GitLab B.V. Netherlands. |
Server side free software: Partial [GitLab Community Edition (CE)] |
Client side free software: Yes |
Code review: Yes |
Bug tracking: Yes |
Web hosting: Yes |
Wiki: Yes |
Private branch: Yes |
Personal branch: Yes |
Build system: Yes |
Release binary: Yes |
Self hosting: Yes |
Version control system: Git |
License: MIT Expat |
Commercial support: Yes |
Operating system/stack support: Linux (Ubuntu/Debian/CentOS/RHEL/OpenSUSE) + Ruby, Redis, PostgreSQL/MySQL, and Git |
Download: https://gitlab.com/gitlab-org/gitlab-ce |
2. Gitea – Git with a cup of tea
It is a painless self-hosted Git service. Gitea is a community fork of Gogs software. It is lightweight code hosting solution written in Golang and released under the MIT license. It works on Windows, macOS, Linux, ARM and more.
|
Manager: The Gitea Authors. |
Server side free software: Yes |
Client side free software: Yes |
Code review: Yes |
Bug tracking: Yes |
Web hosting: Yes |
Wiki: Yes |
Private branch: Yes |
Personal branch: Yes |
Build system: No |
Release binary: No |
Self hosting: Yes |
Version control system: Git |
License: MIT |
Commercial support: N/A |
Operating system/stack support: Linux/Unix/Windows (anything that can run Golang), PostgreSQL/MySQL database |
Download: https://gitea.io |
3. GNU Savannah
GNU Savannah is a free and open source software from the Free Software Foundation. It currently offers CVS, GNU arch, Subversion, Git, Mercurial, Bazaar, mailing list, web hosting, file hosting, and bug tracking services. However, this software is not for new users. It takes a little time to setup and masters everything about it.
|
Manager: Free Software Foundation, Inc. . |
Server side free software: Yes |
Client side free software: Yes |
Code review: Yes |
Bug tracking: Yes |
Web hosting: Yes |
Wiki: No |
Private branch: No |
Personal branch: No |
Build system: No |
Release binary: N/A |
Self hosting: Yes |
Version control system: Git, CVS, HG, SVN, BZR |
License: MIT Expat |
Commercial support: Yes |
Operating system/stack support: Linux (Ubuntu/Debian/CentOS/RHEL/OpenSUSE) + Ruby, Redis, PostgreSQL/MySQL, and Git |
Download: http://savannah.gnu.org/projects/administration |
4. GitBucket – Open source GitHub clone written with Scala
Gitbucket is a Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility. It provides GitHub like user interface (UI) and features such as Git repository hosting via HTTP/HTTPS and SSH, repository viewer, issues, wiki and pull request.
|
Manager: The Gogs Authors. |
Server side free software: Yes |
Client side free software: Yes |
Code review: Unknown |
Bug tracking: Unknown |
Web hosting: Yes |
Wiki: Yes |
Private branch: Yes |
Personal branch: Unknown |
Build system: No |
Release binary: No |
Self hosting: Yes |
Version control system: Git |
License: Apache License 2.0 |
Commercial support: Unknown |
Operating system/stack support: Java 8 (Linux/Unix/Windows) |
Download: https://github.com/gitbucket/gitbucket |
5. Gogs – A painless self-hosted Git service
The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across ALL platforms that Go supports, including Linux, Mac OS X, Windows and ARM.
|
Manager: The Gogs Authors. |
Server side free software: Yes |
Client side free software: Yes |
Code review: Yes |
Bug tracking: Yes |
Web hosting: Yes |
Wiki: Yes |
Private branch: Yes |
Personal branch: Yes |
Build system: No |
Release binary: No |
Self hosting: Yes |
Version control system: Git |
License: MIT |
Commercial support: N/A |
Operating system/stack support: Linux/Unix/Windows (anything that can run Golang), MySQL/PostgreSQL/MSSQL/TiDB database |
Download: https://gogs.io/ |
6. Other Github alternatives options
Here are few more alternatives to GitHub for all platforms with Open Source License:
It is Github clone. You can install portable github system into unix/linux. You can create users and repositories without limitation. This is free software.
Kallithea, a member project of Software Freedom Conservancy, is a GPLv3’d, Free Software source code management system that supports two leading version control systems, Mercurial and Git, and has a web interface that is easy to use for users and admins. You can install Kallithea on your own server and host repositories for the version control system of your choice.
Tuleap is a project management system for managing application lifecycles, Agile development and design projects, V-model, Requirement Management, IT Services Management, and so on. Tuleap integrates forge system functionalities that enables teams to manage software sources (using Subversion, Git or CVS); share technical or project documentations; track bugs; consolidate communications with customers, developers or third parties.
Phabricator is a collection of web applications which help software companies build better software. It is a set of tools for developing software. It includes applications for code review, repository hosting, git, bug tracking, project management, and more.
Conclusion
And there you have it, six Github alternatives that you can host on your Linux or Unix server. No need to depend on the cloud or worry about Microsoft looking into your codebase. If I miss any other well know the FOSS-based Git server, please add in the comments section below.
Posted by: Vivek Gite
The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.
Source