如何搭建私有Git服务器?Gitea安装与配置超详细教程 (替代GitHub/Gitee)

发布于:2025-08-12 ⋅ 阅读:(17) ⋅ 点赞:(0)

更多云服务器知识,尽在hostol.com

你的代码,是什么?

我们常常说,代码是冰冷的逻辑,是0和1的组合。但你我心里都清楚,它远不止于此。它是你的思想结晶,是你无数个深夜爆肝的成果,是你解决了一个复杂问题后,那种难以言喻的成就感的见证。它是你向这个世界展示你才华的、最硬核的名片。

那么,这样一个对你来说无比宝贵的东西,你是愿意把它“”放在一个公共的、人来人વાર的“云端公寓”(比如GitHub或Gitee)里,还是更渴望为它建造一座完全由你掌控、安全私密、并且可以随心所欲“装修”的“私人城堡”?

如果你对后者,哪怕有过一丝丝心动,那么,恭喜你,这篇文章就是为你量身定做的。

“云端公寓”虽好,但毕竟不是自己的家

在动手建造“城堡”之前,我们必须公平地评价一下“云端公寓”的好处。GitHub和Gitee,这两位“世界级房东”,无疑是伟大、便捷且功能强大的。

  • GitHub: 它是全球开发者的“中央公园”和“社交广场”。你在这里,可以与全世界最顶尖的开发者交流,参与到最前沿的开源项目中。它是你简历上含金量最高的“技术认证”。但对于国内的我们来说,这位“房东”住得有点远,有时候,我们去他家串个门(git push/pull),路上的网络可能会有点堵。
  • Gitee (码云): 它是我们国内开发者自己的“小区活动中心”。访问速度飞快,体验流畅,还集成了很多符合国人使用习惯的特色功能。对于纯国内的团队协作和项目托管,它的体验,无可挑剔。

这两者都很好。但是,“租房”住,总归有一些无法回避的“痛点”:

  • 你没有“房产证”: 你的代码,虽然属于你,但它存放在别人的服务器上。平台的规则、服务条款、甚至国际关系的变化,都可能在理论上,影响到你对自己代码的访问。
  • “装修”风格受限: 你无法深度定制平台的功能,无法随心所欲地集成你自己的自动化流程(CI/CD)。
  • “邻居”太多: 共享的平台,意味着你的代码上传下载速度,总会受到平台整体带宽和他人的影响。
  • “房间”数量有限: 大部分平台对于免费的“私有仓库”数量或协作者数量,或多或少都有一些限制。

那么,有没有一种选择,能让我们同时拥有Git强大的版本控制能力,又能彻底摆脱上述所有烦恼呢?

答案是:有!那就是亲手为你的代码,建造一座“私人城堡”——自建Git服务。

为什么要建自己的“代码城堡”?

“太折腾了吧?”你可能会想。不,这绝不是折腾,这是一次一劳永逸的“投资”,你将获得的是:

  1. 绝对的数据主权: 你的代码,只存在于你的服务器硬盘上。除了你自己,没有人能看到它、扫描它、分析它。这种100%的掌控感,是任何第三方平台都给不了的。
  2. 极致的性能体验: 你的每一次git push,都是一次对你服务器的“独享专线”访问。那速度,那流畅度,会让你从此对Gitee的“快”都变得不屑一顾。
  3. 无限的“房间”和“钥匙”: 你想创建多少个私有仓库,就创建多少个。你想邀请多少个小伙伴来一起“添砖加瓦”,就邀请多少个。再也没有任何限制。
  4. 无与伦比的学习价值: 搭建和维护自己的Git服务,这个过程本身,就是一次极好的Linux服务器运维实践。

“城堡施工方案”:选择轻巧而强大的Gitea

要建城堡,我们得选一套好的“施工图纸和建材”。

忘了那些需要一台8核16G服务器才能跑起来的“史前巨兽”(比如重量级的GitLab)吧。对于我们个人开发者和小型团队,我们的选择标准是:轻量、高效、易于安装。

在这里,我为你推荐我的“梦中情选”——Gitea

  • 它是什么? Gitea是一个用Go语言编写的、社区驱动的、超轻量级的自托管Git服务。
  • 它有多轻? 轻到一台1核1G内存的服务器,都能流畅地运行它。
  • 它有多好用? 它提供了你所熟悉和喜爱的、类似GitHub的漂亮Web界面,包括代码仓库管理、Pull Request、Issues跟踪、Wiki等等,功能一应俱全。

好了,蓝图已定,我们立刻开工!

第一步:为“城堡”打地基 (安装Gitea)

当然,今天我们就来深入聊聊开发者世界里的一个“终极梦想”——拥有一个完全属于自己的代码仓库。这不仅仅是一个技术教程,更是一篇关于“数字主权”和“创作自由”的宣言。


Gitee vs GitHub:在国内,如何利用服务器搭建自己的Git代码仓库?

你的代码,是什么?

我们常常说,代码是冰冷的逻辑,是0和1的组合。但你我心里都清楚,它远不止于此。它是你的思想结晶,是你无数个深夜爆肝的成果,是你解决了一个复杂问题后,那种难以言喻的成就感的见证。它是你向这个世界展示你才华的、最硬核的名片。

那么,这样一个对你来说无比宝贵的东西,你是愿意把它“”放在一个公共的、人来人વાર的“云端公寓”(比如GitHub或Gitee)里,还是更渴望为它建造一座完全由你掌控、安全私密、并且可以随心所欲“装修”的“私人城堡”?

如果你对后者,哪怕有过一丝丝心动,那么,恭喜你,这篇文章就是为你量身定做的。

“云端公寓”虽好,但毕竟不是自己的家

在动手建造“城堡”之前,我们必须公平地评价一下“云端公寓”的好处。GitHub和Gitee,这两位“世界级房东”,无疑是伟大、便捷且功能强大的。

  • GitHub: 它是全球开发者的“中央公园”和“社交广场”。你在这里,可以与全世界最顶尖的开发者交流,参与到最前沿的开源项目中。它是你简历上含金量最高的“技术认证”。但对于国内的我们来说,这位“房东”住得有点远,有时候,我们去他家串个门(git push/pull),路上的网络可能会有点堵。
  • Gitee (码云): 它是我们国内开发者自己的“小区活动中心”。访问速度飞快,体验流畅,还集成了很多符合国人使用习惯的特色功能。对于纯国内的团队协作和项目托管,它的体验,无可挑剔。

这两者都很好。但是,“租房”住,总归有一些无法回避的“痛点”:

  • 你没有“房产证”: 你的代码,虽然属于你,但它存放在别人的服务器上。平台的规则、服务条款、甚至国际关系的变化,都可能在理论上,影响到你对自己代码的访问。
  • “装修”风格受限: 你无法深度定制平台的功能,无法随心所欲地集成你自己的自动化流程(CI/CD)。
  • “邻居”太多: 共享的平台,意味着你的代码上传下载速度,总会受到平台整体带宽和他人的影响。
  • “房间”数量有限: 大部分平台对于免费的“私有仓库”数量或协作者数量,或多或少都有一些限制。

那么,有没有一种选择,能让我们同时拥有Git强大的版本控制能力,又能彻底摆脱上述所有烦恼呢?

答案是:有!那就是亲手为你的代码,建造一座“私人城堡”——自建Git服务。

为什么要建自己的“代码城堡”?

“太折腾了吧?”你可能会想。不,这绝不是折腾,这是一次一劳永逸的“投资”,你将获得的是:

  1. 绝对的数据主权: 你的代码,只存在于你的服务器硬盘上。除了你自己,没有人能看到它、扫描它、分析它。这种100%的掌控感,是任何第三方平台都给不了的。
  2. 极致的性能体验: 你的每一次git push,都是一次对你服务器的“独享专线”访问。那速度,那流畅度,会让你从此对Gitee的“快”都变得不屑一顾。
  3. 无限的“房间”和“钥匙”: 你想创建多少个私有仓库,就创建多少个。你想邀请多少个小伙伴来一起“添砖加瓦”,就邀请多少个。再也没有任何限制。
  4. 无与伦比的学习价值: 搭建和维护自己的Git服务,这个过程本身,就是一次极好的Linux服务器运维实践。

“城堡施工方案”:选择轻巧而强大的Gitea

要建城堡,我们得选一套好的“施工图纸和建材”。

忘了那些需要一台8核16G服务器才能跑起来的“史前巨兽”(比如重量级的GitLab)吧。对于我们个人开发者和小型团队,我们的选择标准是:轻量、高效、易于安装。

在这里,我为你推荐我的“梦中情选”——Gitea

  • 它是什么? Gitea是一个用Go语言编写的、社区驱动的、超轻量级的自托管Git服务。
  • 它有多轻? 轻到一台1核1G内存的服务器,都能流畅地运行它。
  • 它有多好用? 它提供了你所熟悉和喜爱的、类似GitHub的漂亮Web界面,包括代码仓库管理、Pull Request、Issues跟踪、Wiki等等,功能一应俱全。

好了,蓝图已定,我们立刻开工!

第一步:为“城堡”打地基 (安装Gitea)

这个过程,比你想象的要简单得多。我们将使用最直接、最干净的“二进制”安装方式。

  1. 为Gitea创建一个专属“管家” 我们不应该用root账户来运行Gitea,这不安全。我们为它创建一个专门的、低权限的系统用户,比如git

Bash

sudo adduser git

(根据提示为git用户设置一个密码)

2下载Gitea“城堡主体结构” 我们切换到git用户,并进入它的主目录。

Bash

su - git
cd ~

去Gitea的官网或GitHub发布页面,找到最新版本的、适用于linux-amd64的二进制文件下载链接,然后用wget下载它。

Bash

# 注意:请替换成你看到的最新版本链接
wget -O gitea https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-amd64

给它加上可执行权限。

Bash

chmod +x gitea

现在,你的“城堡”主体就已经有了。你可以通过 ./gitea web 命令临时启动它来测试一下。

3聘请一位“智能管家” (配置Systemd服务) 我们总不能每次都手动去启动Gitea吧?我们需要让系统来自动管理它,让它能开机自启。这就需要用到systemd

切回到你的sudo用户)

Bash

exit # 从git用户切回
sudo nano /etc/systemd/system/gitea.service

在打开的文件里,粘贴以下内容(这是Gitea官方推荐的“管家配置单”):

Ini, TOML

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/
ExecStart=/home/git/gitea web --config /home/git/gitea/custom/conf/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/home/git/

[Install]
WantedBy=multi-user.target

保存退出。然后,让“管家”系统重新加载配置,并正式“雇佣”这位Gitea管家,让它立刻上岗,并且设置“永久雇佣”(开机自启)。

Bash

sudo systemctl daemon-reload
sudo systemctl start gitea
sudo systemctl enable gitea

第二步:“内部精装修” (Gitea Web安装向导)

现在,你的Gitea服务,已经在你服务器的3000端口上,悄悄地运行起来了。

打开你的浏览器,访问 http://你的服务器IP:3000

你会看到一个漂亮的安装向导页面。别慌,这是Gitea这位“总设计师”,在动工前,最后一次和你确认“装修图纸”。

  • 数据库设置: 对于个人使用,数据库类型请选择SQLite3!这是Gitea最迷人的地方之一,它不需要你额外安装MySQL,自带一个轻量级的数据库文件。真正的“开箱即用”。
  • 应用基本设置:
    • 站点标题: 给你的代码城堡起个霸气的名字!
    • 仓库根目录: 保持默认的/home/git/gitea-repositories即可。
    • 服务器域名: 暂时填写你的服务器IP地址
    • Gitea 基本 URL: 暂时填写 http://你的服务器IP:3000/
  • 管理员账号设置: 这里,务必创建一个属于你自己的管理员账号和密码。

确认无误后,点击最下方的“立即安装”。稍等片刻,一个崭新的、完全属于你的、功能媲美GitHub的Gitea界面,就会呈现在你眼前!

第三步:“修建宏伟的正门” (使用Nginx反向代理)

现在,你的城堡已经建好了,但每次进去,都要通过“IP地址:3000”这个“施工小门”,这既不优雅,也不安全。我们需要为它修建一个宏伟、气派、且有顶级安保的“正门”,比如 git.yourdomain.com

这就需要我们那位老朋友——Nginx出场了。

1创建Nginx配置文件。

Bash

sudo nano /etc/nginx/sites-available/gitea

输入以下反向代理配置:

Nginx

server {
    listen 80;
    server_name git.yourdomain.com; # 换成你自己的域名

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        # ... 此处省略其他几行proxy_set_header...
    }
}

2启用配置并用Certbot开启HTTPS。 这个流程,你现在肯定已经驾轻就熟了。启用这个配置,然后运行sudo certbot --nginx,为你的git.yourdomain.com也配上免费的SSL证书。

3最后一步:更新Gitea的URL配置。git用户登录,编辑Gitea的配置文件:

Bash

su - git
nano /home/git/gitea/custom/conf/app.ini

把里面的ROOT_URLDOMAIN,都改成你最终的、带有https的域名,比如https://git.yourdomain.com/。然后重启Gitea服务。

欢迎来到你的“代码城堡”

现在,当你通过https://git.yourdomain.com,访问你那个崭新的、漂亮的、运行在你自己的服务器上的Gitea界面时,你应该能感受到一种前所未有的满足感和安全感。

你不再是“云端公寓”里的一个匆匆过客,你成了自己“代码城堡”的国王。这座城堡里的每一行代码,每一次提交,都由你全权掌控,烙上了你独一无二的印记。

去吧,去邀请你的伙伴,或者,就你自己,开始在这片完全属于你的土地上,建造你的下一个伟大工程吧。