Сегодня я решил перенести свой GitLab на DigitalOcean.
Думал, то там можно установить Gitlab в один клик (примерно год назад я так и делал). Но прям сейчас эта штука не работает. Да и к тому же там версия EE, а не CE.
Не работает этот вариант прям сейчас скорее всего из-за того, что в данный момент (27 февреля 2019г) дроплет DigitalOcean больше не поддерживается, а тот дроплет, а существующий дроплет поддерживается компанией GitLab. И, видимо, очень плохо поддерживается.
Так же у меня не получилось поставить GitLab CE через Docker
Не знаю что с ним, но установка просто зависала.
Поэтому я устанавливал обычным способом. Возможно, кому-то из вас он пригодится.
Для установки мы будем использовать обычный дроплет в DigitalOcean с Ubuntu 18.04.
Если у вас уже есть аккант, то можете создавать дроплет. Если аккаунта нет, то вы можете воспользоваться моей рефералкой. При регистрации вы получите $100, я получу $25.
AHTUNG!
Когда вы будете создавать дроплет, то важно выбрать не менее 4gb оперативки. Иначе Gitlab не установится. Я проверял :)
1. Обновляемся
После того как мы создали наш дроплет, конектимся к нему по SSH
ssh root@123.456.789.123
И обновляемся
sudo apt-get update -y
sudo apt-get upgrade -y
2. Зависимости
Нам нужно будет устанавливать SSL и прочее, так что сразу ставим зависимости
sudo apt-get install ca-certificates postfix curl openssh-server wget -y
Во время установки нас спросят как отправлять имейлы.
А после попросят ввести домен, который будет использоваться для отправки имейлов.
Вводим mail.bfg.dev
3. Установка
Теперь скачиваем скрипт установки с официальной репы гитлаба
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
И запускаем его
sudo apt install gitlab-ce -y
Эта команда скачает GitLab, а дальше нам нужно будет его немного настроить.
Нам нужно поменять наш URL в файле
sudo vim /etc/gitlab/gitlab.rb
Изменяем на наш
external_url 'http://git.dfg.dev'
4. SSL
Для того чтобы злоумышленники не смогли совершить MITM атаку, мы устанавливаем SSL сертификат. Вообще возьмите за правило устанавливать SSL на все сервисы, которые у вас есть. Тем более, что сделать это можно бесплатно.
Нам нужно просто установить LetsEnctypt
sudo apt-get install letsencrypt -y
После установки, нам нужно указать Email и URL
sudo letsencrypt certonly --standalone --agree-tos --no-eff-email --agree-tos --email johenews@gmail.com -d git.bfg.dev
После этого LetsEncrypt должен сказать нам, что у нас все хорошо. И сгенерировать сертификаты в /etc/letsencrypt
Если вы видите ошибку, то скорее всего это связано с тем, что вы не привязали домен к своему дроплету.
Зайдите в DigitalOcean во вкладку Networking и проверьте две записи.
У вас должна быть запись A
для bfg.dev
и запись A
для git.bfg.dev
Проверьте, что у вас все так же как на картинке ниже.
Если было не так, то исправьте и запустите команду снова.
Далее нам нужно создать ключ
sudo mkdir -p /etc/gitlab/ssl/
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
И изменить права на эту директорию
chmod 600 /etc/gitlab/ssl/*
Готово
5. HTTP -> HTTPS
Теперь чтобы изменить все на HTTPS нам надо отредактировать файл
sudo vim /etc/gitlab/gitlab.rb
Изменяем строку “external_url”
external_url 'https://git.bfg.dev'
Дальше в этом же файле ищем блок, в котором конфигурируется NGINX. В конце этого блока вставляем
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/git.bfg.dev/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/git.bfg.dev/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
:wq
Теперь нам нужно заново сконфигурировать GitLab
sudo gitlab-ctl reconfigure
Готово
6. UFW
На этом шаге мы включим встроенный в убунту файрвол ufw. Разрешим только ssh, http, https
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Теперь запустим сервис
sudo ufw enable
И проверим, что он работает
sudo ufw status
7. Задаем пароль
У нас должен успешно заработать наш GitLab.
Проверяем его по адресу https://git.bfg.dev
Нас сразу же попросят придумать пароль.
Задаем пароль, а потом заходим в GitLab с пользователем root и паролем, который мы только что указали.
Open the web browser and type in the gitlab URL ‘git.hakase-labs.pw’, and you will be redirected to the HTTPS connection.
Create a New GitLab Root Password
Type your new password for root GitLab user, and click the ‘Change your password’ button.