十分钟,带你搭建一个自己的Git系统

Gitea 是一个轻量级的开源代码托管平台,基于 Go 语言开发,支持 Git 版本控制。它类似于 GitHub 或 GitLab,但更注重轻量化、低资源占用和快速部署,适合个人开发者、小团队或企业内部使用。

Gitea 的名称来源于 Gittea (茶)的结合。Git 直接表明它是一个基于 Git 版本控制系统 的代码托管平台,功能定位清晰。 Tea 则象征轻量、简洁和友好,暗喻其低资源占用易用性,如同茶一样"小而美"。

Gitea历史背景

Gitea 最初是从另一个开源项目 Gogs(Go Git Service)分叉而来。Gogs 因开发进度缓慢,社区成员于 2016 年创建了 Gitea,目标是更开放、更活跃的协作。

新名称 Gitea 既保留了与 Git 的关联,又通过 "tea" 传递了社区驱动的友好形象,与 Gogs 形成区分。

Gitea功能与优势

Gitea的主要功能有如下几点:

代码托管。支持 Git 仓库管理,提供仓库克隆、推送、分支管理等功能。

协作开发。支持 Issue 跟踪、Pull Request(PR)、代码审查等协作工具。

权限管理。可配置团队和用户权限,保障代码安全。

集成能力。支持 Webhook、CI/CD 集成(需配合其他工具)等。

核心优势主要有:

轻量高效。资源占用低,适合低配置服务器。

跨平台。支持 Linux、Windows、macOS 等多种系统。

开源免费。代码完全开源,可自由修改和扩展。

社区驱动。由活跃的开源社区维护,更新频繁。

一键部署。通过二进制文件或 Docker 快速部署。

Linux环境下部署Gitea

部署环境

操作系统:Ubuntu 20.04

CPU、内存:2核、2G

依赖其他工具:Docker、Git、MySQL/PostgreSQL/SQLite

:推荐 SQLite 简化部署,但是本教程使用MySQL部署,另外本教程默认Docker正常和MySQL默认能够进行远程连接,具体按照文档可参看https://docs.gitea.com/zh-cn/category/installation

步骤 1:使用Docker安装并启动Gitea

Docker安装命令:

shell 复制代码
docker pull gitea/gitea

Docker启动Gitea:

shell 复制代码
docker run -p 3000:3000 -d gitea/gitea

步骤 2:准备Gitea需要的环境

Gitea的环境准备主要有两个部分:MySQL建库和创建主安装目录。

1)进入MySQL,创建数据库

sql 复制代码
create database gitea

2)进入到运行Gitea的Docker镜像内,创建目录并赋予权限

shell 复制代码
docker exec -it [容器ID] /bin/bash

cd /opt 

mkdir gitea

chmod 777 gitea

步骤 3:进入并配置Gitea

1)访问 http://<服务器IP>:3000,进入安装页面

2)填写配置

数据库类型 :SQLite3(默认路径 /var/lib/gitea/data/gitea.db

应用 URL :填写最终访问地址(如 https://gitea.example.com

管理员账号:设置管理员账户信息。

3)点击 立即安装 完成初始化

总结一下:就是除了数据库配置和域名配置,其他基本上使用默认值就可以了。

步骤 4:开始使用

访问自己的部署地址,登录管理员账户,创建仓库并测试推送代码。

常见问题

确保 /var/lib/gitea 目录归属 gitea 用户,或者提前创建好相关目录,其次是端口冲突 ,若 3000 端口被占用,修改 app.ini 中的 HTTP_PORT

通过以上步骤,您可以在 Linux 系统上快速部署一个高性能的 Gitea 代码托管平台。

相关推荐
brzhang41 分钟前
AI Agent 干不好活,不是它笨,告诉你一个残忍的现实,是你给他的工具太难用了
前端·后端·架构
brzhang1 小时前
一文说明白为什么现在 AI Agent 都把重点放在上下文工程(context engineering)上?
前端·后端·架构
Roye_ack1 小时前
【项目实战 Day9】springboot + vue 苍穹外卖系统(用户端订单模块 + 商家端订单管理模块 完结)
java·vue.js·spring boot·后端·mybatis
AAA修煤气灶刘哥3 小时前
面试必问的CAS和ConcurrentHashMap,你搞懂了吗?
后端·面试
SirLancelot13 小时前
MinIO-基本介绍(一)基本概念、特点、适用场景
后端·云原生·中间件·容器·aws·对象存储·minio
golang学习记4 小时前
Go 1.25 新特性:正式支持 Git 仓库子目录作为 Go 模块
后端
Penge6664 小时前
一文读懂 ucrypto.Md5
后端
Terio_my7 小时前
Spring Boot 缓存集成实践
spring boot·后端·缓存
karry_k7 小时前
JMM与Volatitle
后端
数字化顾问7 小时前
“AMQP协议深度解析:消息队列背后的通信魔法”之核心概念与SpringBoot落地实战
开发语言·后端·ruby