С тех пор как GitHub был приобретен Microsoft, многие разработчики планировали перенести свои собственные репозитории кода с github.com в альтернативное решение для самостоятельного размещения. GitLab Community Edition (CE) является наиболее распространенным выбором.
Как сложное и гибкое решение, GitLab CE может быть развернут с использованием различных методов, но здесь будет описан только официально рекомендованный метод, установка пакета Omnibus.
Предпосылки
- Свежий экземпляр сервера Vultr Ubuntu 18.04 LTS x64 с минимум 4 ГБ памяти. 8 ГБ или более рекомендуется для обслуживания до 100 пользователей. Скажите, что его адрес IPv4 есть
203.0.113.1
.
- Пользователь Sudo .
- Домен
gitlab.example.com
, указывающий на экземпляр, упомянутый выше.
Примечание. При развертывании на вашем собственном экземпляре сервера обязательно замените все примерные значения действительными.
Запустите терминал SSH и войдите в свой экземпляр Ubuntu 18.04 LTS x64 как пользователь sudo.
Добавьте раздел подкачки и настройте параметр подкачки
При развертывании GitLab CE 11.x на компьютере с 4 ГБ памяти необходимо настроить раздел подкачки 4 ГБ для бесперебойной работы:
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Примечание. Если вы используете сервер другого размера, размер раздела подкачки может отличаться.
В целях повышения производительности системы рекомендуется настроить для параметра подкачки ядра низкое значение, например 10
:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
Вывод cat
команды будет 10
.
Настройте имя компьютера и полное доменное имя (FQDN)
Используйте следующие команды для настройки имени хоста gitlab
и полного доменного имени gitlab.example.com
для машины:
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Вы можете подтвердить результаты:
hostname
hostname -f
Изменить правила брандмауэра
Разрешить входящий трафик SSH, HTTP и HTTPS
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Обновите систему
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Во время обновления вы можете быть проинформированы о том, что текущая установленная версия файла конфигурации grub была изменена локально. Поскольку мы не несем ответственности за изменение, используйте UPстрелку, чтобы выделить install the package maintainer's version
параметр, а затем нажмите ENTER.
Когда система снова заработает, войдите в систему под тем же пользователем sudo, чтобы продолжить.
Шаг 2. Установите необходимые зависимости
Перед установкой GitLab CE вам необходимо установить необходимые зависимости:
sudo apt install -y curl openssh-server ca-certificates
Кроме того, если вы хотите использовать Postfix для отправки уведомлений, вам необходимо установить Postfix:
sudo apt install -y postfix
Во время установки может появиться экран конфигурации:
- Нажмите, TABчтобы выделить
<OK>
кнопку на первом экране, а затем нажмите ENTER.
- Выберите
Internet Site
и нажмите ENTER.
- В
mail name
поле введите полное доменное имя вашего сервера gitlab.example.com
и нажмите ENTER.
- Если появляются другие экраны, нажмите, ENTERчтобы принять настройки по умолчанию.
Запустите и включите службу Postfix:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Изменить правила брандмауэра для Postfix:
sudo ufw allow Postfix
sudo ufw allow 'Postfix SMTPS'
sudo ufw allow 'Postfix Submission'
После установки Postfix вам необходимо настроить Postfix, отредактировав его основной файл конфигурации /etc/postfix/main.cf
в соответствии с вашими фактическими настройками сервера.
Примечание. В дополнение к вышеприведенным инструкциям необходимо отправить заявку в службу поддержки, чтобы отменить блокировку Vultr по умолчанию на SMTP-порту 25.
В качестве альтернативы, если вы хотите использовать другое решение для обмена сообщениями, просто пропустите установку Postfix и выберите использование внешнего SMTP-сервера после установки GitLab CE.
Шаг 3: Установите репозиторий GitLab APT и затем установите GitLab CE
Установите репозиторий GitLab CE APT в вашей системе:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Далее установите GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
Установка может занять некоторое время.
Наконец, укажите ваш любимый веб-браузер http://gitlab.example.com
, а затем отправьте новый пароль в ответ на приглашение завершить установку.
С этого момента используйте следующие учетные данные для входа в систему в качестве администратора:
- Имя пользователя:
root
- Пароль:
<your-new-password>
Шаг 4. Включите доступ HTTPS путем интеграции SSL-сертификата Let's Encrypt
На данный момент вы успешно установили GitLab CE 11.x на свой экземпляр сервера, и пользователи уже могут посещать сайт с использованием протокола HTTP. В целях безопасности рекомендуется включить доступ HTTPS к вашему серверу GitLab путем интеграции SSL-сертификата Let's Encrypt.
Используйте vi
редактор, чтобы открыть файл конфигурации GitLab CE:
sudo vi /etc/gitlab/gitlab.rb
Найдите следующие две строки:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Замените их соответственно:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']
Сохранить и выйти:
:wq!
Переконфигурируйте GitLab CE, используя обновленные настройки:
sudo gitlab-ctl reconfigure
Переконфигурация может занять некоторое время.
После завершения реконфигурации все пользователи будут вынуждены использовать протокол HTTPS при доступе к сайту GitLab.
Примечание. После перехода с HTTP на HTTPS устаревшие файлы cookie могут вызвать ошибку GitLab 422. Очистка файлов cookie устраняет эту проблему.