欢迎光临
我们一直在努力

本地文件夹太乱,GitLab 又太重:飞牛 NAS 搭建轻量 Gitea 代码仓库

前言

代码只有几个文件的时候,直接放在电脑文件夹里当然没问题。但脚本、Docker Compose、NAS 配置和个人项目越来越多以后,什么时候改过、为什么改、想退回上一版,这些问题就开始出现了。

全部放到 GitHub 或 Gitee 是一种办法,但有些配置和私人项目并不适合公开;自己搭 GitLab 又需要投入更多资源和维护成本。对于已经长期运行飞牛 NAS 的用户,Gitea 提供了一个更轻量的中间选择:把 Git 仓库直接放在自己的设备上,同时保留仓库、提交记录、Issue、Pull Request、Wiki 等常用功能。

本文会在一台 ARM 版飞牛 NAS 上通过 Docker 部署 Gitea,完成 SQLite3 初始化、管理员创建和第一个仓库,并实际测试 README 编辑以及从 GitHub 迁移已有项目。

随后再通过 cpolar 为 Gitea 的 3000 Web 端口增加公网入口和固定二级子域名,并从另一台 Windows 电脑使用 HTTPS 地址实际执行 git clone。最终得到的是一套代码留在自己 NAS 上,同时又能从外部网络继续访问和同步的私有 Git 平台。

1 什么是Gitea?

开源仓库地址:https://github.com/go-gitea/gitea

Gitea 是一个开源、轻量级的 Git 代码托管平台,可以理解为一个可以自己部署的“小型 GitHub”。

它支持常见的代码托管功能,比如:

  • 创建公开仓库和私有仓库
  • 在线浏览代码、提交记录和分支
  • Issue、Pull Request、Wiki
  • 用户权限管理
  • SSH / HTTP Git 克隆
  • Web 页面管理项目

相比 GitLab,Gitea 的资源占用更低,部署也更简单。对于个人开发者、小团队、NAS 用户来说,它非常适合用来搭建自己的私有代码仓库。

如果你只是想管理脚本、配置文件、Docker Compose 项目、学习代码、个人笔记仓库,那么 Gitea 基本已经够用。

2 部署前准备

本文以飞牛 NAS 为例,通过 Docker 部署 Gitea。在开始之前,需要准备好一台已经安装飞牛系统的 NAS(当然其他的系统有Docker同样可以): image-20260708172008640

本期使用的设备是rk3566刷入的arm版飞牛系统,设备内存约为 4GB,内置 eMMC 存储约为 8GB。虽然存储才8G,但是可以内置插入一块sata硬盘。Gitea 本身比较轻量,用来搭建个人私有 Git 平台、管理脚本代码、保存 NAS 配置文件等,基本是够用的。

如果你也想尝试玩玩这个设备并且刷入飞牛Nas系统,可以参考如下这篇文章:

RK3566设备刷ARM版飞牛NAS系统教程,小白也能轻松搞定!(详细图文)

有详细的图文教程,简单且好上手: image-20260708174620941

好了,接下来就开始部署Gitea之旅吧!

3 使用Docker部署Gitea

首先,访问你的飞牛Nas首页,然后点击Docker图标进入,确保Docker服务是【开启】状态: image-20260708180310377

接着选择【镜像仓库】菜单,来到镜像仓库页面,搜索【gitea】回车,然后点击gitea/gitea这行末尾的下载图标,进行下载该镜像,镜像标签默认latest即可: image-20260708180451802

下载完成后,切换到【本地镜像】菜单,点击启动的图标按钮: image-20260708180710564

勾选开机自动开启,然后下一步: image-20260708180738875

来到端口配置页面,将左边部分22端口修改为【2222】端口,默认22端口为ssh端口,不修改后续可能会冲突。3000端口也可以自行修改或保持默认然后继续下一步即可: image-20260708181003018

接着,勾选【创建后启动】,然后点击创建容器: image-20260708181057242

接着,左侧菜单切换至【容器】菜单,鼠标上移至gitea的链接图标,选择3000端口点击:

image-20260708181147317

点击后就会跳转到gitea的初始化配置页面: image-20260708181300539

数据库默认为SQLite3,修改其中的站点名称为你喜欢的名称或保持默认,然后ssh服务端口改为【2222】: image-20260708181800631

接着滚动到底部,点击立即安装即可(如果需要配置电子邮箱,也可以在这一步进行配置): image-20260708181929506

点击立即安装后,页面会显示【正在安装,请稍等】,安装完成后会进入注册页面: image-20260708182042712

注册的第一个账号为管理员账号,拥有管理员权限。注册完成后,就会来到如下页面: image-20260708182151306

这样Gitea的安装部署和初始化就完成啦!

4 创建第一个仓库

首先,点击右上角【+】号,点击创建仓库: image-20260709163041427

填写完成基本信息后,滚动到底部点击创建仓库进行创建,创建完成后即可看到创建成功,如下图所示: image-20260709163211099

