托管比 gitlab 更轻便的 git 服务器,无需 ssh

托管比 gitlab 更轻便的 git 服务器,无需 ssh

我有一个资源有限的 VPS,运行着 nginx 和 ssh。我负担不起为其添加更多资源,以便它能够运行 gitlab(gitlab 需要 4 GB 的 RAM)。到目前为止,我一直通过 ssh 将其用作 git 服务器,但现在在工作中,我无法通过代理进行 ssh(并且不想绕过代理)。

我想知道有哪些 git 托管解决方案适合我,以便我至少可以从我的个人 git 存储库克隆。一个更轻量级(可能仅限 CLI)的 gitlab 替代方案将是理想的选择。

存储库是否保持私密并不重要,但最好这样做。

答案1

Git 带有自己的git-http-backendCGI 应用程序,它提供通过 HTTP(S) 进行的获取和推送。您可以在其手册页中找到几种最常见 Web 服务器的说明。身份验证也是通过 Web 服务器(例如 HTTP Basic)进行的。

nginx + fcgiwrap 的只读配置示例可能是:

location / {
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME   /usr/lib/git-core/git-http-backend;
    fastcgi_param  GIT_PROJECT_ROOT  /home/grawity/pub/git;
    fastcgi_param  PATH_INFO         $uri;
    fastcgi_param  REMOTE_USER       $remote_user;
    fastcgi_pass   unix:/run/fcgiwrap.socket;
}

请注意,git-http-backend 提供仅有的Git 远程操作,例如 clone/fetch/push。如果你还需要一个图形化 Web 界面来浏览您的存储库,必须单独安装。常见的图形界面是 cgit、gitweb 和 Gitea/Gogs。

相关内容