Gitea 教程:搭建、使用和优化你的 Git 服务器
版本控制是软件开发中至关重要的一环,而 Git 已经成为事实上的行业标准。虽然 GitHub 和 GitLab 等平台提供了强大的在线 Git 托管服务,但有时出于安全、隐私或定制化等方面的考虑,我们需要搭建自己的 Git 服务器。Gitea 是一款轻量级、易于部署和使用的自托管 Git 服务,它用 Go 语言编写,跨平台兼容,资源占用低,非常适合个人开发者、小型团队和对数据拥有完全控制权的企业。
本教程将带你一步一步地搭建、使用和优化你的 Gitea Git 服务器,让你拥有一个高效、安全的代码版本控制平台。
一、Gitea 的优势和特点
在深入搭建之前,我们先来了解一下 Gitea 相比于其他 Git 服务,有哪些独特的优势:
- 轻量级和高性能: Gitea 使用 Go 语言编写,编译后的二进制文件体积小,运行时资源占用低,即使在性能较低的服务器上也能流畅运行。
- 易于安装和部署: Gitea 支持多种安装方式,包括二进制文件、Docker、Helm 等,安装过程简单快捷,无需复杂的依赖关系。
- 跨平台兼容: Gitea 可以在 Linux、macOS、Windows 等操作系统上运行,满足不同用户的需求。
- 开源免费: Gitea 是一个开源项目,遵循 MIT 许可证,你可以免费使用、修改和分发。
- 用户友好的界面: Gitea 拥有简洁、直观的用户界面,易于上手和使用。
- 强大的功能: Gitea 提供了与 GitHub 和 GitLab 类似的功能,包括代码仓库管理、分支管理、Pull Request、Issue 跟踪、Wiki 等。
- 高度可定制性: Gitea 提供了丰富的配置选项,可以根据自己的需求进行定制,例如认证方式、邮件通知、Web 钩子等。
- 数据安全和隐私: 由于 Gitea 是自托管的,你可以完全控制你的代码和数据,避免数据泄露和安全风险。
二、搭建 Gitea 服务器
搭建 Gitea 服务器有多种方式,这里我们将介绍两种常用的方式:使用二进制文件安装和使用 Docker 安装。
1. 使用二进制文件安装
这种方式适合对服务器有一定了解,并且希望更精细地控制 Gitea 的配置的用户。
-
准备工作:
- 一台运行 Linux 或 macOS 的服务器(推荐使用 Ubuntu 或 CentOS)。
- 一个具有 sudo 权限的用户。
- 一个数据库系统(例如 MySQL、PostgreSQL、SQLite),本教程以 SQLite 为例,方便快速搭建。
-
安装步骤:
-
下载 Gitea 二进制文件:
访问 Gitea 的官方下载页面 (https://dl.gitea.io/gitea/),找到适合你服务器操作系统的二进制文件,例如gitea-1.20.0-linux-amd64
。
使用wget
命令下载:
bash
wget https://dl.gitea.io/gitea/1.20.0/gitea-1.20.0-linux-amd64 - 解压二进制文件:
bash
tar -zxvf gitea-1.20.0-linux-amd64 - 将 Gitea 可执行文件移动到
/usr/local/bin
目录:
bash
sudo mv gitea /usr/local/bin/ - 创建 Gitea 用户:
为了安全起见,建议创建一个专门用于运行 Gitea 的用户。
bash
sudo adduser git
根据提示设置密码和用户信息。 - 创建 Gitea 的数据存储目录:
bash
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown git:git /var/lib/gitea/{custom,data,log}
sudo chmod 750 /var/lib/gitea/{custom,data,log} - 创建 Gitea 的配置文件目录:
bash
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea - 以 Gitea 用户运行 Gitea:
bash
sudo -u git gitea web - 通过浏览器访问 Gitea 的 Web 界面:
打开浏览器,输入服务器的 IP 地址和端口号(默认为 3000),例如http://your_server_ip:3000
。 - 完成 Gitea 的初始化配置:
按照 Web 界面上的提示,填写数据库信息、管理员账号等信息,完成 Gitea 的初始化配置。
-
配置 systemd 服务 (可选,推荐):
为了使 Gitea 在服务器启动时自动运行,我们可以配置 systemd 服务。
- 创建 Gitea 的 systemd 配置文件:
bash
sudo nano /etc/systemd/system/gitea.service -
将以下内容复制到配置文件中:
“`
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target[Service]
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
RestartSec=5s
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea[Install]
WantedBy=multi-user.target
3. **启用并启动 Gitea 服务:**
bash
sudo systemctl enable gitea
sudo systemctl start gitea
4. **查看 Gitea 服务的状态:**
bash
sudo systemctl status gitea
“`
- 创建 Gitea 的 systemd 配置文件:
2. 使用 Docker 安装
这种方式适合对 Docker 有一定了解,并且希望快速部署 Gitea 的用户。
-
准备工作:
- 一台运行 Linux 的服务器(推荐使用 Ubuntu 或 CentOS)。
- Docker 和 Docker Compose 已经安装。
-
安装步骤:
-
创建 Docker Compose 配置文件:
bash
mkdir gitea
cd gitea
nano docker-compose.yml -
将以下内容复制到配置文件中:
“`yaml
version: “3”networks:
gitea:
external: falseservices:
server:
image: gitea/gitea:latest
container_name: gitea
restart: always
networks:
– gitea
volumes:
– ./data:/data
– ./config:/etc/gitea
ports:
– “3000:3000”
– “222:22” # 可选,用于 SSH 访问
environment:
– USER_UID=1000 # 修改为你服务器上的用户 ID
– USER_GID=1000 # 修改为你服务器上的用户组 ID注意:你需要根据你服务器上的用户 ID 和用户组 ID 修改 `USER_UID` 和 `USER_GID` 的值。可以使用 `id` 命令查看。
bash
3. **启动 Gitea 容器:**
docker-compose up -d
``
http://your_server_ip:3000`。
4. **通过浏览器访问 Gitea 的 Web 界面:**
打开浏览器,输入服务器的 IP 地址和端口号(默认为 3000),例如
5. 完成 Gitea 的初始化配置:
按照 Web 界面上的提示,填写数据库信息、管理员账号等信息,完成 Gitea 的初始化配置。
三、Gitea 的基本使用
搭建完成后,我们就可以开始使用 Gitea 了。
- 创建仓库:
登录 Gitea 后,点击页面右上角的 “+” 按钮,选择 “New Repository”,填写仓库名称、描述等信息,然后点击 “Create Repository” 按钮即可创建一个新的仓库。 - 克隆仓库:
在仓库页面,你可以找到仓库的 SSH 或 HTTP 克隆地址。使用git clone
命令将仓库克隆到本地:
bash
git clone <仓库地址> - 提交代码:
在本地修改代码后,使用git add
、git commit
和git push
命令将代码提交到 Gitea 服务器:
bash
git add .
git commit -m "提交说明"
git push origin main - 分支管理:
Gitea 提供了强大的分支管理功能,你可以创建新的分支、合并分支、删除分支等。 - Pull Request:
你可以通过 Pull Request 来请求将你的代码合并到主分支。 - Issue 跟踪:
Gitea 提供了 Issue 跟踪功能,可以用于记录 Bug、任务和功能需求。 - Wiki:
你可以使用 Wiki 来创建项目的文档和知识库。
四、Gitea 的优化
为了提高 Gitea 的性能和安全性,我们可以进行一些优化。
- 使用 HTTPS:
为了保护数据的安全传输,建议使用 HTTPS。你可以使用 Let’s Encrypt 证书来免费启用 HTTPS。 - 配置 SSH 密钥:
使用 SSH 密钥可以避免每次提交代码都需要输入用户名和密码,提高效率。 - 配置邮件通知:
配置邮件通知可以在 Issue、Pull Request 等事件发生时收到邮件提醒。 - 配置 Web 钩子:
Web 钩子可以在代码提交、Issue 创建等事件发生时触发其他操作,例如自动部署、代码审查等。 - 定期备份数据:
为了防止数据丢失,建议定期备份 Gitea 的数据。 - 监控服务器资源:
监控服务器的 CPU、内存、磁盘等资源使用情况,及时发现和解决性能问题。 - 使用 CDN 加速静态资源:
可以使用 CDN 加速 Gitea 的静态资源,例如 CSS、JavaScript、图片等,提高访问速度。 - 调整数据库配置:
根据服务器的硬件配置和访问量,调整数据库的配置参数,提高数据库的性能。 - 升级 Gitea 版本:
定期升级 Gitea 版本,以获取最新的功能和安全补丁。
五、总结
通过本教程,你应该已经掌握了如何搭建、使用和优化你的 Gitea Git 服务器。Gitea 作为一个轻量级、易于部署和使用的自托管 Git 服务,可以帮助你更好地管理你的代码,提高开发效率,并保护你的数据安全。希望本教程对你有所帮助,祝你使用愉快! 记得定期备份数据和关注 Gitea 官方文档,以便及时了解最新的功能和安全信息。 享受你自托管的 Git 服务器带来的便利吧!