When talking about online git services, a popular option is GitHub. But for privacy, flexibility and/or network speed purposes, you might want to deploy a git service on a cloud machine under your control. In this case, you can use GitLab Community Edition (CE) to reach your goal.
GitLab can be installed on Ubuntu, Debian, CentOS, RHEL, Scientific Linux, and Oracle Linux; other *nix distributions are not officially supported. In this tutorial, I will show you how to install a GitLab Community Edition (CE) omnibus RPM package on a Vultr CentOS 6 x64 server.
Before moving on, you need to:
Pick a sufficient server size. At least 2 CPU and 2G RAM are recommended. 1 CPU works but the application will run slower. If your RAM is less than 2G (minimum 512MB), you need to enable swap to achieve 2G of addressable memory (RAM + swap). See details about enabling swap in this article.
Deploy a CentOS 6 x64 server instance. None of the 32-bit operating systems are supported.
Create a non-root user with sudo permissions. You can refer to this article for details.
Submit a support ticket to cancel Vultr's default block on SMTP port 25, if you want to use your own VPS to send emails.
Set up the host name and Fully Qualified Domain Name (FQDN) on your server, which are necessary for sending emails with postfix on your VPS. See this article.
Bind a domain to your server, otherwise you will have to access your git repos by the IP address.
sudo yum install curl openssh-server postfix cronie sudo service postfix start sudo chkconfig postfix on sudo lokkit -s http -s ssh
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash sudo yum -y install gitlab-ce
sudo gitlab-ctl reconfigure
Log in from your browser with the following credentials:
username: root password: 5iveL!fe
After you log in, the system will ask you to change your password immediately. You need to change it and log in again.
GitLab has lots of features that can be tuned.
As a starter, you need to configure the external URL in your terminal if you have not set up the host name, FQDN, and domain binding properly:
sudo vi /etc/gitlab/gitlab.rb
Find the following line:
Replace it with:
Save and exit. Then input:
sudo gitlab-ctl reconfigure
Other features can be configured according to your specific circumstance. Remember to run the command
sudo gitlab-ctl reconfigure after you make any configuration changes.
Note: Before you configure email-related features properly, all newly-registered users (except for root) will not be able to log in because their email addresses have not been confirmed. You can log in as root and confirm them manually.
The setup is complete. For further reading, visit the GitLab official website.