Установка на Debian/Ubuntu
#apt update
#apt install -y curl ca-certificates perl postfix
Качаем и запускаем скрипт, который подготовит среду для установки
#curl
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
Посмотреть что там внутри скрипта, чтобы ничего у себя не поломать можно тут
https://packages.gitlab.com/gitlab/gitlab-ce/install (ну или сразу просто качаем, потом смотрим, потом запускаем).
Устанавливаем саму лабу.
#apt-get install gitlab-ce
Тут нужно быть готовым, что на ноябрь 2022 инсталяшка весит около 1.5ГБ, а для установки нужно что-то около 3ГБ.
После установки, конфигурируем.
#mcedit /etc/gitlab/gitlab.rb
Если кроме GitLab на сервере больше ничего нет, то можно просто вписать свой домен в
external_url '
http://gitlab.domen.my'
применить настройки (см.ниже) и на этом можно уже начинать пользоваться работающим GitLab. В описанном же мною случае, раскоментируем и изменим следующие строки:
nginx['enable'] = false # выключить встроенный nginx
web_server['external_users'] = ['www-data'] # пользователь, от имени которого работает веб-сервер
gitlab_rails['trusted_proxies'] = [ '127.0.0.1', 'xxx.xxx.xxx.xxx' ] # параметр для определения IP адресов проксируемого сервера, вместо ххх ставим свой ip либо 0.0.0.0
gitlab_workhorse['listen_network'] = "unix" # протокол для работы с веб-сервером
gitlab_workhorse['listen_addr'] = "/var/opt/gitlab/gitlab-workhorse/socket" # интерфейс и порт для прослушивания
И применяем настройки:
gitlab-ctl reconfigure
Теперь дело за Nginx.
Добавляем конфиг для вашего домена gitlab в sites-available с таким содержимым, в нём нужно только сменить доменное имя на своё:
upstream gitlab-workhorse {
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
server {
listen 80;
server_name gitlab.domen.my;
server_tokens off;
root /opt/gitlab/embedded/service/gitlab-rails/public;
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
location / {
client_max_body_size 0;
gzip off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass
http://gitlab-workhorse; }
}
за основу взят конфиг
https://gitlab.com/gitlab-org/gitlab-recipes/-/blob/master/web-server/nginx/gitlab-omnibus-nginx.conf Проверяем на ошибки и применяем настройки:
nginx -t
nginx -s reload
Всё, по вашему доменному имени вы должны увидеть окно логина
Постараюсь дополнить статью информацией о сертификатах SSL.