Gitea:轻量级的自托管Git服务

欢迎光临我的个人博客查看最新文章:river's blog
在当今的软件开发世界中,代码托管平台是必不可少的工具。而对于寻求自主控制和数据隐私的团队与开发者来说,Gitea提供了一个完美的解决方案。

1、 Gitea简介

Gitea(发音为ɡɪˈtiː)是一款采用Go语言编写的轻量级自托管Git服务,支持运行在Linux、macOS、Windows乃至树莓派等多种平台上。它与GitHub、GitLab等功能类似,提供了代码托管、团队协作、问题跟踪、代码审查等开发者所需的核心功能。

Gitea最初是从Gogs项目分支而来,其名称是"Gi"(表示Git)和"tea"(茶)的组合,意为"一杯茶的Git服务",形象地体现了其轻量级和易用性的特点。

官网:Gitea - 轻量级全功能 DevSecOps 平台

1.1 主要特性

Gitea具备以下突出特性:

  • 轻量快速:得益于Go语言的高效,Gitea启动速度快,资源占用极低,甚至可以在树莓派等资源受限的设备上流畅运行。

  • 功能丰富:提供Pull Request、Issue跟踪、Wiki、Webhook、代码审查等现代代码托管平台的核心功能。

  • 易于部署:通常只需一个二进制文件即可完成安装,开箱即用。

  • 完全开源:采用MIT许可证,社区驱动,透明开放。

  • 跨平台支持:支持Linux、macOS、Windows及ARM架构。

  • CI/CD集成:通过Gitea Actions支持CI/CD功能,兼容GitHub Actions的YAML格式工作流。

  • 多包管理支持:支持超过20种不同类型的公共或私有软件包管理。

1.2 Gitea与GitLab的简要对比

特性 Gitea GitLab
资源占用 (轻量级,1核2G内存即可运行) 高(建议至少4核8G内存)
功能焦点 代码托管与协作(核心功能) 全栈DevOps(功能全面)
部署维护 简单(依赖少,升级方便) 相对复杂(需较多技术投入)
适用场景 个人开发者、中小团队、资源有限环境 大型团队、企业,需要全流程DevOps

Gitea非常适合小型团队自托管个人项目管理 以及教育或实验室环境,它是一个低成本且能有效保护代码私密性的开源解决方案。

2、安装部署

2.1 安装准备

在安装Gitea之前,需要安装配置数据库,此处以MySQL为例。

创建MySQL用户及数据库:

复制代码
# 创建用户 gitea
CREATE USER 'gitea' IDENTIFIED BY 'gitea';
# 创建数据库giteadb
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
# 将数据库上的所有权限授予gitea用户
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
FLUSH PRIVILEGES;

2.2 MacOS安装

Gitea提供了多种安装方式,以下介绍两种最常用的方法:二进制文件安装和Docker安装。

以MacOS为例:

复制代码
# 安装
brew install gitea

# 启动服务 
brew services start gitea

2.3 Docker安装

创建docker-compose.yaml文件:

复制代码
version: "3"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    environment:
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=giteadb
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    volumes:
      - /data/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: gitea
      MYSQL_USER: gitea
      MYSQL_PASSWORD: gitea
      MYSQL_DATABASE: giteadb
    volumes:
      - /data/mysql:/var/lib/mysql

在包含docker-compose.yaml文件的目录下运行:

复制代码
docker-compose up -d

安装部署具体可参考:安装 | Gitea Documentation

3、 初始化及基本使用

安装完成并且服务启动后,需要进行初始配置才能使用Gitea。

通过Web界面完成安装

在浏览器中访问服务器的IP地址或域名(默认端口3000),例如http://your-server-ip:3000。你将看到Gitea的初始化安装界面

完成初始配置后,进入首页

Gitea安装配置完成后,你就可以开始使用了:

  1. 创建仓库:登录后,点击页面右上角的"+"号,选择"新建仓库",填写仓库名称、描述并选择可见性(公开或私有)。

  2. 管理团队:在组织或仓库的设置中,可以添加团队成员并分配不同的权限(如只读、读写、管理员)。

  3. 使用Pull Request:开发者可以Fork仓库或创建分支进行开发,然后通过Pull Request请求合并代码,进行代码审查。

  4. 问题跟踪:使用Issues功能来跟踪Bug、提出新功能想法或管理任务。

  5. 配置SSH密钥:在"用户设置" -> "SSH密钥"中添加你的公钥,以便通过SSH协议与仓库交互。

创建仓库

仓库详情

然后就可以使用git命令进行操作了

如克隆仓库到本地

复制代码
git clone http://127.0.0.1:3000/river106/test-project.git

更多功能,大家可自行安装探索~

4、 总结

Gitea以其轻量级、资源占用低、部署简单 的特点,成为了自托管Git服务的优秀选择。它特别适合个人开发者、中小型团队 以及任何希望完全控制自己代码数据的用户。

通过本文介绍的二进制或Docker方式,你可以在短时间内快速搭建起一个功能完善的代码托管平台,享受类似GitHub的开发协作体验,同时保证数据的私有性和安全性。

无论是为了摆脱对第三方平台的依赖,还是为了在内网搭建高效的协作环境,Gitea都是一杯值得你细细品味的"好茶"。

相关推荐
何中应1 天前
使用SSH地址拉取远程仓库代码报下面的错误
git
何中应1 天前
Git本地仓库命令补充
git
sun0077001 天前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份
春日见2 天前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
路由侠内网穿透.2 天前
本地部署代码托管解决方案 Gitea 并实现外部访问( Windows 版本)
运维·服务器·网络协议·gitea
明月心9523 天前
git remote add 用法
gitlab
stevenzqzq3 天前
git 常用操作
大数据·git
Curvatureflight3 天前
Git工作流最佳实践:从混乱到优雅
git
wu~9703 天前
GitHub永不遗忘,使用git push -f来覆盖的提交依旧保留
git·github