### [VPS搭建Gitea自建Git代码仓库:从安装到HTTPS和SSH配置完整教程](https://www.jiyueip.com/article/13556) **Published:** 2026-07-30T09:31:43 **Author:** 斑斓助理 **Excerpt:** GitHub私有仓库要钱、Gitee限制越来越多、公司代码放别人服务器上不放心——在VPS上用Gitea搭一个私有的Git代码仓库,轻量开源,功能够用。整个部署过程不超过二十分钟。 为什么选Gitea而不是GitLab GitLab功能比G GitHub私有仓库要钱、Gitee限制越来越多、公司代码放别人服务器上不放心——在VPS上用Gitea搭一个私有的Git代码仓库,轻量开源,功能够用。整个部署过程不超过二十分钟。 ## 为什么选Gitea而不是GitLab GitLab功能比Gitea全——CI/CD、容器仓库、项目管理这些都有。但代价是吃资源:最小安装要4GB内存,1核2G的VPS跑不起来。Gitea是用Go写的,二进制文件不到100MB,1核1G内存就能流畅跑,对个人开发者和小组来说完全够用。 Gitea的功能:代码仓库管理(和GitHub一样的界面)、Issue和PR、Wiki、代码片段、组织管理、Webhook(push后自动触发CI/CD)、支持Git LFS大文件存储。日常开发需要的基本都有。 ## 第一步:VPS安装Docker版Gitea 用Docker Compose部署最快,不需要装数据库和配置环境: ``` mkdir gitea && cd gitea nano docker-compose.yml ``` ``` version: '3' services: gitea: image: gitea/gitea:latest container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 restart: always volumes: - ./data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "2222:22" # SSH推送用这个端口 ``` ``` docker compose up -d ``` 打开浏览器访问 http://你的VPS公网IP:3000,首次访问会进安装向导。数据库选SQLite3(单用户或小团队够用,零配置),域名填你的域名或IP,基础URL填 http://你的域名:3000。管理员账号在这里创建——这是第一个也是最高权限的用户。 雨云入门VPS月付几块钱就能跑Gitea,优惠码 **admin01** 首月五折。建议用2G内存的配置——虽然1G够用,但仓库多了之后Git操作还是会吃一点内存。 ## 第二步:配置HTTPS(Nginx反代) 3000端口加HTTP明文传输不够安全,用Nginx反代加SSL证书: ``` apt install nginx certbot python3-certbot-nginx -y nano /etc/nginx/sites-available/gitea ``` ``` server { listen 80; server_name git.你的域名.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; } } ``` ``` ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx # 申请免费SSL证书 certbot --nginx -d git.你的域名.com ``` 然后在Gitea的配置文件(data/gitea/conf/app.ini)里改ROOT\_URL和SSH\_DOMAIN: ``` [server] SSH_DOMAIN = git.你的域名.com ROOT_URL = https://git.你的域名.com DOMAIN = git.你的域名.com ``` ## 第三步:配置SSH推送 Gitea容器里内置了SSH服务器(监听2222端口),本地git push走SSH协议: ``` # 生成SSH密钥(如果还没有) ssh-keygen -t ed25519 -C "your_email@example.com" # 在Gitea网页端 → 设置 → SSH/GPG密钥 → 粘贴公钥内容 cat ~/.ssh/id_ed25519.pub # 克隆仓库(注意端口是2222) git clone ssh://git@git.你的域名.com:2222/你的用户名/仓库名.git # 或者在~/.ssh/config里配置简化连接 Host gitea HostName git.你的域名.com Port 2222 User git IdentityFile ~/.ssh/id_ed25519 # 配置后用短命令 git clone git@gitea:你的用户名/仓库名.git ``` ## 第四步:备份策略 Gitea的所有数据(代码仓库、用户信息、Issue等)都在 ./data 目录下。备份就是把这个目录打包: ``` # 定时备份脚本 #!/bin/bash cd /path/to/gitea docker compose exec gitea gitea dump -c /data/gitea/conf/app.ini tar -czf gitea-backup-$(date +%Y%m%d).tar.gz data/ # 把这个tar.gz同步到对象存储或另一台VPS ``` 数据无价——GitHub/GitLab会帮你操心备份,自建的Gitea是自己负责。仓库数据丢了就是真的丢了。 ## Gitea和GitHub/Gitee的功能对比 | 功能 | Gitea | GitHub免费版 | Gitee免费版 | | --- | --- | --- | --- | | 私有仓库 | 无限 | 无限 | 有限制 | | CI/CD | 需接外部(Gitea Actions) | GitHub Actions 2000分钟 | 有 | | 存储空间 | 看你VPS硬盘 | 无限(单文件100MB限制) | 有限 | | 协作人数 | 不限 | 不限 | 有限 | | 访问速度 | 看VPS线路 | 国内慢 | 快 | ## 常见问题 ### Gitea忘记管理员密码怎么办? 进Gitea容器重置:docker exec -it gitea gitea admin user change-password –username 你的用户名 –password 新密码。需要有容器的Shell权限。 ### 代码推送到Gitea报Permission denied? 先确认SSH公钥在Gitea网页端添加了。再确认SSH端口是2222不是22。最后检查仓库权限——私有仓库只有仓库成员才能push,检查你的账号是否有写权限。 ### Gitea占用多少资源? 空载时内存约200MB,有几个仓库和用户后300-500MB。CPU基本不占(Go语言的优势)。一块10GB硬盘的小VPS足够存几年的代码(除非仓库里有二进制大文件)。 **Tags:** WordPress建站, 云服务器, 建站教程, 网站运维 **Categories:** 行业洞察 ---