GitLab vs GitHub - The Ultimate Showdown!
Tags: reclaimcloud, ci, github, gitlab
Published: 2021-02-22 02:38:19

Looking for the best hosting platform for your git creations?  You may have the instinct to run to GitHub, but let me just stop you and introduce you to the one you could refer to as "the one who got away" if you make that choice: GitLab.  A web-based DevOps tool, GitLab is the lesser known of the two.  However, GitLab has the potential to be a better choice for feature-based programmers, as it is an open source Git management system.

In this post, I will cover how to create your own GitLab instance using reclaim.cloud, a cloud service that allows users access to development environments, and only pay for what you use.

## Setting up Reclaim.cloud
1. Create an account on [reclaim.cloud](https://reclaim.cloud/)
2. In order to gain access to DevOps, you will have to upgrade to a professional account (and preload some money for access too)

## Install GitLab Environment
1. Go to the applications tab on the homepage of reclaim.cloud.  Click on DevOps Lab- GitLab server.  To download and deploy, type in your account's email address.  They will send a link to start the process.  

The installation process takes a bit of time, so while that is working its magic, get yourself a snack.  Reclaim.cloud will send another email once the installation process is completed and is ready to be deployed!

## Setting Up Your Server
Reclaim.cloud is great in terms of user customization of the server.  To do so, click on the green gear icon next to the GitLab tab.  Then a ton of configurations for your server will show up! (as seen below)
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qgq1kv86umzvrdyky2a6.png)
One configuration you should edit for your environment is to increase the cloudlet numbers to ensure that enough resources are available to run.  To ensure that GitLab has enough CPU and RAM to run without failure, the number of cloudlets should be set at the maximum - 32.

## Launch GitLab!
In order to launch, all that is needed is to enter your personal domain name into a search engine, or press the "Open in Browser" button.  It will give you a standard user and password that can be easily changed to your preferred credentials on the dashboard. 
 Once you sign in with your credentials, GitLab should be up and ready for your use!

## Why is GitLab better for the corporate world?
Authentication Levels
   - GitLab offers a setting that where you can set people's access permission according to their role on the team.  It also offers a issue tracker without given total access to the code.

Customization
   - When an admin in a GitLab environment, you are able to have complete control over the features and characteristics of the project repo.  The amount of customization is unlike anything found in GitHub, especially when regarding analytics, issues, packages and tracking.

Continuous Integration aka CI
   - To me this is one of the biggest perks of using GitLab.  CI is CRUCIAL when it comes to development - it is a savior when regarding pull requests and their possibility to break the code.  GitLab is unique as it comes with its own, FREE CI.  When comparing to competitors like GitHub that require the purchase of an outside CI, this is a huge selling point for developers to use GitLab.

## So what is my opinion?
Personally, I have not had any experience using GitLab during my education experience.  In past classes, we have utilized GitHub for team programming projects, and while I do not dislike it, it is not always the easiest platform to use for large projects.  What I really liked about GitLab as I learned about it was the customization and CI that it offered - it seems to be more tailored to corporate-level functions where DevOps and developers can better function with the aspects offered by their environment.  I would say that for small or personal projects to take advantage of GitHub, and use GitLab for large-scale and professional uses.

## Check out my [YouTube video](https://youtu.be/O0Lyw-Z3PIE) for more explanation and a walkthrough of setting up a GitLab instance!