news 2026/9/4 23:45:59

Gitea 上手指南:5 分钟部署你的自托管 Git 服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gitea 上手指南:5 分钟部署你的自托管 Git 服务

Gitea 上手指南:5 分钟部署你的自托管 Git 服务

【免费下载链接】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 要解决的典型问题。Gitea 是一个用 Go 编写的自托管 Git 服务,在一个进程里提供 Git 仓库、代码审查、Issue 管理、包仓库和 CI/CD。你只需要一台能跑 Docker 的服务器,就可以完成 Gitea 部署,数据完全留在自己的机器上。

Gitea 项目速览

Gitea 的定位是"自托管一体化开发服务":它不是单纯的 Git 托管,而是把从提交代码、审查合并到打包发布的常见环节收进同一套系统。项目整体信息如下:

  • 技术栈:纯 Go 编写,单二进制运行,无 JVM、无前端构建依赖,支持 Linux、macOS、Windows 及 ARM 等 Go 覆盖的平台
  • 许可证:MIT,可自由商用、修改和分发
  • 核心能力:Git 托管、Pull Request 审查、Issue/看板、Wiki、包注册表(Docker、npm、Maven 等格式)、内置 Gitea Actions
  • 适用人群:需要私有仓库的个人开发者、小规模协作团队、有合规审计要求的企业

功能拆解:按"你想完成的事"看 Gitea

怎么把仓库跑起来

仓库支持git clone/push常规操作,也支持 HTTP 和 SSH 两种协议(端口在custom/conf/app.example.ini[server]段配置)。仓库内提供完整的在线浏览:按文件、按提交、按分支看差异,支持 LFS 大文件。个人场景下,克隆一个仓库、推送一个私有项目,五分钟就能跑通。

怎么和团队协同

  • Pull Request:提交合并请求后可以看到 diff、检查 CI 状态、写审查意见,再选择 merge、squash 或 rebase 合并
  • Issue 与看板:Issue 支持标签、里程碑和依赖项,看板面板用于可视化排期
  • 通知:可通过 Webhook 把 push、Issue、PR 等事件推送到 Slack、Discord、企业微信等外部系统(modules/webhook/services/webhook/

怎么做自动化

Gitea 内置 Actions 引擎,工作流写法兼容 GitHub Actions 的 YAML:在仓库.gitea/workflows/下放一个文件即可触发。runner 以独立进程注册到实例上,流程大致如下:

也可以直接复用现成的 GitHub Actions 生态,无需为迁移重写流水线。

怎么管控权限

权限分三个层级:实例管理员、组织/团队、单个仓库,可以逐级收紧。配合双因素认证、访问令牌(API 场景)、部署密钥(CI 场景)使用,细到"哪个 key 只能推哪个仓库"的程度。相关模型代码在models/perm/models/deploykey/

快速上手:两种部署方式

方式一:Docker 部署(推荐)

docker run -d --name gitea \ -p 3000:3000 \ -v /data/gitea:/data \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ gitea/gitea:latest
  • 浏览器访问http://服务器IP:3000,首次进入安装向导,按提示填数据库、创建管理员账号即可
  • /data/gitea挂载点保存仓库、附件和配置文件,升级镜像时只要保留这个卷,数据不会丢
  • 容器以 rootless 方式运行,权限模型简单;仓库内的docker/目录提供了 rootful 与 rootless 两种镜像模板

方式二:二进制部署

从发布页下载对应平台的单文件二进制,放到服务器上后执行:

./gitea web

首次运行同样会引导你完成安装。这种方式不依赖容器,适合已经熟悉 systemd 管理的运维环境。想自己编译源码的话,参考 构建文档 和 开发指南。

对比项Docker二进制
上手速度快,一条命令快,但需自行管进程
升级拉新镜像替换容器替换二进制文件
适用场景多数生产环境无容器平台的宿主机

进阶配置

反向代理与 HTTPS

问题:对外暴露域名后,浏览器提示不安全,Gitea 也不该直接面对公网 80/443 端口。

做法:在 Nginx 或 Caddy 前置反向代理,终结 TLS 后转发到127.0.0.1:3000,并在 Gitea 的[server]中把APP_URL改成正式的 HTTPS 地址,保证生成的链接、邮件里的链接都是对外域名。所有可调项的完整注释清单见 配置示例。

数据库选择

问题:安装向导默认给了 SQLite,生产环境该不该换。

做法app.ini[database]段支持mysqlpostgresmssqlsqlite3四种类型。个人实例用 SQLite 足够省心;多用户、多仓库、需要主从备份的环境建议上 PostgreSQL 或 MySQL,并定期执行数据库备份。

备份策略

问题:仓库数据丢了怎么恢复。

做法:Gitea 的数据集中在/data/gitea(对应安装向导里的GITEA__database配置目录),备份三件套是:数据库mysqldump/pg_dump)、仓库目录(bare repo 文件)、附件与 LFS。把这三部分纳入定时任务打包压缩即可,恢复时反向还原。建议至少保留一份异地副本,并每季度做一次恢复演练。

