Files

2.8 KiB
Raw Permalink Blame History

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 目录(含数据库和所有仓库)

相关链接