Git is a distributed version-control system for tracking changes in source code during software development. Git was created by Linus Torvalds in 2005 for development of the Linux kernel, with other kernel developers contributing to its initial development. Its current maintainer since 2005 is Junio Hamano. Git is free and open-source software distributed under the terms of the GNU General Public License version 2.
GitHub (A cloud service for remote hosting of git repositories) is the software development version control using Git. It offers the distributed version control and source code management (SCM) functionality of Git, plus its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project. GitHub was developed by Chris Wanstrath, P. J. Hyett, Tom Preston-Werner and Scott Chacon using Ruby on Rails, and started in February 2008. The company, GitHub, Inc., has existed since 2007 and is located in San Francisco. It is now a subsidiary of Microsoft, which acquired the company in 2018 for US$7.5 billion
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and CI/CD pipeline features, using an open-source license, developed by GitLab Inc. The software was created by Ukrainians Dmitriy Zaporozhets and Valery Sizov,and is used by several large tech companies. Git Application latest stable release
was 12.9.2 released on 31st March 2020.
GitLab available in two versions Enterprise Edition & Community Edition.
GitLab Community Edition Installation and Configuration
GitLab Components include: Git, Nginx, PostgresSQL, Chef, Redis
- sudo yum install -y curl policycoreutils-python openssh-server
- sudo firewall-cmd –permanent –add-service=http
- sudo firewall-cmd –permanent –add-service=https
- sudo systemctl reload firewalld
- sudo yum install postfix
- sudo systemctl enable postfix
- sudo systemctl start postfix
- curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- sudo yum install -y gitlab-ce
Create a self signed certificate, Ignore if you have Trusted certificates.
- openssl genrsa -out key.pem 2048
- openssl req -new -sha256 -key key.pem -out csr.csr
- openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem
- mkdir /etc/gitlab/ssl
- chmod 700 /etc/gitlab/ssl
- cp *.pem /etc/gitlab/ssl
Update the three important directives of the Git Chef Configuration file
nginx[‘ssl_certificate’] = “/etc/gitlab/ssl/certificate.pem”
nginx[‘ssl_certificate_key’] = “/etc/gitlab/ssl/key.pem”
Chef Reconfiguration- Takes few minutes
Access the URL
https://gitlab.domain.com – Change your root password and then login with root