用途:面向 Gitea / Forgejo 自托管 Git 服务的日常运维与管理,覆盖安装部署、配置、命令行管理、用户与仓库操作、SSH 设置、备份恢复和故障排查。Forgejo 是 Gitea 的社区分支,app.ini 格式与 CLI 命令一致,将 gitea 二进制替换为 forgejo 即可通用。
部署形态:单二进制原生安装或 Docker 镜像(gitea/gitea、codeberg.org/forgejo/forgejo)。原生安装使用 gitea.service,配置在 /etc/gitea/app.ini,数据目录 /var/lib/gitea,日志用 journalctl -u gitea;Docker 无 systemd 单元,配置在 /data/gitea/conf/app.ini,数据卷 /data。默认端口 3000(HTTP)、22 或 2222(SSH)。
主要能力:服务状态与启停(systemctl status|start|stop|restart gitea);admin CLI 创建首个管理员、改密、列出用户、创建与迁移仓库、重建 git hooks 与 SSH 密钥、管理 OAuth2 认证源;gitea dump 生成含仓库、数据库、配置与附件的 zip,gitea restore 恢复;gitea migrate 执行数据库迁移;gitea dump-config 输出合并后的有效配置。
使用方式:首次部署前先用 gitea admin user create --username admin --password <pass> --email admin@example.com --admin 建管理员;升级二进制前先停服务并运行 gitea migrate -c /etc/gitea/app.ini 再启动;SSH 异常时运行 gitea admin regenerate keys 重建 ~git/.ssh/authorized_keys。健康检查可用 systemctl is-active gitea、curl -sI http://localhost:3000、curl -s http://localhost:3000/api/healthz。
限制与注意:ROOT_URL 必须精确匹配公开地址并带结尾斜杠,否则 OAuth2 回调、webhook 签名与头像链接会静默失败;LFS 默认未启用,需设 LFS_START_SERVER = true 并配置 LFS_CONTENT_PATH;自动化部署须在首次启动前设 INSTALL_LOCK = true,否则未认证访问者可成为首个管理员;Docker 卷布局与原生不同,混用挂载策略会导致权限问题;Forgejo 未来版本可能分化,使用前应查其变更日志。其余细节暂未提供。