Gitlab Enterprise as a Self Hosted Alternative to Github
I’ve been a big fan, and an early user, of Gitlab Community edition and recently crossed the commercial software Rubicon, and paid 39$USD for a single-user commercial Gitlab Enterprise Starter license. No, this is not an ad, or paid content. I don’t do affiliate schemes.
Gitlab in the code hosting & continuous deployment ecosystem
Gitlab Inc (Crunchbase, Bloomberg) got another round of VC funding, including a second investment from the legendary Khosla of Sun Microsystems (Java etc) & Hotmail fame. Gitlab is becoming a serious tech player in its own right. It’s an interesting example of a dual license, open core, commercial open source software licensing business model, with planet scale.
Differentiated by self-hosted, private cloud with continuous integration and continuous deployment, to warrant serious attention from engineers, sysadmins and DevOps people in coding shops, startups, IT departments and grassroots.
It’s importantly also similar enough to its mega-site competitor Github.com for serious coders. It’s a Github clone, with much much more.
The hosted SaaS Gitlab.com also has unlimited private repositories, attacking Github’s core business revenue stream.
Gitlab has Continuous Integration, Continuous Development and now Continuous Deployment with integration into Kubernetes and via Travis CI’s deploy tool DPL into Heroku and a dozen other PAAS, SAAS, IAAS aka Hosting Providers in old speak.
It would be nice if DPL worked with Heroku-esque clones like Flynn or Dokku, it does work with Deis. A potential devops project to develop on my shiney new Gitlab server.
Installation on Xenial
I am re-installing Gitlab Enterprise Edition on VMware Workstation on my lab server, I was previously running on LXD with LXC containers, but I ran into issues with Docker inside LXD/LXC.
LXD/LXC does supports Dockerized LXC containers, but I’ve encountered issues and life is too short for troubleshooting edge case setups, especially when its your own time and dime. There is support, and there is support.
Let’s assume the fresh, clean, dedicated, Xenial server is setup. Hostname, etc/hosts, etc/network/interfaces, SSH server and DNS. A standard host or server Linux admin.
Gitlab has one of the best installers in the business, based on Chef Solo called the Omnibus.
Verbatim from the docs, install dependencies, choosing Postfix “Internet Site”
sudo apt-get install curl openssh-server ca-certificates postfix
Scripted Package Installation
Add Gitlab package and pipe the install script to install the packages
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash sudo apt-get install gitlab-ee
Configure and Start Gitlab EE
sudo gitlab-ctl reconfigure
Browse and Login
In your favorite internet browsing application and device go to the URL and be redirected to change root password. Login with username root and new password.
Upload Software License
FLOSS lovers will find this morally wrong, but we now upload our license.
Next configure, root username to something more meaningful, gravatars, add ssh key, colors, etc.
More parts to follow.