как установить gitlab на сервер directadmin

У меня есть VPS с directadmin и несколькими другими сайтами, я хочу установить gitlab, не повреждая другие сайты. в настоящее время пробовал, но он будет отображаться на всех доменах. кажется, что external_url полностью игнорируется.


person Pezhvak    schedule 09.03.2018    source источник


Ответы (2)


Мне потребовался день, чтобы понять, как это сделать, и я поделюсь этим с другими, надеюсь, это поможет!

если вы новичок, как я, вы должны знать эти две вещи:

1- все конфигурации находятся в /etc/gitlab/gitlab.rb

2- каждый раз, когда вы меняете gitlab.rb, вы должны запускать gitlab-ctl reconfigure и gitlab-ctl restart

хорошо... проблема в том, что gitlab по умолчанию поставляется с nginx, и это нарушит вашу настройку apache. чтобы это исправить.

1- откройте файл конфигурации gitlab.rb: nano /etc/gitlab/gitlab.rb

2- убедитесь, что ваш external_url настроен правильно, например: gitlab.your-domain.tld

3- найти и поставить nginx['enable'] = false, по умолчанию он закомментирован, убрать # с начала строки, чтобы раскомментировать.

4- найдите и установите web_server['external_users'] = ['admin'] это очень важно, так как directadmin не использует пользователя apache по умолчанию «www-data»

5- найти и установить gitlab_workhorse['listen_network'] = "tcp"

6- и, наконец, установить gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"

НЕОБЯЗАТЕЛЬНО для установки smtp-сервера создайте учетную запись электронной почты в своем directadmin, а затем установите ее, обновив следующие конфигурации:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.domain.tld"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "email_password_here"
gitlab_rails['smtp_domain'] = "domain.tld"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = false

теперь сохраните файл и запустите gitlab-ctl reconfigure, затем gitlab-ctl restart, чтобы изменения вступили в силу.

теперь вы готовы к работе с gitlab, все, что вам нужно сделать, это создать поддомен, который вы использовали, например: gitlab для своего домена. после того, как вы создали поддомен в своем directadmin, перейдите на уровень администратора> Пользовательские конфигурации HTTPD, щелкните свой домен и вставьте следующий текст в пустую текстовую область: (обратите внимание, что вы должны изменить gitlab.your-domain.tld на то, что вы установили для external_url в gitlab.rb:

  ServerName gitlab.your-domain.tld
  ServerSignature Off

  ProxyPreserveHost On

  # Ensure that encoded slashes are not decoded but left in their encoded state.
  # http://doc.gitlab.com/ce/api/projects.html#get-single-project
  AllowEncodedSlashes NoDecode

  <Location />
    Order deny,allow
    Allow from all

    #Allow forwarding to gitlab-workhorse
    ProxyPassReverse http://127.0.0.1:8181
    ProxyPassReverse http://gitlab.your-domain.tld/
  </Location>

  # Apache equivalent of nginx try files
  # http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
  # http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
  RewriteEngine on

  #Forward all requests to gitlab-workhorse except existing files like error documents
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_URI} ^/uploads/.*
  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]

  # needed for downloading attachments
  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

  #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
  ErrorDocument 404 /404.html
  ErrorDocument 422 /422.html
  ErrorDocument 500 /500.html
  ErrorDocument 502 /502.html
  ErrorDocument 503 /503.html

это оно! теперь вы сможете использовать настройки gitlab, не нарушая работу других сайтов на вашем сервере. Надеюсь, поможет!

person Pezhvak    schedule 09.03.2018

При использовании ответа Пежвака возможно, что все файлы CSS en JS не загружаются. Я исправил это, изменив часть конфигурации HTTPD:

 #Forward all requests to gitlab-workhorse except existing files like error documents
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_URI} ^/uploads/.* [OR]
 RewriteCond %{REQUEST_URI} ^/assets/.*
  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]
person Zeno    schedule 11.11.2019