type
status
date
slug
summary
category
tags
create_time
Jun 29, 2025 07:33 PM
icon
password
my_create_time

📝 前言

在上一篇《从阿里云效到自建DevOps平台:Gitea入门介绍》我们介绍了 Gitea 是什么,使用场景以及核心功能,这一期我们就开始正式的实战起来,先介绍如何通过 Docker 快速部署 Gitea。

🧭 背景介绍

在许多中小型团队或个人开发者中,自建 Git 代码托管平台逐渐成为一种趋势。
相比 GitLab 资源消耗大、配置复杂,Gitea 以其轻量级、易部署、界面友好等特点成为热门选择。
Gitea 支持多用户、SSH/HTTP 协议、Web 界面管理等功能,非常适合用于:
  • 内网 Git 服务搭建
  • 构建 CI/CD 的私有仓库来源
  • 替代 GitHub 或 GitLab 的个人托管方案

📋 前提条件

部署前请确保你已具备以下环境:
  • 有一台可用的 Linux 服务器(推荐使用 Ubuntu 24.04 或以上的 LTS 版 )

🚀 详细步骤

1️⃣ 创建部署目录

该目录主要用于存储docker compose部署文件,这里我们没有使用本地data目录,而是由Docker Volumes来自动创建,主要是避免权限问题。

2️⃣ 编写 docker-compose.yml

/opt/gitea 目录下创建一个名为 docker-compose.yml 的文件,内容如下:
PS:注意需提前创建好数据库。
另外通过 命名卷 方式启动,持久化的数据并不在当前目录,而是由 Docker 自行管理,可通过以下命令进行查看:

3️⃣ 创建 git 用户

若想通过 ssh 链接下载仓库,建议提前创建一个名为 git 的系统用户,并将宿主机挂载目录的所属权赋予它。
执行以下命令创建 git 用户:
这里的1010是需要跟上面的USER_UIDUSER_GID环境变量保持一致。

4️⃣ 启动应用

执行以下命令启动:
首次启动后,Gitea 会在 http://<你的服务器IP>:3000 上运行,SSH 服务监听 222 端口。

5️⃣ 初始化 Gitea

待容器启动完成后,在浏览器访问 Gitea Web 页面:
http://<你的服务器IP>:3000
notion image
可根据实际情况填写,完成后点击“安装 Gitea”即可。

6️⃣ 设置域名解析和反向代理(可选)

若希望通过域名访问,可在自建的DNS服务器上添加域名解析,然后配置Nginx代理。
Nginx 配置示例:

7️⃣ 配置 SSH

我一般是都习惯通过 HTTP clone下载仓库,若想使用 SSH 协议,可进入 Gitea → 设置 → SSH/GPG 密钥 → 增加密钥:
notion image
notion image
notion image
其中密钥内容需要填写公钥文件内容,也即是 ~/.ssh/id_xxxx.pub 文件。

8️⃣ 通过 SSH 下载仓库

配置完 Gitea 的密钥后,我们就可以通过 ssh 协议下载仓库代码了,命令如下:
这里需要带上222端口,因为我们服务器 222 才是映射到 Gitea 容器内的 ssh 协议端口。
若不想带上ssh协议头和端口,我们也可以配置 ssh config,参考如下:
之后就可以直接用仓库上面提供的ssh链接进行下载了,如:

✅ 总结

Gitea 提供了一种轻量、开箱即用、界面简洁的 Git 自托管方案,而借助 Docker 的部署方式,你只需几分钟即可完成:
  • 无需手动配置依赖或环境
  • 快速上线 Web 版 Git 仓库管理平台
  • 支持团队协作、权限管理、SSH/HTTP 克隆等核心功能
它尤其适用于中小型开发团队、个人项目归档、内网私有部署等场景,是构建自有 DevOps 环境的理想起点。

🔜 下期预告

下一篇,我们将带你深入了解 Gitea 的 CI/CD 功能。
介绍如何部署 Gitea Actions Runner,实现类似 GitHub Actions 的自动化构建与部署流程,轻松打造你的私有 DevOps 流水线,敬请期待!
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
网站朋友动态功能详细设计
下一篇
从阿里云效到自建DevOps平台:Gitea入门介绍

评论
Loading...