Host your own Git repositories with GitLab
One of the many tasks developers face is keeping track of changes within their code. That’s what tools called Version Control System(s) were invented for. Git is one of them and it is usually accompanied by GitHub, but that’s not the only option anymore with GitLab.
In the past, developers have chosen GitHub.com for its simplicity and many features. GitLab aims to provide a complete alternative to the popular commercial site. Here’s a look a the principal features:
- Web interface: GitLab is accessible through a nice and responsive web interface, allowing fast operations even during merges.
- Multi-user: this one is quite to be expected, GitLab allows multiple users to interact with each other, share projects and repositories, fork. It even allows LDAP integration.
- File browser: allows users to access and directly manipulate files associated with commits.
- Code Review: allows maintainers to finely control merge requests and users to comment on code blocks/lines.
- Issue tracker: allows users to open and fill issues and maintainers to keep track of them using powerful tools like tag and filters.
- Continuous Integration: differently from GitHub, GitLab provides an integrated solution for Continuous Integration. It is a sophisticated system with runners and schedules that allows developers to run their codes even using their laptop as “test machine”.
- Snippets: allow users to keep and share snippets.
- Webhooks: allow project maintainers to configure triggers to send data to specific URLs.
- Graphs: charts related to activity, languages used and continuous integration.
- Project import: allows importing from bare Git, GitHub, Bitbucket, SVN.
- Integrated Wiki: is available to document processes and distribute information about the projects.
Hosted, Community and Enterprise Edition
GitLab has three different options:
- Hosted: on gitlab.com, it behaves pretty much like github.com .
- Community: the Community Edition allows user to take full control and install the software on their own hardware.
- Enterprise Edition: the Enterprise Edition adds some features on top of the Community Edition. These feature are targeted to large teams and enterprises and uses a subscription model.
If you plan to use the Community Edition or the Enterprise Edition here’s a quick review of the requirements:
- Linux (currently supported: Debian, Ubuntu, CentOS, RHEL, Scientific Linux, Oracle Linux). You still don’t run Linux? Here are 10 reasons to do it.
- Ruby 2.3 (support for Ruby 2.1 and 2.2 will be dropped in the 8.13 release).
- 1 CPU core (it is strongly advised to use 2 to support up to 500 users and avoid clunkiness).
- 2GB RAM + 2GB Swap is probably the minimum requirement. (I tried the 1+3 setup and it’s really awful.)
These are the requirements for GitLab only. For Continuous Integration it is advisable to set up multiple workers and exclude the server on which the main component runs. Aside from that, the server can even run on a Raspberry PI.
You are now aware of a popular alternative to github.com . Although it can seem overwork to set up a GitLab instance if you work alone, it can save much time to small teams especially with scarce Internet connection. You now know the principal features of GitLab and its minimum requirements. For your next weekend, give it a shot, you might start to enjoy Git, if you don’t already.