![托管比 gitlab 更轻便的 git 服务器,无需 ssh](https://linux22.com/image/1568779/%E6%89%98%E7%AE%A1%E6%AF%94%20gitlab%20%E6%9B%B4%E8%BD%BB%E4%BE%BF%E7%9A%84%20git%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E6%97%A0%E9%9C%80%20ssh%20.png)
我有一个资源有限的 VPS,运行着 nginx 和 ssh。我负担不起为其添加更多资源,以便它能够运行 gitlab(gitlab 需要 4 GB 的 RAM)。到目前为止,我一直通过 ssh 将其用作 git 服务器,但现在在工作中,我无法通过代理进行 ssh(并且不想绕过代理)。
我想知道有哪些 git 托管解决方案适合我,以便我至少可以从我的个人 git 存储库克隆。一个更轻量级(可能仅限 CLI)的 gitlab 替代方案将是理想的选择。
存储库是否保持私密并不重要,但最好这样做。
答案1
Git 带有自己的git-http-backend
CGI 应用程序,它提供通过 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。