Autohospedaje de gitlab usando caddy

Autohospedaje de gitlab usando caddy

Estoy intentando instalar y alojar gitlab, pero requiere y extrae Nginx. Lo cual estaría bien, excepto que uso Caddy y Caddy no funciona bien con Nginx y debe desactivarse para que Nginx se inicie.

Me gusta mucho Caddy, especialmente el servidor de archivos integrado, por lo que cambiar completamente a Nginx no es una opción. Tampoco tengo ningún interés en intentar realizar redirecciones de firewall para intentar usar Nginx en un puerto no estándar.

¿Hay alguna forma de utilizar gitlab sin nginx, por ejemplo, Caddy? No hay documentación oficial y lo último que probé en un foro en línea rompió por completo mi instalación de gitlab y solo se refería a Apache, que no estoy usando.

Mi sistema es un servidor en la nube dedicado que ejecuta Ubuntu 20.04.

Respuesta1

La respuesta de unixandria es correcta para cuando es de. Las cosas han cambiado un poco desde entonces.

Ahora existe esta sección oficial sobreDocumentos de GitLab.

Además, GitLab 13.5 cambió la ubicación del socket Unix, por lo que el Caddyfile debería tener esto ahora:

git.example.com {
    reverse_proxy unix//var/opt/gitlab/gitlab-workhorse/sockets/socket
}

Respuesta2

Finalmente lo resolví.

GitLab no escucha en un puerto sino en un socket Unix. Afortunadamente, podemos configurar Caddy para que invierta el proxy en el socket en Caddyfile de la siguiente manera:

git.example.com {
     reverse_proxy * unix//var/opt/gitlab/gitlab-workhorse/socket
}

Asegúrese de que caddyel usuario esté en gitgrupos gitlab-wwwy viceversa.

En /etc/gitlab/gitlab.rb asegúrese de que estén configurados como tal:

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'

Entonces hazlo

sudo gitlab-ctl reconfigure
sudo systemctl restart caddy (or restart Caddy manually if you don't use systemd)

Solo probé con los paquetes oficiales caddy y GitLab-EE en Ubuntu 20.04, y no configuro Caddy a través de API, pero esto debería funcionar para instalaciones estándar de GitLab.

información relacionada