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

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

Gitea 的名称来源于 Git 和 tea (茶)的结合。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 代码托管平台。

相关推荐
程序猿乐锅32 分钟前
从0-1一文详解RabbitMQ
java·分布式·后端·中间件·rabbitmq·ruby
考虑考虑4 小时前
JDK26中的List.ofLazy()
java·后端·java ee
小蒜学长4 小时前
基于SpringBoot的公寓报修管理系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·公寓报修管理系统·多角色协同
云浪4 小时前
Go源码分析:搞懂 Go 是如何实现堆的
后端·go·源码阅读
调试人生的显微镜8 小时前
iOS开发入门:Interface Builder、基础控件及UITextField详解
后端·ios
泡海椒8 小时前
巡检照片与工单附件:jquick-pdf 图片嵌入的业务实战
后端
蜗牛互联网8 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
AI持续学习8 小时前
文档权限变更如何回归测试?账号、空间、文件和分享链接用例清单
后端
谢亮_vipxieliang8 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang
IT_陈寒9 小时前
为什么你应该学习JavaScript?
前端·人工智能·后端