It seems everyone uses GitHub these days (~8 million users, 20 million projects). It's not a bad solution, but there are some drawbacks (you might not want Microsoft looking at your private code), and whether you're just looking to host your own project or setup enterprise-wide git hosting, there are other ways to host your projects in Git. Let's take a look at some options below. Also, Comparison of git hosting options is a detailed analysis prepared by the Peers community in 2016.
Copyleft
- Pagure is a forge written in Python. With pagure you can host your project with its documentation, let your users report issues or request enhancements using the ticketing system and build your community of contributors by allowing them to fork your projects and contribute to it via the now-popular pull-request mechanism. Pagure is a RedHat project, licensed under the GPL v2. Pagure uses gitolite for controlling user access to repositories. At the time of this writing, Pagure is the project eQuality Technology prefers. Brief intro in Fedora Magazine Jan 2016. Some notable features:
- customizations can be done out of tree which makes upgrading fairly painless
- entire projects can be easily exported and imported from one instance to another, all by using only git, including issues, pull requests, and their comments because they are stored as git repos - this means for example one could host their project on pagure.io for some time and then migrate everything to their own instance once they decide to self-host - the project can even be mirrored on multiple servers with everything perpetually synchronized by external cron tasks or pagure hooks.
- Coding Team is a forge written in PHP using the AGPL license.
CodingTeam is a free (as in freedom) forge written in PHP with a lot of collaborative work and communication tools. This is a free software released under the GNU Affero General Public License version 3. A little bit of history: the project is born in march 2005 but the first public version (0.42) was released in june 2007. The first motivation of this project was to make a good forge for French-speaking users. Now, developers focus on accessibility and ease-of-use (this forge is recognized by many people as one of the only forge to have understandable and intuitive HCI). CodingTeam is available in many languages and the "lightweight but powerful" philosophy now benefits to everybody!
Sadly, the project doesn't seem to have progressed much past the initial support for git and mercurial.
- Kallithea is a fork of the Rhode Code project (after they made disturbing changes to their license) maintained by the Software Freedom Conservancy.
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.
- gitolite is similar to gitosis, but adds features; is currently maintained; and used by large installations like Kernel.org and KDE.
- Gitosis was created by Garry Dolley (up the irons) back in 2007, and is now maintained by Tommi Virtanen (Tv). Gitosis can still work well for small dev groups who want to use key-based auth for their code like I setup at Harvard' IIC. See https://git-scm.com/book/en/v1/Git-on-the-Server-Gitosis
- Gitorious code is available, but the AGPL project was bought out by GitLab, and hasn't been developed since 2015
- Tuleap Wikipedia article is a platform to host and manage your public Open Source project the Agile way. Plan, Track, Develop, Review and Share your software. The project seems not only mature, but well-funded (to a degree) since Airbus sees the value in FOSS, but also recognizes the risk in 'Open Source' where another entity can just privatize all the code that you rely on. Airbus has made Tuleap the centerpiece of their DevOps strategy [1] Tuleap compares favorably to GitLab, but offers more of a focus on cross-functional collaboration rather than just the developer-centric GitLab [2]
Tuleap development is led by Enalean, a software engineering company in France.Tuleap Open ALM is a Libre (GPLv2 [3]) and Open Source software forge crafted in PHP/MySQL. Development occurs in realtime on https://tuleap.net. Sources are available in a Git repository on Tuleap.net. You can find a mirror on GitHub.[4]
Not Copyleft
- Phabricator is a full forge; and is used by the WMF. However, the code is Apache licensed, not GPL.
- GitHub can make it a bit easier for developers who are used to working with svn because they have 'built-in' svn client support.[5] GitHub Enterprise can be installed on your own servers. GitHub costs money for private repos.
- GitLab is the "popular" alternative to GitHub that comes in "Community", "Enterprise" and "Cloud" versions. They say it's "better than GitHub" One nice thing that I note is that they've integrated git-annex for large binary support. This is a nice plus. (I've personally used git-annex as a file backup system -- like DropBox. In my case, it was to make backups of UbuntuOne when that service was discontinued.) You can install GitLab in minutes on your own server. It's costs if you want the Enterprise version.
- GitBlit is "a pure Java git server that just works". It's run by James Moger and scores of other contributors. GitBlit is self-hosted, so you can get a feel for it quickly by looking at the projects own source code. It does have some nice features. Wikimedia Ops used Gitblit prior to switching to Phabricator. GitBlit is designed primarily as a tool for small workgroups who want to host centralized repositories. It comes in two options: GO is an integrated single stack solution so you can really get up and running in no time flat; and there is a WAR version (assumes you already have a servlet container like Jetty or Tomcat.) Gitblit requires a Java 7 Runtime Environment (JRE) Gitblit comes with a lot of features
- Gitea is a community managed fork of Gogs, lightweight code hosting solution written in Go and published under the MIT license. It's self-hosted. The Gogs project is/was controlled by a single author, and the Gitea fork happened in 2016 by several users and contributors who wanted a different project management style: community-driven. Gitea is librejs compatible.
- Notabug offers free public hosting, and like Gitea, is based on a modified version of Gogs. A Peers community project, it's MIT-licensed and librejs compatible.
References
- ↑ EclispseCon France 2017 https://www.eclipsecon.org/france2017/session/new-era-alm-airbus-tuleap-sponsored-airbus
- ↑ https://blog.tuleap.org/tuleap-versus-gitlab-battle-will-not-happen
- ↑ https://tuleap.net/plugins/git/tuleap/tuleap/stable?p=tuleap%2Fstable.git&a=blob&h=8536cf793da40459701c6087e8b750e6d377cb37&hb=b5bb0bc6aea1f58e0165955fdf580488d24f6cac&f=src%2FCOPYING
- ↑ https://tuleap.net/plugins/git/tuleap/tuleap/stable?p=tuleap%2Fstable.git&a=tree
- ↑ Anyone can use
git svn
and all the other built-in git subversion bridging commands, GitHub simplifies how to do it.