Hosting
Gitea 自建 Git 服务
使用 Gitea 搭建轻量级自托管 Git 服务,包括安装、配置、备份与日常管理。
- 正在选择 Git 托管方案的团队负责人或开发者
- 知道 Git 远端操作的基础知识
- 理解代码托管的基本需求
- 只对比功能列表而忽略运维成本
- 自建方案选型后维护能力跟不上的风险
引用与延伸阅读
- Docs.gitea.com [博客]
- github.com — Gitea [讨论]
学完这篇你会掌握什么
- 理解 Gitea 自建 Git 服务 的核心作用和适用场景
- 掌握 Gitea 自建 Git 服务 的基本用法和常用参数
- 使用 Gitea 搭建轻量级自托管 Git 服务,包括安装、配置、备份与日常管理。
- 理解 概述 相关的概念
- 掌握 安装 相关的操作
- 知道在什么场景下使用该命令,什么场景下避免使用
先想一个问题
你在选择或配置 Git 托管方案——可能是要自建 Gitea,也可能是在对比 GitHub、GitLab、Gitee 的功能差异和成本。你不确定哪个方案最适合你的团队。
概述
Gitea 是一个用 Go 编写的轻量级自托管 Git 服务。相比 GitLab CE,Gitea 资源占用极低(128MB 内存即可运行),适合小团队或个人使用。
安装
方式一:二进制安装(推荐)
# 下载最新二进制文件
wget -O gitea https://dl.gitea.com/gitea/1.22/gitea-1.22-linux-amd64
chmod +x gitea
# 创建运行用户
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git git
# 创建必要目录
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea
sudo chmod -R 750 /var/lib/gitea
# 启动
sudo -u git ./gitea web
方式二:Docker 部署
# docker-compose.yml
version: "3"
services:
gitea:
image: gitea/gitea:1.22
ports:
- "3000:3000"
- "222:22"
volumes:
- ./gitea-data:/data
restart: always
docker compose up -d
初始配置
浏览器访问 http://localhost:3000,首次访问进入安装页面:
| 配置项 | 推荐值 |
|---|---|
| 数据库 | SQLite(小团队)或 PostgreSQL |
| 域名 | 自定义域名或 IP |
| SSH 端口 | 222(如果使用 Docker 端口映射) |
| HTTP 端口 | 3000 |
| 管理员账号 | 立即创建 |
日常管理
备份
# Gitea 内置备份命令
sudo -u git ./gitea dump -c /etc/gitea/app.ini
# 备份文件包含:数据库、仓库数据、配置、日志
# 输出在 /var/lib/gitea/data/
升级
# 1. 停止服务
sudo systemctl stop gitea
# 2. 备份
sudo -u git ./gitea dump
# 3. 替换二进制文件
cp gitea-old gitea-new
# 4. 重启
sudo systemctl start gitea
配置
# /etc/gitea/app.ini
[server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/
HTTP_PORT = 3000
SSH_DOMAIN = git.example.com
[database]
DB_TYPE = sqlite3
PATH = /var/lib/gitea/data/gitea.db
[mailer]
ENABLED = true
SMTP_ADDR = smtp.example.com
与其他方案对比
| 特性 | Gitea | GitLab CE | GitHub |
|---|---|---|---|
| 内存要求 | ~128MB | ~4GB | SaaS |
| 安装复杂度 | 低 | 高 | 无需安装 |
| CI/CD | 内置 Actions | 内置 CI | Actions |
| 代码审查 | 支持 | 支持 | 支持 |
| 团队管理 | 基础 | 丰富 | 丰富 |
| 迁移工具 | 有 | 有 | 有 |
继续学习
hosting/self-hosted-git— 自建 Git 服务概览hosting/platform-comparison— 托管平台对比hosting/github-deep-dive— GitHub 深度功能
给你的练习
- 在一个测试仓库中练习该命令的基本用法,观察执行前后的状态变化
- 尝试该命令的不同参数选项,对比输出结果的差异
- 模拟一个需要使用该命令的实际场景,完整走一遍操作流程
延伸阅读
沿着同一主题继续深入: