Установка GitLab совместно с уже работающим Nginx

Nov 08, 2022 21:28


Установка на 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.

#curl, #mcedit, #apt

Previous post
Up