飞牛NAS自建Git服务器:Gitea部署教程
在团队协作或个人开发中,拥有一个私有的 Git 服务器能极大提升代码管理的灵活性与安全性。虽然 GitHub、Gitee 等平台很方便,但代码托管在第三方服务器上,总有些场景(如内网开发、敏感项目)希望完全自控。飞牛NAS(fnOS)凭借强大的 Docker 支持和便捷的存储管理,非常适合作为自建 Git 服务器的载体。
今天,我们就来一步步在飞牛NAS上部署轻量级 Git 服务——Gitea。Gitea 是一个用 Go 编写的开源 Git 服务端程序,资源占用极低,功能却非常完善,支持 Wiki、Issue 追踪、Pull Request 等,足够替代商用平台满足日常需求。
准备工作
在开始之前,请确保你的飞牛NAS已经满足以下条件:
- 系统版本:fnOS 最新稳定版(确保 Docker 功能正常)。
- 网络环境:NAS 能正常访问互联网,以便拉取镜像。
- 存储空间:为 Gitea 数据卷预留至少 1GB 空间(实际大小取决于仓库数量)。
- SSH 或网页终端:推荐使用飞牛自带的「SSH」功能或「Docker」管理界面。
第一步:创建持久化数据目录
为了让 Gitea 的数据在容器重建或升级后不丢失,我们需要在 NAS 的存储池中创建一个专用目录。建议放在 Docker 数据目录下。
打开飞牛NAS的「文件管理」,进入 docker 共享文件夹(如果不存在,请先创建)。然后新建一个名为 gitea 的文件夹。在这个文件夹下,我们再创建两个子文件夹:data(存放数据库和仓库)和 config(存放配置文件)。
最终目录结构如下:
/vol1/docker/gitea/data
/vol1/docker/gitea/config
第二步:拉取 Gitea 镜像
打开飞牛NAS的「Docker」应用,在「镜像」页面点击「拉取镜像」,输入 gitea/gitea,标签选择 latest(或指定版本如 1.21.0 以获得更好的稳定性)。点击「拉取」等待完成。
第三步:创建并启动 Gitea 容器
这是最核心的一步。在 Docker 应用的「容器」页面,点击「添加容器」,进行如下配置:
基础设置
容器名称随意,如 gitea。镜像选择刚拉取成功的 gitea/gitea:latest。
端口映射 Gitea 默认使用 3000 端口提供 Web 服务,使用 22 端口提供 SSH 服务。我们需要将宿主机的端口映射到容器内。
- Web 端口:宿主机端口建议选择一个不冲突的,比如
3300(避免和 NAS 自身的 5000/5666 冲突),容器端口填3000。 - SSH 端口:宿主机端口使用
2222,容器端口填22。这样做的好处是避免和 NAS 自身的 SSH(22)端口冲突。
存储卷映射 将我们第一步创建的目录挂载到容器内。
- 点击「添加存储卷」,选择
文件夹类型。 - 将
/vol1/docker/gitea/data挂载到容器的/data目录。 - 将
/vol1/docker/gitea/config挂载到容器的/etc/gitea目录。
环境变量 这是让 Gitea 正确识别端口映射的关键。
- 点击「添加环境变量」。
- 添加
USER_UID=1000(飞牛NAS默认用户UID)。 - 添加
USER_GID=1000。 - 添加
GITEA__server__DOMAIN=你的NAS局域网IP(例如192.168.1.100)。 - 添加
GITEA__server__HTTP_PORT=3300(这里填你映射的宿主机端口,注意不是容器端口)。 - 添加
GITEA__server__SSH_PORT=2222(同上,填映射的宿主机端口)。
其他设置保持默认,点击「创建」并启动容器。
第四步:初始化 Gitea 配置
容器启动后,打开浏览器,访问 http://你的NAS局域网IP:3300。你会看到 Gitea 的初始配置页面。
关键配置项如下:
- 数据库设置:新手建议选择
SQLite3,无需额外安装数据库,适合轻量使用。数据库文件会自动存储在/data目录下。 - 应用名称:随意填写,如
我的代码仓库。 - 仓库根目录:默认
/data/git/repositories,保持默认即可。 - 服务器域名:这里填入你访问 NAS 的地址,和之前环境变量中的保持一致。
- SSH 服务端口:填
2222。 - HTTP 服务端口:填
3300。
点击「安装 Gitea」按钮,等待几秒即可完成初始化。系统会自动创建一个管理员账号(你填写的用户名),请务必备份好密码。
第五步:日常使用与仓库创建
安装完成后,你会进入 Gitea 的主界面。
创建新仓库很简单:点击右上角的「+」号,选择「新建仓库」。填写仓库名称,选择可见性(私有/公开),点击「创建」。
克隆仓库时,注意地址会包含端口号。例如:
git clone http://192.168.1.100:3300/你的用户名/仓库名.git
或者使用 SSH 方式:
git clone ssh://[email protected]:2222/你的用户名/仓库名.git
这里的 git 用户是 Gitea 内置的 SSH 用户,密码则是你注册时的用户密码。
第六步:HTTPS 访问(可选)
如果你希望在外网通过 HTTPS 安全访问,需要在飞牛NAS的「网络设置」中配置端口转发,将外网的 443 端口转发到 NAS 的 3300 端口。同时,在 Gitea 的配置文件 app.ini 中设置 PROTOCOL = https 并配置证书。这一步比较复杂,建议先在内网使用,后续再考虑外网暴露。
常见问题与排查
端口冲突:如果启动失败,检查宿主机 3300 或 2222 是否已被占用。可以在飞牛的「终端」中执行 netstat -tlnp | grep 3300 查看。
数据备份:直接备份 /vol1/docker/gitea/data 和 /vol1/docker/gitea/config 两个文件夹即可。恢复时,将文件夹放回原位,重新创建容器并挂载相同路径即可。
SSH 连接失败:检查防火墙是否放行了 2222 端口。在飞牛「控制面板」-「安全」-「防火墙」中,添加一条允许 TCP 端口 2222 的规则。
总结
通过以上简单的六步,你就在飞牛NAS上成功部署了一个功能完备的个人 Git 服务器。整个过程只需拉取镜像、配置端口和挂载目录,Gitea 的初始化向导大大简化了安装过程。从此,你的代码完全由自己掌控,无论是团队内网协作,还是个人多设备同步,都变得高效且安全。飞牛NAS的 Docker 能力加上 Gitea 的轻量特性,使得这个方案非常适合极客玩家和小型团队。尽情享受自建代码仓库的自由吧!
暂无评论,来说两句吧