Selbst hosten von Gitlab mit Caddy

Selbst hosten von Gitlab mit Caddy

Ich versuche, Gitlab zu installieren und zu hosten, aber es erfordert und lädt Nginx herunter. Das wäre in Ordnung, aber ich verwende Caddy und Caddy funktioniert nicht gut mit Nginx und muss deaktiviert werden, damit Nginx überhaupt gestartet werden kann.

Ich mag Caddy sehr, insbesondere den integrierten Dateiserver. Daher ist ein vollständiger Wechsel zu Nginx keine Option. Ich habe auch kein Interesse daran, Firewall-Umleitungen durchzuführen, um zu versuchen, Nginx auf einem nicht standardmäßigen Port zu verwenden.

Gibt es eine Möglichkeit, Gitlab ohne Nginx zu verwenden, z. B. Caddy? Es gibt keine offizielle Dokumentation und das letzte, was ich in einem Online-Forum versucht habe, hat meine Gitlab-Installation komplett zerstört und betraf nur Apache, das ich nicht verwende

Mein System ist ein dedizierter Cloud-Server, auf dem Ubuntu 20.04 läuft.

Antwort1

Die Antwort von unixandria ist für den Zeitpunkt, von dem sie stammt, korrekt. Seitdem hat sich einiges geändert.

Es gibt jetzt diesen offiziellen Bereich aufGitLab-Dokumente.

Außerdem hat GitLab 13.5 den Speicherort des Unix-Sockets geändert, sodass das Caddyfile jetzt Folgendes enthalten sollte:

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

Antwort2

Ich habe es endlich herausgefunden.

GitLab hört nicht auf einem Port, sondern auf einem Unix-Socket. Glücklicherweise können wir Caddy so konfigurieren, dass er einen Reverse-Proxy zum Socket im Caddyfile verwendet, und zwar wie folgt:

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

Stellen Sie sicher, dass der Benutzer in Gruppen caddyist und umgekehrt.gitgitlab-www

Stellen Sie in /etc/gitlab/gitlab.rb sicher, dass Folgendes wie folgt konfiguriert ist:

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'

Dann mach

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

Ich habe nur mit den offiziellen Caddy- und GitLab-EE-Paketen unter Ubuntu 20.04 getestet und konfiguriere Caddy nicht über die API, aber dies sollte für Standardinstallationen von GitLab funktionieren.

verwandte Informationen