此时如果你的电脑或者其他设备和这台飞牛Nas处于同一个局域网下,就可以访问到这个Gitea站点,然后进行该仓库关联和提交推送文件了。这里以新建文件举例,点击新建文件按钮: image-20260709163606221

添加完成后,可以看到仓库中多了一个【README.md】的文件了,并且也直接渲染了该文件的内容: image-20260709163706128

后续如果需要上传本地项目,也可以在电脑上使用 Git 命令,将本地代码提交到这个仓库中。比如仓库页面中会提供 HTTP 和 SSH 两种克隆地址,根据自己的使用习惯选择即可。 对于日常保存脚本、Docker Compose 文件、NAS 配置文件、学习项目来说,这样一个私有仓库就已经比较够用了。代码不再散落在各个文件夹里,后续修改、回退、查看历史记录也会方便很多。

5 迁移外部仓库

除了手动创建新仓库以外,Gitea 还支持从外部 Git 平台迁移仓库,比如 GitHub、Gitee、GitLab 等。如果你之前已经有一些项目托管在其他平台,也可以直接迁移到自己的 Gitea 私有平台中。 首先,点击右上角【+】号,选择【迁移外部仓库】:

image-20260709164218959

进入迁移页面后,可以看到 Gitea 支持多种迁移来源。这里以 GitHub 仓库为例,只需要填写原仓库的克隆地址即可:

image-20260709164423241

稍等一会儿(等待时长取决于目标的仓库大小),即可看到目标仓库完整的显示在我们当前Gitea站点下啦:

image-20260709164552399

并且克隆迁移过来其中的图片一样也都能正常显示:

image-20260709170003116

这样,你在 GitHub 上已有的项目就可以快速迁移到自己的 Gitea 私有平台中。后续无论是代码提交、版本管理,还是仓库备份和团队协作,都可以直接在自建的 Gitea 中完成,不再完全依赖外部代码托管平台。

6 下载安装cpolar

到这里,Gitea 已经在飞牛 NAS 上部署完成,也可以正常创建仓库、上传代码和迁移外部仓库。不过此时的 Gitea 仍然主要运行在 本地局域网环境 中,一旦离开家里或公司网络,就很难直接访问这个私有 Git 平台。 这对于代码管理来说会有些不方便。

比如外出时想查看某个项目文件,换一台电脑想 git clone 仓库,或者需要远程提交、同步代码,如果只能依赖局域网地址,就会受到很大限制。尤其是大多数家庭宽带和 NAS 环境并没有 公网 IP,手动配置路由器端口映射、DDNS、防火墙规则也比较麻烦。

所以接下来使用 cpolar 内网穿透,将飞牛 NAS 上运行的 Gitea Web 服务映射到公网。这样即使没有公网 IP,也不用折腾路由器配置,就可以获得一个外网访问地址,实现 远程访问 Gitea、公网克隆仓库、固定域名长期使用。

6.1 什么是 cpolar?

cpolar

cpolar 是一款内网穿透工具,可以把局域网内运行的服务映射到公网。

简单来说,只要服务已经在本地跑起来,比如本文中的 Gitea 3000 端口,就可以通过 cpolar 创建公网访问地址。这样外部设备不需要配置路由器端口转发,也能远程访问本地服务。

cpolar 支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,也适合飞牛 NAS 这类支持 SSH 和 Docker 的设备使用。

6.2 安装 cpolar

首先,进入【系统设置】中,选择【SSH】,将其启用:

image-20260505174623872

接着,电脑摁下【Win + X】键,选择【终端(管理员)】打开PowerShell窗口:

image-20260505174939658

然后在终端输入如下ssh命令,进行远程连接你的飞牛Nas终端:

ssh rk3566@192.168.50.212

如下图所示:

111

接着,在终端执行如下命令,切换至root用户(输入密码时不会显示):

sudo -i

image-20260505180939492

然后,执行下面命令安装 cpolar:

sudo curl https://get.cpolar.sh | sh

如下图所示:

image-20260509152034028

安装完成后,执行下面命令查看 cpolar 服务状态:

sudo systemctl status cpolar

如下图所示:

image-20260509152054654

如果状态中显示 【active (running) 】就说明 cpolar 已经正常启动。

接着,在浏览器中输入下面地址,访问 cpolar 的 Web UI 控制台,例如我这里的飞牛 NAS IP 是 192.168.50.212,所以访问地址就是:

http://192.168.50.212:9200

如下图所示:

image-20260509152129581

可以看到,已经成功进入 cpolar 的 Web UI 页面。如果还没有注册 cpolar 账号,也可以点击页面底部的注册入口先完成账号注册。

7 随机域名方式(免费测试)

随机域名方式更适合临时测试或短期使用。使用该方式时,公网访问地址会在一段时间后发生变化,通常不适合长期固定访问。不过它的优点是配置简单、可以免费体验。如果后续需要长期访问 Gitea,或者希望团队成员使用同一个稳定地址,可以继续参考后面的 固定域名方式,访问体验也会更稳定。

首先,点击左侧菜单栏的【隧道管理】,展开进入【隧道列表】页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

image-20260509152805723

