2.8 KiB
2.8 KiB
Gitea 部署指南
2026-08-13 记录。自托管轻量 Git 服务,个人代码仓库,Web 用 Caddy 反代套 HTTPS。域名域名
git.hyonglin.top。
选型
| 方案 | 是否选用 | 原因 |
|---|---|---|
| Gitea | ✅ | Go 单二进制,轻量(~50–100MB),功能全(仓库/Issue/PR/Actions/Package),社区活跃、安全更新及时 |
| Gogs | ❌ | Gitea 的 fork 前身,开发停滞,新项目不推荐 |
| 裸仓库+SSH | ❌ | 无 Web 界面 |
Gitea 是 Gogs 的 fork(社区驱动),新项目无脑选 Gitea;若更在意「纯社区治理」可选 Forgejo。
docker-compose 服务
silverbullet/docker-compose.yml:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__server__ROOT_URL=https://git.hyonglin.top/
- GITEA__server__DOMAIN=git.hyonglin.top
- GITEA__server__SSH_DOMAIN=git.hyonglin.top
- GITEA__server__SSH_PORT=2222
ports:
- "2222:22" # SSH clone 用(服务器 22 已被 SSH 占用,故映射 2222)
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- Web(3000)不映射端口,由 Caddy 反代
gitea:3000 - SSH 需映射
2222:22,因为宿主机 22 被 OpenSSH 占用
Caddy 反代
silverbullet/Caddyfile 加一段:
# Git 服务
git.hyonglin.top {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
reverse_proxy gitea:3000
}
compose 部署
docker compose up -d gitea
docker compose up -d --force-recreate caddy # 让 caddy 加载新站点
首次安装(web 向导)
打开 https://git.hyonglin.top 走安装向导:
- 数据库:默认
SQLite3(个人用足够) - 域名/URL:环境变量已预设(
git.hyonglin.top),保持默认 - SSH 端口:
2222 - 管理员账号:设置用户名/邮箱/密码
- 点「安装 Gitea」
验证安装完成:
# app.ini 应已锁定安装
grep INSTALL_LOCK /home/ubuntu/silverbullet/gitea/gitea/conf/app.ini # → true
# 确认管理员存在
docker compose exec -T gitea su git -c "gitea admin user list"
使用
- Web:登录
https://git.hyonglin.top建仓库 - HTTPS clone:
git clone https://git.hyonglin.top/用户名/仓库.git - SSH clone:
git clone git@git.hyonglin.top:2222/用户名/仓库.git(需安全组放行 TCP 2222) - 备份:备份
silverbullet/gitea目录(含数据库和所有仓库)
相关链接
- 主页与Caddy反向代理 — git.hyonglin.top 的 HTTPS 入口
- frp内网穿透部署指南 — 本服务器其他自建服务
- Gitea 官方文档