5分钟自建Gitea:从一条Docker命令到仓库、PR与自动化
【免费下载链接】giteaGit with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD项目地址: https://gitcode.com/GitHub_Trending/gi/gitea
Gitea 是一个用 Go 编写的自托管Git服务,单个二进制文件就能提供代码托管、Issue 跟踪、Pull Request 审查、团队看板、Wiki、包仓库和 CI/CD,MIT 开源,可运行在 Linux、macOS、Windows 上。它解决的核心问题是:代码完全放在自己的服务器上,私有仓库不收费,数据、权限、审计策略都由你掌控。适合个人开发者、小团队和不想把代码交给第三方托管平台的企业。
快速部署
如果本机已有 Docker,下面这条命令就够了。它把持久化数据挂到宿主机/data/gitea,Web 界面映射到 3000 端口,Git SSH 端口映射到 222:
docker run -d --name gitea -p 3000:3000 -p 222:22 -v /data/gitea:/data gitea/gitea:latest执行后终端会返回一个容器 ID。等约 30 秒,浏览器打开http://127.0.0.1:3000,你会看到 Gitea 的安装初始化页面:选择安装语言、数据库类型(默认 SQLite 即可)、管理员账号和应用基本信息,点「安装」后跳转到登录页。首次安装全程约 5 分钟,仓库目录结构、示例配置可参考 docker/README.md。
第一次使用动线
建仓库。登录后点右上角「+」→「创建新仓库」,填仓库名,选择私有,勾选初始化空仓库,创建完成。
推送代码。页面会直接给出三条现成命令:git remote add、git push。本地执行后刷新页面,提交记录、文件树、README 渲染都会显示出来;再推送一个feature/xxx分支,「分支」标签页里就能切换查看。
开一个 Issue 或 PR。仓库页的 Issues 标签页点「新建 Issue」,可以挂标签和里程碑;切到 Pull Requests 标签页,Gitea 会自动列出你刚推的feature/xxx分支与默认分支的待合并差异,点开就是逐文件 diff,冲突会直接标红,合并前可设置必须通过审查。
挂一条自动化。Actions 功能兼容 GitHub Actions 语法:在仓库.gitea/workflows下放一个 YAML,定义on: [push]等触发条件,push 或开 PR 时流程就会跑起来,执行记录显示在仓库的 Actions 页。不想写 workflow 的话,Webhooks 标签页可以配置向外部服务推送事件;仓库还支持作为 Docker、npm、Maven 等包格式的 registry 使用。
什么时候选它
- 私有代码不能离开内网、需要自己掌控备份与访问策略的团队;
- 想要免费私有仓库、Issue、PR 全套流程的个人开发者,一台低配置机器(2GB 内存级)即可跑;
- 已有 GitHub Actions 脚本、希望低成本迁移自动化配置的项目。
与主流托管平台的差异:
| 维度 | Gitea | GitHub 等托管平台 |
|---|---|---|
| 部署 | 一条命令起在自己的服务器 | 直接使用云服务 |
| 成本 | 软件免费,私有仓库不限 | 私有仓库按账号/团队付费 |
| 数据主权 | 数据在你自己的机器上 | 数据在服务商侧 |
进阶配置与安全要点
- 数据库:生产环境建议把默认的 SQLite 换成 PostgreSQL 或 MySQL,在 custom/conf/app.example.ini 的
database段配置,示例文件里已列出各数据库连接写法。 - 反向代理与证书:Nginx 或 Caddy 前置,Let's Encrypt 自动签发 HTTPS;SSH 端口保持 222 这类非标准端口,避免和系统 SSH 冲突。
- 备份:数据库加
data目录(仓库与附件都在这里)定期整体备份;gitea dump命令可按仓库导出代码与附件,建议每月实际恢复演练一次。 - 认证:给管理员和核心成员开启双因素认证;对接企业目录可用 LDAP/AD。
- 升级:关注 CHANGELOG.md 中的安全补丁记录,版本更新后核对修复项再发布。
遇到问题去哪找
- 官方文档站(安装、管理、使用、开发指南):项目内 docs/ 有开发环境与构建说明,完整文档见 Gitea 官方 docs 站。
- 配置参考:custom/conf/app.example.ini 覆盖几乎所有配置项,注释即说明,不必整份照抄。
- 社区支持:Gitea 官方论坛与 Discord 服务器,维护者会回应部署类问题;漏洞请通过仓库 README 中的安全邮箱单独报告,不要公开提 Issue。
把容器跑起来,创建第一个私有仓库,再把你本地一个项目的提交推上去——完成这三步,你就已经拥有一个完整的私有代码托管环境。剩下的 Issue、PR 和自动化,按上面的动线逐个点开就行。
【免费下载链接】giteaGit with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD项目地址: https://gitcode.com/GitHub_Trending/gi/gitea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考