---
# System prepended metadata

title: Installing Gitlab on Ubuntu

---

# Installing Gitlab on Ubuntu

## Links

- [Download and install GitLab | GitLab](https://about.gitlab.com/install/#ubuntu)
- [How To Install and Configure Postfix on Ubuntu 16.04 | DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-16-04)
- [Configure Postfix to Send Mail Using Gmail and Google Apps on Debian or Ubuntu | Linode](https://www.linode.com/docs/email/email-services/configure-postfix-to-send-mail-using-gmail-and-google-apps-on-debian-or-ubuntu/)
- [Configure Postfix to use Mailgun SMTP Relay on Ubuntu •](https://guides.wp-bullet.com/configure-postfix-use-mailgun-smtp-relay-ubuntu/)
- [git - Can't open ssh/authorized_keys of user - Stack Overflow](https://stackoverflow.com/questions/14819084/cant-open-ssh-authorized-keys-of-user)
- [Set Up Postfix With Mailgun For Reliable E-Mail Delivery - Brian | Jamroom](https://www.jamroom.net/brian/documentation/guides/1312/set-up-postfix-with-mailgun-for-reliable-e-mail-delivery)
- [How to restart GitLab | GitLab](https://docs.gitlab.com/ee/administration/restart_gitlab.html)
- [NGINX Docs | Creating NGINX Plus and NGINX Configuration Files](https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/)
- [Beginner’s Guide](http://nginx.org/en/docs/beginners_guide.html)
- [How To Install and Configure GitLab on Ubuntu 16.04 | DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-gitlab-on-ubuntu-16-04)
- [How to Give All Permissions in Ubuntu | Small Business - Chron.com](https://smallbusiness.chron.com/give-permissions-ubuntu-33174.html#:~:text=Type%20%E2%80%9Csudo%20chmod%20a%2Brwx,file%20and%20folder%20inside%20it.)

## Notes

## Code

## SSH-KEY

## Linux installs

`sudo apt-get install openssh-server`
`sudo apt-get install ssh openssh-client openssh-server`
`sudo apt install net-tools`

`ip address` -- for ip address
`ifconfig` -- for ip address

Switch to bridged networking mode, make that change in the Virtual Machine Control Panel (Edit > Virtual Machine Settings)

reboot the VM

`sudo apt install openbsd-inetd`
`cat ~/.ssh/id_rsa.pub`
`ssh-keygen -t rsa -b 4096 -C "Your email"`
`cat ~/.ssh/id_rsa.pub`
`sudo vim ~/.ssh/authorized_keys`
gg, dG - to clear all in vim
now copy the keys

### Windows (on bash):

`clip < ~/.ssh/id_rsa.pub`

### Mac:

`pbcopy < ~/.ssh/id_rsa.pub`

### GNU/Linux (requires xclip):

`sudo apt install xclip`
`xclip -sel clip < ~/.ssh/id_rsa.pub`

## Install Postfix

sudo apt-get update
sudo apt-get install postfix libsasl2-modules mailutils -y

```
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = wp-bullet.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = wp-bullet.com, mail.wp-bullet.com, localhost.localdomain, localhost
relayhost =  [smtp.mailgun.org]:587
#limit to loopback address
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
#limit to loopback address
inet_interfaces = loopback-only
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#where we specify the forwarding address to e.g. google
virtual_maps = regexp:/etc/postfix/virtual-regexp
#allow inet interfaces for SMTP - also allow submission inet in master.conf
smtpd_client_restrictions = permit_inet_interfaces
smtp_sasl_auth_enable = yes
#set to your mailgun credentials
smtp_sasl_password_maps = static:[PostMasterUserName]:[Password]
#this is required for authentication to prevent the FROMTO error
smtp_sasl_security_options = noanonymous
```

sudo vim /etc/mailname

```
# addYourDomainName
smtp.mailgun.org

```

Try restart process and then run below code.

echo "This is testing SMTP Relay." | mail -s "Postfix Mailgun" test@wp-bullet.com


### Restart PostFix

sudo postfix check
sudo systemctl restart postfix
sudo service postfix restart
sudo netstat -lntp | grep master
sudo postmap /etc/postfix/virtual-regexp
sudo service postfix reload
tail -n 100 /var/log/mail.log

get test email checker from https://www.mail-tester.com

Add the given email to authorized email in the mailgun

echo "This is testing SMTP Relay. 3 " | mail -s "Postfix Mailgun 2" [Use that testing email]

## Install Gitlabs

```
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee

```



### Restart Gitlabs

sudo gitlab-ctl restart

```
# Prevent users from writing to the repositories while you move them.
sudo gitlab-ctl stop

# Note there is _no_ slash behind 'repositories', but there _is_ a
# slash behind 'git-data'.
sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/

# Start the necessary processes and run reconfigure to fix permissions
# if necessary
sudo gitlab-ctl reconfigure

# Double-check directory layout in /mnt/nas/git-data. Expected output:
# repositories
sudo ls /mnt/nas/git-data/

# Done! Start GitLab and verify that you can browse through the repositories in
# the web interface.
sudo gitlab-ctl start

```

## Permission Grant

```
sudo chmod a+rwx /etc/gitlab
```

