自建代码仓库:手把手用 Gitea 搭一个自己的 Git 服务器
每个开发者电脑里都有那么几个见不得人的项目写到一半的练手代码、存着各种私人配置的 dotfiles、不想公开但又想在多台电脑间同步的笔记仓库。扔到公共代码托管平台吧私有仓库总有点不自在只在本地放着吧换台电脑就抓瞎还没有备份。我的解法是在自己的云服务器上搭一个私有 Git 服务用的是 Gitea——一个用 Go 写的开源代码托管平台界面和主流平台长得很像上手零成本关键是极轻量1 核 1G 的机器跑得飞快。这篇把完整搭建流程写下来跟着做十五分钟就能用上。一、准备工作Gitea 是出了名的省资源官方说最低 256MB 内存就能跑入门款服务器完全够用项目建议配置1 核 1G 起步个人用绰绰有余系统Ubuntu 22.04 LTS磁盘20G 起代码仓库普遍不大需要放行的端口3000Web 界面、222SSH 推拉代码我自己用的是雨云rainyun-com的 1 核 1G 机器跑 Gitea 大半年了日常占用不到两百兆内存注册填码2026off可领5折一个月十来块钱。大厂轻量服务器节点多是优势同配置月付贵一些按预算选就行。二、安装 Docker用 Docker 部署最干净Ubuntu 22.04 自带源里就有sudoaptupdatesudoaptinstall-ydocker.iosudosystemctlenable--nowdocker三、一条命令跑起 GiteaGitea 官方维护了 Docker 镜像可以去 Docker Hub 搜 gitea/gitea 看说明dockerrun-d\--namegitea\--restartalways\-p3000:3000\-p222:22\-vgitea-data:/data\gitea/gitea:1参数说明-p 3000:3000Web 界面端口-p 222:22容器内 SSH 映射到宿主机 222推拉代码走这个端口和系统自己的 SSH22 端口错开-v gitea-data:/data仓库、配置、数据库全在这个卷里容器删了重建数据不丢然后去云服务器控制台的安全组放行 3000 和 222 两个端口。四、初始化配置浏览器地址栏输入你的服务器 IP 加端口形如服务器IP:3000会进入安装向导几个关键项数据库选 SQLite3个人用完全够零额外维护SSH 服务器端口改成 222刚才映射的端口这步别漏不然网页里显示的仓库地址端口是错的管理员账号在页面底部展开填上不填的话第一个注册的人会自动成为管理员点安装几秒钟后就能看到熟悉的主界面了。五、把本地代码推上去先把自己的 SSH 公钥加到 Gitea网页右上角头像 → 设置 → SSH 密钥粘贴本地~/.ssh/id_rsa.pub的内容没有的话用ssh-keygen生成一个。然后在 Gitea 网页上新建一个仓库回到本地项目目录gitinitgitadd.gitcommit-mfirst commitgitremoteaddorigin ssh://git服务器IP:222/你的用户名/仓库名.gitgitpush-uorigin main刷新网页代码已经躺在自己的服务器上了。以后换电脑、重装系统git clone一下就全回来。如果你已经有一个在别的平台上的仓库想搬过来也不用重新 init直接改远程地址再全量推就行gitremote set-url origin ssh://git服务器IP:222/你的用户名/仓库名.gitgitpush--allgitpush--tags六、网页端不只是个仓库列表Gitea 的网页端功能比想象中全几个高频用法Issue 和 PR和主流平台一样的协作流程小团队够用了Wiki每个仓库自带文档区项目的使用说明顺手就写了Web 编辑器临时改个错别字不用拉代码网页上直接改直接提交迁移工具新建仓库时选迁移粘贴别处仓库的地址整个仓库含提交记录一把梭搬过来对我个人来说最实用的是多设备同步这个场景台式机写一半的配置笔记本上git pull接着改改完推回去两边永远一致。配合提交历史误删了什么东西随时能翻回来比 U 盘和网盘靠谱得多。七、日常运维两件事备份所有数据都在gitea-data这个卷里定期打包就能万事大吉dockerrun--rm-vgitea-data:/data-v~/backup:/backup ubuntutarczf /backup/gitea-$(date%Y%m%d).tar.gz-C/data.升级Gitea 更新挺勤快升级就是拉新镜像重建容器数据不受影响dockerpull gitea/gitea:1dockerstop giteadockerrmgitea# 重新执行第三步的 docker run 命令常见问题问和直接用公共托管平台的私有仓库比图什么答一是数据完全在自己手里断网、账号出问题都不怕二是没有私有仓库数量和协作者限制三是访问速度看自己服务器国内机器拉取很快。当然代价是你要自己维护它——好在 Gitea 基本不用管。问三五个人的小团队能用吗答完全能。建个组织把成员拉进来按仓库分配权限Issue、PR、代码评审这些都有。雨云rainyun-com的 1 核 1G 带一个小团队没压力月付就十几块人多了再升配置。问想要 CI 自动构建怎么办答Gitea 有兼容主流语法的 Actions 功能配一个 act_runner 就能跑流水线这篇篇幅有限就不展开了先把仓库跑起来。总结自建 Git 服务这件事听起来硬核实际就是一条 Docker 命令加十分钟初始化。换来的东西很实在私人代码有了安稳的家多设备同步、版本管理、自动备份一套全齐。如果你也有几个不想给别人看但又怕丢的项目今晚就可以搭起来。