caddy を使用した gitlab のセルフホスト

caddy を使用した gitlab のセルフホスト

GitLab をインストールしてホストしようとしていますが、Nginx が必要で、それを使用します。これは問題ありませんが、Caddy を使用していますが、Caddy は Nginx とうまく連携しないため、Nginx を起動するには無効にする必要があります。

私は Caddy、特に組み込みのファイル サーバーがとても気に入っているので、Nginx に完全に切り替えるという選択肢はありません。また、非標準ポートで Nginx を使用するためにファイアウォール リダイレクトを実行することにも興味がありません。

Caddyなど、nginxなしでgitlabを使用する方法はありますか?公式ドキュメントはなく、オンラインフォーラムで最後に試したものは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 ソケットをリッスンします。幸いなことに、次のように Caddyfile でソケットへのリバース プロキシを設定することができます。

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

caddyユーザーがグループに属しているかどうかgitgitlab-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)

私は Ubuntu 20.04 上の公式 caddy および GitLab-EE パッケージでのみテストしており、API 経由で Caddy を構成していませんが、これは GitLab の標準インストールでは機能するはずです。

関連情報