常见问题

Q1:SQLite 和 MySQL 差别大吗?数据量小(几十个仓库以内)用 SQLite 没有压力,配置最少;仓库多了、并发高了之后换 PostgreSQL/MySQL,DB_TYPE改一下再迁移数据即可。

Q2:改完配置要重启吗?分两类:后台管理面板里能改的动态配置即时生效;写在app.ini里的静态配置需要重启进程。判断方法是看 配置示例 里该项是否标注了"需要重启"。

Q3:升级后配置和数据会丢吗?不会,前提是数据在独立目录(Docker 的/data挂载点或自定义的GITEA_WORK_DIR)而不是镜像内部。升级 = 换新版本进程 + 旧数据目录,官方数据库迁移(modelmigration/)会自动把表结构升到新版。

Q4:能用 GitHub Actions 的现成 workflow 吗?可以。Gitea Actions 兼容 GitHub Actions 的 YAML 语法,大部分 action 直接可用;少数依赖 GitHub 特有 API 的除外。

结语

Gitea 的价值在于把"私有 Git + 协作 + CI"压缩成一个低维护成本的服务,Docker 一条命令就能先跑起来,再按团队规模逐步加反向代理、数据库和备份。仓库内资源:开发文档、完整配置示例、API 路由、Docker 构建文件。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 23:43:24

Python股票自动交易系统毕业设计:从数据到执行的完整架构与实现

简介:本资源是一套完整的本科毕业设计项目——基于Python的股票自动交易系统源码及配套材料,面向计算机、金融工程或金融科技方向的高年级本科生与初学者,解决量化交易系统开发入门难、实操案例匮乏的问题。压缩包共687个文件,涵盖…

作者头像 李华
网站建设 2026/9/4 23:42:58

网站千篇一律?前端工程师如何用工程手段摆脱模板化设计

在打开任何一个主流网站之前,先问一个前端开发者可能早就想过的问题:为什么 2020 年之后的互联网,看起来越来越像同一个网站?统一的圆角卡片、统一的“免费试用”按钮、统一的渐变背景、统一的“获取早期访问权”弹窗……甚至关闭…

作者头像 李华
网站建设 2026/9/4 23:39:20

如何在电脑上无线投屏并控制多台安卓手机?QtScrcpy 实操指南

如何在电脑上无线投屏并控制多台安卓手机?QtScrcpy 实操指南 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy 是一款开源免费的 Android 无线投屏与设备控制工具…

作者头像 李华
网站建设 2026/9/4 23:38:21

Claude HUD 不显示?5 类常见异常的快速修复指南

Claude HUD 不显示?5 类常见异常的快速修复指南 【免费下载链接】claude-hud A Claude Code plugin that shows whats happening - context usage, active tools, running agents, and todo progress 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-hu…

作者头像 李华
网站建设 2026/9/4 23:33:50

电池SOC估算:自适应扩展卡尔曼滤波与粒子滤波算法对比与实践

简介:本资源面向电池管理系统(BMS)算法研究者、新能源方向研究生及嵌入式控制工程师,聚焦锂离子电池荷电状态(SOC)高精度在线估计问题,提供基于戴维南二阶RC等效电路模型的自适应扩展卡尔曼滤波…

作者头像 李华