切换主题
使用 lidong 搭建 Gitea 自托管代码平台
引言
Gitea 是一个轻量级的 Git 代码托管平台,可在自己的服务器上管理代码仓库、议题与协作流程。
为什么选择 Gitea?
完整自托管
Gitea 支持完全自托管,可以在自己的服务器上安装和运行。这意味着所有的代码和数据都由自己掌控,极大地提升了数据安全性,有效防止敏感代码外泄的风险。
掌握运行环境
自托管可以自行决定访问策略、备份周期与升级窗口,降低外部平台策略变化对内部研发流程的影响。
灵活配置 CDN 加速
使用 Gitea 可以根据自身网络环境,自由选择并配置 CDN 服务,从而优化访问速度和稳定性,特别适合在多地协作或访问环境复杂的情况下使用。
资源占用小,部署简便
Gitea 是用 Go 语言编写的,编译后的单一可执行文件体积小,运行效率高,资源占用少,部署和维护都非常方便,适合中小型团队或个人开发者快速上手。
持续维护与功能迭代
Gitea 拥有活跃的开源社区,持续进行功能更新与漏洞修复,保障了平台的可用性和稳定性。同时支持丰富的功能如 issue 管理、PR 流程、代码审查、Webhook 等,能够满足大多数开发场景需求。
部署前准备
准备一台已安装 Debian 的 lidong 服务器,并规划独立的数据目录。若仓库包含重要业务代码,请同步准备异机备份。
安装教程
第一步:连接到您的 VPS 服务器
使用 SSH 工具连接到您的 lidong 服务器实例,确保您切换到 root 用户,以便执行后续操作。

第二步:安装 docker
以下使用 Docker 官方安装脚本准备运行环境。
安装 docker 是为了隔离系统与运行环境,保障 VPS 的安全,同时也能简化配置,节省配置时间
bash
curl -fsSL https://get.docker.com | bash -s docker第三步:创建 docker-compose 配置文件
创建 gitea 目录
以下示例将持久化数据放在 /home/gitea。如服务器的数据盘挂载点不同,请先调整目录路径。

bash
mkdir /home/gitea #在数据盘上创建目录存放数据
mkdir gitea #存放docker-compose文件
cd ./gitea
nano ./docker-compose.yaml填入 docker-compose 的内容
默认配置,使用 sqlite
yaml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.21.1
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- /home/gitea:/data #/home/gitea 可修改为自定义数据目录
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "'127.0.0.1:3000':3000" #若需要修改端口可修改127.0.0.1:3000
- "'127.0.0.1:2222':22" #容器内ssh端口映射,安全起见设置为本地,有需要可以重新打开完成后 CTRL+X 推出,保存时选 Y

启动 gitea
bash
docker compose up -d
配置 Nginx 反向代理
先将域名解析到服务器,再创建 Nginx 站点配置。以下示例把 git.example.com 转发到本机 Gitea 的 3000 端口:
nginx
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}保存后执行 nginx -t 检查语法,再重新加载 Nginx。HTTPS 证书可参阅 Acme.sh 自动更新证书指南。
1. 初始化 Gitea
打开你的域名,按照官方指引进行设置即可(默认使用 sqlite)
2. 创建账户
创建账户后即可使用,第一个创建的用户即为管理员账户

3. 创建仓库
点击+号,即可创建并托管你的第一个代码仓库

使用方法同 github

进阶:使用 MySQL 数据库进行安装
将 docker-compose 文件修改为以下内容:
安全提示:即使数据库网络未直接暴露到公网,也应将示例中的 MySQL 密码替换为高强度随机密码,并通过安全方式保存。
bash
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.21.1
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql #请注意修改用户名和密码
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=CHANGE_ME_GITEA_DB_PASSWORD
restart: always
networks:
- gitea
volumes:
- /home/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=CHANGE_ME_MYSQL_ROOT_PASSWORD
- MYSQL_USER=gitea
- MYSQL_PASSWORD=CHANGE_ME_GITEA_DB_PASSWORD
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- ./mysql:/var/lib/mysql安装时选择 mysql,填入相关信息安装即可
