我有一个资源有限的 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。