Назад | Перейти на главную страницу

Самостоятельный хостинг gitlab с использованием caddy

Я пытаюсь установить и разместить 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.