EGGSYCHEN / BLOG

Git 的技术实现

git.eggsychen.asia 要私有库和网页。为什么不是 GitLab、不是裸仓库,见 四个站的选型

进程

Forgejo 用系统用户 git 跑。HTTP 只绑 127.0.0.1:3000,Caddy 按 Host 反代。数据库是数据目录里一个 SQLite 文件。安装锁打开,避免有人走初始化向导。信任的反向代理网段写成回环,不认来路不明的 X-Forwarded-For

关掉 Actions、包仓库、公开注册、邮件、远程头像、镜像同步。网页必须登录,库默认私有。离线模式打开,少对外拉资源。

SSH 不另开口

系统 SSH 已在 22。Forgejo 用同一个 git 用户和授权密钥,自己不再起 SSH 服务。防火墙少一条规则,也不和系统登录抢端口。

推送两条路:账号里登记公钥,走系统 Git 协议;或者 HTTPS 配一把只授仓库读写的令牌,不用登录口令当 Git 密码。令牌可以随时作废。

边界

CI Runner 不上,这台机没有编译余量。LFS 不开,大文件走网盘。包仓库不开,少占盘。能 clone、能看 diff、能私人托管;不做成迷你 GitHub。