点击编辑【website】隧道或创建一条新的隧道,设置一个隧道名称(自定义即可),协议选择【http】,本地地址填写Gitea的访问端口【3000】,地区这里选择的【China VIP】,最后点击更新:

image-20260709183436735

创建或者更新完成后,接着点击【状态>在线隧道列表】,可以看到同一个隧道生成了两个不同协议的公网访问地址,一个是 http,另一个是 https:

image-20260709200552500

这里以https为例,访问测试一下:

image-20260709202049277

访问成功!这说明飞牛 NAS 上运行的 Gitea 服务,已经可以通过 cpolar 生成的公网地址访问了。此时即使不在同一个局域网下,也可以通过浏览器打开自己的 Gitea 私有 Git 平台。

8 固定域名方式(长期使用)

通过前面的随机域名方式,我们已经验证了 Gitea 可以正常通过公网访问。不过随机域名会不定期变化,对于普通 Web 页面来说可能只是重新打开一个新地址,但对于 Git 仓库来说会更麻烦。

因为当我们执行 git clone 或 git remote add origin 后,仓库地址会被保存到本地 Git 配置中。如果访问域名变化,后续 git pull、git push 都可能无法正常使用,还需要手动修改远程仓库地址。

所以如果准备把 Gitea 当作长期使用的私有 Git 平台,更推荐配置 固定二级子域名。这样后续无论是浏览器访问、收藏书签,还是远程克隆仓库,都可以使用同一个稳定地址。

8.1 保留固定二级子域名

首先,登录 cpolar 官网后台,进入 预留 页面:

https://dashboard.cpolar.com/reserved

在左侧菜单中选择【预留】,找到【保留二级子域名】配置项。

image-20260709202558159按照下面信息填写:

配置项填写说明
地区 选择和前面隧道一致的地区
名称 自定义二级子域名,例如 gitea01,注意:该项不能重复,二级子域名名称是唯一的
描述 填写任意方便辨识的备注即可

填写完成后,点击【保留】按钮。保留成功后,会得到一个固定的二级子域名。后续我们就可以把这个固定域名绑定到 Gitea 隧道上。

8.2 修改 Gitea 隧道为固定域名

回到飞牛 NAS 上的 cpolar Web UI 管理界面,点击左侧菜单【隧道管理】→【隧道列表】,找到前面配置的 Gitea 隧道,点击【编辑】: image-20260709202917519

将域名类型修改为【二级子域名】,并填写刚才在官网后台保留的二级子域名,然后点击更新按钮: image-20260709203428250

更新完成后,点击左侧菜单【状态>在线隧道列表】,可以看到 Gitea 隧道已经变成固定公网地址: image-20260709203747644

复制生成的固定公网地址,在浏览器中访问:

image-20260709203951759

可以看到,同样可以通过固定公网地址访问到 Gitea 页面。这样后续就不用担心随机域名变化,无论是浏览器访问,还是复制仓库地址进行 git clone,都会更加稳定。

9 使用公网地址克隆仓库

Gitea 的公网访问配置完成后,接下来我们再测试一下 Git 仓库是否可以通过公网地址正常克隆。 首先,点击首页的探索按钮,可以看到前面迁移过来的仓库和手动创建的test仓库: image-20260709204728366 就以迁移过来的仓库为例,点击进入仓库页面,复制仓库的地址: image-20260709204809449

接着使用如下克隆命令,进行克隆拉取仓库:

git clone https://gitea01.vip.cpolar.cn/admin/hp-prodesk-600-g4-efi.git

如下图(确保电脑上已经安装了git环境,这里演示的为Windows终端拉取): image-20260709205025041

可以看到,仓库已经成功克隆到本地。这样就说明 Gitea 不只是 Web 页面可以通过公网访问,仓库本身也可以通过固定公网地址进行 git clone 拉取。

总结

Gitea 解决的并不是“GitHub 不好用”,而是给那些希望自己保存代码的人多了一种选择。

和单纯把项目塞进文件夹相比,它保留了 Git 的提交、版本和仓库管理能力;和更重的代码托管平台相比,在个人 NAS 上部署又相对简单。这次不仅创建了新的私有仓库,也测试了外部 GitHub 仓库迁移,因此原来散落在不同位置的脚本和项目,可以逐渐集中到同一个 Gitea 中管理。

通过 cpolar 给 3000 端口配置固定公网入口后,Web 页面和 HTTPS 仓库地址也可以继续在外部网络使用。实际测试中,远程电脑已经能够通过固定地址执行 git clone,这对于长期保存 Git Remote 地址尤其重要,因为不需要随着随机域名变化反复修改仓库配置。

如果只是托管个人代码、NAS 配置、Docker 项目或者小团队仓库,Gitea 已经能够覆盖大部分常见需求。它更像是在自己的 NAS 里留出一块专门管理代码的地方,而不是为了重新造一个完整的 GitHub。

赞(0)
未经允许不得转载:171主机测评 » 本地文件夹太乱,GitLab 又太重:飞牛 NAS 搭建轻量 Gitea 代码仓库
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址