Skip to content

Instantly share code, notes, and snippets.

@HendrikPetertje
Last active August 26, 2018 06:09
Show Gist options
  • Save HendrikPetertje/8314525 to your computer and use it in GitHub Desktop.
Save HendrikPetertje/8314525 to your computer and use it in GitHub Desktop.
Create your own GitLab server

#Setup Your own Gitlab server from the on-click install image ##Create the server image Login to Digital Ocean and create click the "New Droplet" button. In the page fill out the details for your new droplet. The best thing is to choose $10.- server since this server has the necessary RAM of 1GB. You can however choose for the $5.- server to but this will require setting up Swap once your server is deployed. Now when selecting your image choose "Application" and select GitLab. Create the droplet and wait for your ssh keys to come in.

##Modify the Ubuntu environment. ###Change login details Log in to your root account using your version of the command below

ssh root@your-servers-ip

Fill out the password you received by mail. If you logged in successfully at this point, the best thing to now is change that long and boring password to something you can actually remember. type the command below and create a new password for the current user:

passwd

now exit the server connection (by typing exit) and try to connect again using your new password.

###Auto login using SSH-keys At this point you don't want to waste time filling out that password everytime you connect. Best thing to do would be to add your SSH credentials to the root user.

on your local machine (not connected to your server) create ssh keys as described in this tutorial Now request the public key using the command below:

cat ~/.ssh/id_rsa.pub

copy the key to your clipboard using [ctrl]+[shift]+[c] (linux) or [CMND]+[C] (Mac) In windows copy the key, past it in a document and remove all the enters that your command prompt somehow created.

login to your server using the ssh command and type the commands below:

cd ~/.ssh
nano authorized_keys

This will open an empty document in the terminal. Paste the key you copied to your clipboard and save the document. When login in to your server again you are not asked for your password anymore :)

##SWAP When creating the server with either 500mb RAM or 1GB, there's going to be a need for a little bit more virtual memory at some point. You need to create a Swap file on the server. This way a portion of disk space will be used as virtual memory for the computer.

Give the command below while being root user:

fallocate -l 1024M /mnt/swap.img
mkswap /mnt/swap.img
swapon /mnt/swap.img

Now tell the server to load the swap file by adding the line below to /etc/fstab

/mnt/swap.img  none  swap  sw  0 0

#Setup the GitLab application ##Alter basic settings ###GitLab shell GitLab Shell is an SSH component for GitLab. Open the GitLab shell configuration file with your text editor:

nano /home/git/gitlab-shell/config.yml

Adjust the gitlab_url parameter to match your domain name. As the comment in the file says, your URL should end with a slash:

gitlab_url: "http://your_domain.com/"

Save and close the file.

###Main configuration Next, open the main GitLab configuration file with your text editor:

nano /home/git/gitlab/config/gitlab.yml

In the gitlab: section, find and adjust the host: parameter to match your domain name:

gitlab:
  ## Web server settings
  host: your_domain.com
  port: 80
  https: false

While you're in this file, you can adjust the email settings that GitLab will use in the "From:" field in automated emails, and the email published for support contact, respectively:

email_from: gitlab@domain.com
support_email: your_email@domain.com

Save and close the file.

Now, you just need to restart the service:

service gitlab restart

##Reset the Gitlab Environment A lot of users notice errors when trying to connect to the Git user using push, pull and clone commands. This is because in most cases the Gitlab shell needs reconfiguration before it works.

The command below will rest all gitLab-keys that could still be hanging around in the basic Linux Environment

cd /bin
./bin/gitlab-keys clear

The command below will drop the gitlab-shell database, create it again and populate it with the right migrations (don't forget the sudo command here since we're going to give it parameters).

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production

Now restart the server to reload all scripts, environments and stuff.

shutdown -r 0

##Extra If you still have some time update the ubuntu server environment using the command below:

apt-get update && apt-get upgrade && apt-get dist-upgrade
shutdown -r 0

To monitor your servers usage install the htop application using the command below:

apt-get intall htop

And open the application using

htop

##First login open a browser and navigate to your new website login using the following credentials:

Username: admin@local.host
Password: 5iveL!fe

The website will ask you to change your password. Change the password. When you are done doing that navigate to your profile settings and change your e-mail adress and full name.

Now create nice repo's and get going!

Good luck!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment