- Gitea 是 GitLab 和 GitHub 的轻量级替代方案,它消耗的系统资源非常少。
- 该安装程序基于通过 SystemD 作为服务进行管理的可执行二进制文件。
- 使用 Nginx 反向代理对于通过 HTTPS 实现安全访问至关重要。
- 它允许将现有存储库从其他平台迁移过来,同时保留问题和标签。

如果您厌倦了依赖 GitHub 或 GitLab 等巨头的规则、成本或可用性,那么构建自己的基础设施才是正道。在家中或办公室拥有 Git 服务器,就如同拥有了王国的钥匙:对代码的绝对控制权、全面的访问权限管理,以及免受第三方对私有仓库的限制,让您高枕无忧。
在所有可用的选项中,Gitea 堪称一颗璀璨的明珠。它是一款用 Go 语言编写的工具,因此极其轻量级且速度极快,非常适合那些不想为 Git 服务器分配 16 GB 内存的用户。与功能丰富但资源消耗巨大的 GitLab 不同,Gitea 就像一艘快艇:它直奔主题,资源消耗极低,并且为任何使用过 GitHub 的用户提供了非常熟悉的界面。
快速对比:Gitea、GitLab 和 Forgejo

在开始安装之前,了解一下你将要使用的工具非常重要。GitLab 是典型的企业级解决方案,非常适合需要集成 CI/CD 的大型团队,但它对硬件配置要求很高。而 Gitea 则内存占用极低,是小型服务器或个人项目的最佳选择。最后,还有 Forgejo,它是 Gitea 的一个社区分支;如果你是自由软件的纯粹主义者,并且偏好开放的治理模式,不希望受到任何企业因素的影响,那么 Forgejo 就是你的理想之选。
开始之前你需要准备什么

为确保一切顺利运行,请确保您拥有一台具有 root 权限的Linux 服务器(Ubuntu、Debian 或 Rocky Linux 均可)。此外,服务器上必须安装 Git。虽然 Gitea 允许使用 SQLite,但对于生产环境,强烈建议使用PostgreSQL 或 MariaDB以保证数据稳定性。
为系统做好准备

出于安全考虑,以 root 用户身份运行 Gitea 并非明智之举。最好创建一个专用用户。您可以通过运行以下命令来创建专用用户: adduser --system --shell /bin/bash --group --home /home/gitea gitea. 必须使用 /bin/bash 作为 shell 因为 Gitea 需要通过 SSH 与 git-shell 交互。如果您尚未安装 Git,只需简单地安装即可。 apt install git 将迅速解决问题。
二进制安装和文件夹结构

Gitea 可以通过多种方式安装,但最直接的方式是使用二进制文件。您应该在其官方网站上找到最新的稳定版本,并使用 [method/method] 下载。 wget en /usr/local/bin/gitea稍后再说 使用 chmod +x 执行权限为了使程序正常运行,必须创建一系列特定的目录: /etc/gitea 用于配置和 /var/lib/gitea 用于自定义数据、日志和文件。别忘了调整 属性权限(chown) 这样用户 gitea 就可以向他们写入数据。
数据库配置
如果选择 PostgreSQL,除了数据库之外,还需要安装软件包并创建一个具有强密码的特定角色。 giteadb 使用 UTF-8 编码。如果您更喜欢 MariaDB,过程类似:创建数据库和用户,并确保…… 存储引擎是 InnoDB 服务器正在监听端口 3306。
使用 SystemD 实现自动化
为了避免每次重启服务器后都要手动启动 Gitea,最好在 /etc/gitea.htm 目录下创建一个驱动器文件。 /etc/systemd/system/gitea.service该文件告诉系统: Gitea 必须作为服务运行定义用户、组和二进制文件路径。创建完成后,只需运行即可。 systemctl enable --now gitea 服务器将默认开始监听 3000 端口。
首次接触网页界面
阿恩特拉尔 http://tu-ip:3000接下来您将看到设置向导。在这里,您需要连接数据库(指定主机、用户名和密码)并定义…… 网站常规设置例如实例名称和基本 URL。此外,现在还需要配置 SSH 服务器,并决定是否允许任何人注册,或者您是否希望…… 禁用公共日志记录 为了保持服务器的私密性。
使用 Nginx 实现安全性和专业访问
通过 3000 端口访问 Gitea 效率低下且不安全。理想的解决方案是使用Nginx设置反向代理。这样用户就可以通过域名(例如 git.yourdomain.com)访问该网站,并确保所有流量都使用Let's Encrypt SSL 证书进行加密。在 Nginx 配置中,只需将 443 端口的流量重定向到 Gitea 的 3000 端口,并添加 X-Forwarded-For 标头以避免丢失客户端的真实 IP 地址。
用户管理和代码迁移
如果您禁用了开放式日志记录,则可以使用命令行创建第一个管理员。 gitea admin user create进入后,您可以添加您的 公钥 SSH 密钥 在用户个人资料中,无需每次都输入密码即可克隆存储库。如果您已经在 GitHub 上拥有代码,Gitea 也提供了相应的功能。 集成迁移工具 它不仅会自动导入代码,还会自动导入问题和标签。
维护和调校
维护 Gitea 非常简单。要更新,只需下载新的二进制文件,替换旧文件,然后重启服务即可。要进行备份,请使用以下命令。 gitea dump 是你最好的朋友,因为它能产生…… 包含所有内容的压缩文件数据库、配置和代码仓库。对于电子邮件,您可以配置外部 SMTP 服务器(例如 Gmail),或者在服务器上安装 Postfix 以接收拉取请求和警报通知。
实施 Gitea 可以让您拥有一个强大、轻量级且完全私有的版本控制平台,通过基于二进制的安装、优化的数据库和反向代理,消除对外部服务的依赖,并通过 HTTPS 保证流量安全。