Setting up a private GIT Server

Git is a versioning system that is used by millions of users around the world. Developed by Linus Torvalds in April of 2005, Git is used for over 21.8 million repositories.

Why not just use Github? Was the first question I asked when considering why I should write this article. Github along with other hosted repository services usually allow only a few private repositories. This provides a dilemma for the little man, should we pay for more private repos , should we spread our repositories out over multiple services or should we host our own private git server?

There are benefits to hosting your own git server. Unlimited private repos, the possibility to have more control for each user and group privileges, just to name a couple. Now that we have looked at the options available and weighed the pros and cons of each service, maybe you have decided to host your own git server.

First things first, which open source git server should we use? I decided to utilize GitLab, being open source, and readily available it also has a web based GUI.

Before we install GitLab, I recommend installing Postfix and setting up SMTP email server so that GitLab can push emails when needed.

Assuming you have already installed and setup Postfix, Let’s move on to GitLab.

Download the packages using wget. Then install the package:

wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb
sudo dpkg -i gitlab_7.9.4-omnibus.1-1_amd64.deb

Now we need to configure GitLab:

sudo gitlab-ctl reconfigure
nano /etc/gitlab/gitlab.rb

Edit the ‘external_url’, give the server domain, and save the file.

gitlab-2

In your web browser, open your GitLab site, using ‘root; for the system admin and ‘5iveL!fe’ for the password. Change your password after your first login for obvious security reasons.

Thank you for utilizing this quick and simple installation guide for installing and setting up your own private git server.

Developing A Basic Understanding

The IT industry is a constantly changing environment. Adapt and survive or else, should be the motto. When I started in computers and technology a state of the art machine was a Franklin PC 5000, which included dual 5.25 floppy drives, 64k ram, a VGA monitor, and ran Disk Operating System (DOS). Basic was the language to learn.

It is truly amazing how fast computers have changed since then. Recently, I decided that I would take up learning Python 2.7 in pusuit of a career in the DevOps field. I have achieved this through the use of http://www.codeacademy.com and http://learnpythonthehardway.org . Both of these resources are excellent at learning the fundamentals.

DevOps is a new term utilizing Agile and Lean methodologies to bring development and operations together. There is the “CAMS” (Culture, Automation, Measurement and Sharing) acronym popularized by John Willis and Damon Edwards. When you think DevOps, think continuous, think automated, think security, think network.

After much research, I have found a list of tools that I will be showing others how to use, install and setup. Follow along and maybe you can learn something useful along the way.