Я пытаюсь установить и разместить gitlab, но он требует и тянет Nginx. Что было бы хорошо, если бы не Caddy, а Caddy не работает с Nginx и его нужно отключить, чтобы Nginx вообще запустился.
Мне очень нравится Caddy, особенно встроенный файловый сервер, поэтому просто перейти полностью на Nginx — не вариант. Мне также неинтересно пытаться делать перенаправления брандмауэра, чтобы попытаться использовать Nginx на нестандартном порту.
Есть ли способ использовать gitlab без nginx, например Caddy? Официальной документации нет, а последнее, что я попробовал на онлайн-форуме, полностью сломало мою установку gitlab и касалось только Apache, который я не использую
Моя система представляет собой выделенный облачный сервер под управлением Ubuntu 20.04.
решение1
Ответ от unixandria правильный, когда это из. С тех пор все немного изменилось.
Теперь есть этот официальный раздел наДокументы GitLab.
Кроме того, GitLab 13.5 изменил расположение сокета unix, поэтому в Caddyfile теперь должно быть следующее:
git.example.com {
reverse_proxy unix//var/opt/gitlab/gitlab-workhorse/sockets/socket
}
решение2
Я наконец-то понял.
GitLab не слушает порт, а сокет Unix. К счастью, мы можем настроить Caddy на обратный прокси-сервер для сокета в Caddyfile следующим образом:
git.example.com {
reverse_proxy * unix//var/opt/gitlab/gitlab-workhorse/socket
}
Убедитесь, что caddy
пользователь состоит в git
группах gitlab-www
и наоборот.
В /etc/gitlab/gitlab.rb убедитесь, что они настроены следующим образом:
nginx['enable'] = false
web_server['external_users'] = ['caddy']
web_server['username'] = 'gitlab-www'
web_server['group'] = 'gitlab-www'
web_server['uid'] = nil
web_server['gid'] = nil
web_server['shell'] = '/bin/false'
web_server['home'] = '/var/opt/gitlab/nginx'
Тогда сделай
sudo gitlab-ctl reconfigure
sudo systemctl restart caddy (or restart Caddy manually if you don't use systemd)
Я тестировал только официальные пакеты caddy и GitLab-EE на Ubuntu 20.04 и не настраивал Caddy через API, но это должно работать для стандартных установок GitLab.