GitHub固然强大,但对于企业内网、家庭实验室或有隐私需求的开发者来说,自建Git代码托管平台更加安全可控。Gitea是目前最受欢迎的轻量级自托管Git平台,单个Go二进制文件即可运行,资源占用极低。本文将详细介绍2026年在家庭服务器或VPS上部署Gitea的完整流程。
一、Gitea的优势与选型对比
在自托管Git平台领域,主要有GitLab、Gitea、Forgejo、Gogs等选择。对于个人和小团队而言,Gitea是最佳的平衡点:
资源占用极低:Gitea空载状态下内存占用约50-80MB,即便是最低配的VPS(1核512MB)也能流畅运行。GitLab则至少需要4GB内存。
功能完整:Gitea支持Issue跟踪、Wiki、CI/CD(通过Gitea Actions,兼容GitHub Actions语法)、代码审查、Release管理、组织和团队权限等企业级功能。
部署简单:单个二进制文件或一条Docker命令即可启动,无复杂依赖。
需要注意的是,Forgejo是Gitea的一个社区分支,在治理和功能方面有所不同。2024年后两个项目的功能差异逐渐扩大,Forgejo的联合宇宙(Federation)功能更加完善,如需ActivityPub支持可考虑Forgejo。
二、Docker Compose一键部署Gitea
推荐使用Docker Compose部署,便于管理和升级。创建docker-compose.yml文件:
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea_password
restart: always
networks:
- gitea
volumes:
- ./gitea-data:/data
- /etc/timezone:/etc/timezone:ro
ports:
- "3000:3000"
- "222:22"
db:
image: postgres:16
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea_password
- POSTGRES_DB=gitea
volumes:
- ./postgres-data:/var/lib/postgresql/data
执行docker compose up -d后,访问http://服务器IP:3000完成初始化向导即可。
三、进阶配置:Nginx反代与Gitea Actions
为了让Gitea通过域名访问并开启HTTPS,需要配置Nginx反向代理。在/etc/nginx/conf.d/gitea.conf中添加:
server {
listen 443 ssl;
server_name git.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/git.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.yourdomain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Gitea Actions是Gitea内置的CI/CD系统,配置文件格式与GitHub Actions完全兼容,可将大量现有的GitHub Actions工作流直接迁移到自建平台。只需在仓库中创建.gitea/workflows/ci.yml文件,并部署一个act_runner即可启用自动化流水线。
对于希望脱离云端平台控制、保护代码资产安全的开发者来说,Gitea是目前最成熟、最易维护的自托管选择。结合定期备份(gitea dump命令)和异地同步,可以构建一套可靠的私有代码管理体系。


评论(0)