git轻量级gitea介绍

Gitea 是一个轻量级、自托管的 Git 服务平台,类似于 GitHub / GitLab,但更加简洁、资源占用更低,适合私有化部署和中小规模团队。

其核心定位可以理解为:

“自建 GitHub + DevOps 基础能力(轻量版)”

5e0b75801173a1ba77862f77b60cf634.png


1. 核心特性

1.1 基础 Git 能力

  • 仓库管理(public/private)
  • 分支 / Tag 管理
  • Pull Request / Merge Request
  • Code Review
  • Issue / Milestone / Label

👉 本质:一个完整的 Git 协作平台


1.2 用户与权限体系

  • 用户 / 组织 / 团队
  • RBAC 权限控制
  • SSH Key / Token 管理
  • Webhook 支持(CI/CD 集成)

1.3 内置 DevOps 能力

较新版本已集成:

  • Gitea Actions(类 GitHub Actions)
  • CI/CD Pipeline
  • Runner 支持(自建执行器)

👉 可替代:

  • Jenkins(部分场景)
  • GitHub Actions(私有化)

2.轻量级优势(关键差异点)

维度 Gitea GitLab
资源占用 极低(< 512MB 可跑) 较高(建议 4GB+)
部署复杂度 简单 复杂
数据库 SQLite / MySQL / PostgreSQL PostgreSQL
启动速度 秒级 分钟级

👉 SRE视角:非常适合边缘节点 / 小型集群 / 内网环境


3. 架构设计(核心)

3.1 逻辑架构

flowchart TD
    User[用户 / 开发者]
    Web[Web UI / API]
    Gitea[Gitea Server]
    Git[Git Repo Storage]
    DB[(Database)]
    Runner[CI Runner]
    Artifact[Artifact/Logs]

    User --> Web
    Web --> Gitea
    Gitea --> Git
    Gitea --> DB
    Gitea --> Runner
    Runner --> Artifact

3.2 核心组件说明

组件 作用
Gitea Server 核心服务(Go 单二进制)
Git Backend 实际仓库存储
Database 元数据(用户、权限、issue)
Runner CI/CD 执行器
Webhook 外部系统触发

4. 部署模式

4.1 单机部署(最常见)

1
2
3
4
5
6
docker run -d \
--name gitea \
-p 3000:3000 \
-p 222:22 \
-v /data/gitea:/data \
gitea/gitea:latest

特点:

  • 快速上线
  • 适合 PoC / 小团队

4.2 docker-compose(推荐)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "3"

services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
ports:
- "3000:3000"
- "222:22"
volumes:
- ./data:/data
environment:
- USER_UID=1000
- USER_GID=1000

4.3 高可用架构(生产)

flowchart LR
    LB[负载均衡]
    G1[Gitea Node1]
    G2[Gitea Node2]
    DB[(MySQL/PostgreSQL)]
    NFS[(共享存储)]

    LB --> G1
    LB --> G2
    G1 --> DB
    G2 --> DB
    G1 --> NFS
    G2 --> NFS

关键点:

  • DB 外置(MySQL / PostgreSQL)
  • Repo 存储共享(NFS / Ceph)
  • 多实例无状态化