Hosting

Gitea 自建 Git 服务

使用 Gitea 搭建轻量级自托管 Git 服务,包括安装、配置、备份与日常管理。

适合谁看
  • 正在选择 Git 托管方案的团队负责人或开发者
前置知识
  • 知道 Git 远端操作的基础知识
  • 理解代码托管的基本需求
常见风险
  • 只对比功能列表而忽略运维成本
  • 自建方案选型后维护能力跟不上的风险

概述

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

与其他方案对比

特性GiteaGitLab CEGitHub
内存要求~128MB~4GBSaaS
安装复杂度无需安装
CI/CD内置 Actions内置 CIActions
代码审查支持支持支持
团队管理基础丰富丰富
迁移工具

继续学习

  1. hosting/self-hosted-git — 自建 Git 服务概览
  2. hosting/platform-comparison — 托管平台对比
  3. hosting/github-deep-dive — GitHub 深度功能