手把手教你用 Docker 搭建自己的 Git 服务——Gitea 保姆级部署教程
说起 Git 服务,大多数人第一反应都是 GitHub 或者 GitLab。这两个确实好用,但有时候吧——GitHub 偶尔抽风(无形的大手doge),GitLab自己搭建又太吃内存。这时候 Gitea 就成了一个很不错的选择。
今天就聊聊这个项目,顺便手把手教大家怎么用 Docker 把它跑起来。
Gitea 是什么
Gitea 是一个轻量级的自托管 Git 服务,由 Gogs 分叉而来。它麻雀虽小但五脏俱全——代码托管、Pull Request、Issue 跟踪、Wiki、项目管理,这些 GitHub 上常用的功能它都有。
最关键的是,这玩意儿特别轻量。我之前在一台 1 核 1G 的小鸡上都跑得挺顺畅,对小团队或者个人使用来说相当友好。
来看一下它的基本数据:
| 指标 | 数值 |
|---|---|
| GitHub Stars | 54k+ |
| 总安装数 | 400k+ |
| Docker 下载量 | 3亿+ |
| 开源协议 | MIT |
功能上它还支持 Gitea Actions(类似 GitHub Actions 的 CI/CD)、制品库管理(npm、Maven、Docker 镜像等 20+ 种)。说实话对于中小团队来说,完全够用了。
我的使用场景
我自己用 Gitea 主要是因为我需要个私有代码托管,有些项目不方便放 GitHub,但又想有个可视化的 Git 管理界面,所以选了gitea。所以如果你跟我一样,想要轻量、想要自托管、想要省钱,Gitea 是个值得考虑的选择。
部署前准备
服务器选择
搭建 Gitea 首先你得有一台服务器。根据官方建议:
- 小型团队(1-10人):2 核 CPU + 1GB 内存
- 中型团队(10-50人):2 核 CPU + 2GB 内存
- 大型团队:建议 4+ 核 CPU + 4GB+ 内存
磁盘方面主要看你代码仓库的大小,一般 20-50GB 够用。为了方便,我建议你买香港地域的服务器,不用在备案和网络上面费劲。
关于服务器选购,我用过几家的产品,大厂就选腾讯云和阿里云,国内知名小厂就选雨云,如果你是个人或小团队使用,雨云这种性价比高的方案挺合适。注册时填写优惠码techaser可以领新人优惠。
雨云官网:https://rainyun.com
环境要求
部署 Gitea 前确保你的服务器满足:
- 系统:Ubuntu 20.04+ / Debian 11+ / CentOS 8+(我推荐 Ubuntu,装什么都方便)
- Docker:已安装 Docker 和 Docker Compose(雨云的可以直接在服务器管理中的“重装/安装系统或软件”里装docker)
- 域名(可选):如果有域名配反向代理体验会更好
- MYSQL:提前配置好。
Docker 部署教程
接下来是重头戏,手把手教你用 Docker 把 Gitea 跑起来。
1. 创建目录结构
SSH 登录到你的服务器,执行:
mkdir -p /opt/gitea
cd /opt/gitea
2. 创建 Docker Compose 配置
nano docker-compose.yml
粘贴以下内容:
version: "3"
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:1.25.5
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
保存退出(Ctrl+X, Y, Enter)。
3. 启动容器
docker-compose up -d
等一会儿让容器启动,然后用 docker ps 检查状态:
docker ps
看到 Gitea 容器在运行就说明成功了。
4. 初始化配置
容器启动后,打开浏览器访问 http://你的服务器IP:3000
第一次访问会进入初始化页面,填写以下信息:
- 域名:填你的域名(如果没有就先用 IP)
- SSH 端口:除了22(被openssh占用)之外的任何端口。我用的是222。
- Gitea 基础 URL:如果是 IP 访问就填
http://IP:3000/ - 管理员账号:建议创建一个,后面管理方便
配置完成后点击"立即安装",等几十秒就能进去看到界面了。
反向代理配置(可选但推荐)
用 IP+端口访问总觉得不够专业,这时候配个 Nginx 反向代理就好看多了。
安装 Nginx
sudo apt update
sudo apt install nginx -y
配置反向代理
sudo nano /etc/nginx/sites-available/gitea
写入以下配置(把 your-domain.com 换成你的域名):
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost: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;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
配完之后访问 https://your-domain.com 就能直接打开 Gitea 了。
HTTPS 证书的话,建议用 Let's Encrypt 免费证书,或者直接上 Cloudflare 做代理,简单省事。
Gitea配置
以上这些做完之后,就可以打开服务器IP进行具体的配置了!
打开你的服务器IP,输入你的sql数据库相关信息。
之后点击立即安装,等待完毕即可!
之后会自动跳到主页
右方可以创建新仓库。点击加号,进入添加页面:
这里你就可以跟使用github一样使用了。同时gitea也是支持迁移仓库了,我看了一下github、gitlab是可以的。
升级 Gitea
Gitea 更新挺频繁的,升级也不难:
cd /opt/gitea
docker-compose down
docker-compose pull
docker-compose up -d
数据都在 volume 里挂着,升级不会丢。
总结
Gitea 是个相当实在的工具——轻量、免费、功能够用。自己搭一套私有 Git 服务,代码不用放别人服务器,数据完全可控,成本也低。
对于个人开发者、小团队来说,配上一台性价比高的服务器,搭一套 Gitea,代码管理这块基本就不用操心了。
好了,这篇教程就到这里。如果有问题欢迎留言,看到会回。
相关链接:
- Gitea 官网:https://gitea.com/
- Gitea GitHub:https://github.com/go-gitea/gitea
- Gitea 官方文档:https://docs.gitea.com/
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)