Я пытаюсь установить и разместить gitlab, но для этого требуется Nginx. Это было бы хорошо, за исключением того, что я использую Caddy, а Caddy плохо работает с Nginx и должен быть отключен, чтобы Nginx даже запустился.
Мне очень нравится Caddy, особенно встроенный файловый сервер, поэтому просто полностью перейти на Nginx - не вариант. Я также не заинтересован в перенаправлении брандмауэра, чтобы попытаться использовать Nginx на нестандартном порту.
Есть ли способ использовать gitlab без nginx, например Caddy? Официальной документации нет, и последнее, что я пробовал на онлайн-форуме, полностью сломало мою установку gitlab и относилось только к Apache, который я не использую
Моя система - это выделенный облачный сервер под управлением Ubuntu 20.04.
Я наконец-то понял.
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.