Files

104 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`:
```yaml
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` 加一段:
```caddyfile
# Git 服务
git.hyonglin.top {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
reverse_proxy gitea:3000
}
```
## compose 部署
```bash
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」
验证安装完成:
```bash
# 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 官方文档](https://docs.gitea.com/zh-cn/)