飞牛NAS自建Git服务器:Gitea部署教程
为什么需要在飞牛NAS上自建Git服务器
很多开发者习惯把代码托管在GitHub、Gitee或GitLab等公共平台,但出于代码隐私、团队协作成本或网络访问速度的考虑,自建一套Git服务往往更灵活。飞牛NAS作为一台7x24小时运行的家庭或小型团队服务器,非常适合承担这一角色。
在众多Git服务方案中,Gitea以其轻量、低资源占用、安装简单而著称。它基于Go语言编写,单二进制文件即可运行,对NAS的硬件要求极低,哪怕是J4125这类入门级处理器也能轻松带动。本文将手把手带你在飞牛NAS的Docker环境中部署Gitea,并完成基础配置。
准备工作
在开始之前,请确保你的飞牛NAS已经满足以下条件:
- 系统版本为fnOS最新稳定版
- Docker套件已安装并正常运行(可在应用中心安装)
- 已设置好存储空间,建议为Gitea单独划分一个文件夹用于存放数据
- 了解NAS的IP地址和端口转发基本概念
第一步:创建数据目录
SSH登录飞牛NAS,或直接在文件管理器中创建目录。推荐使用SSH方式,方便后续命令操作。打开终端,输入:
sudo mkdir -p /vol1/docker/gitea/data
sudo mkdir -p /vol1/docker/gitea/config
这里的/vol1是飞牛NAS的默认存储池挂载点,如果你的存储池名称不同,请相应调整。data目录存放Git仓库数据,config目录存放Gitea的配置文件。
第二步:使用Docker部署Gitea
飞牛NAS的Docker管理器提供了图形界面,但为了更精确控制参数,我们直接在SSH中使用docker run命令。
sudo docker run -d \
--name=gitea \
--restart=always \
-p 3000:3000 \
-p 2222:22 \
-v /vol1/docker/gitea/data:/data \
-v /vol1/docker/gitea/config:/etc/gitea \
-e USER_UID=1000 \
-e USER_GID=1000 \
gitea/gitea:latest
参数说明:
- -p 3000:3000:Gitea的Web界面端口,你可以改成其他端口如8080
- -p 2222:22:SSH端口映射,因为NAS自身的22端口已被SSH占用,所以将Gitea的SSH端口映射到2222,避免冲突
- -v:挂载数据目录和配置目录
- USER_UID和USER_GID:建议设为1000,对应飞牛NAS的默认用户,避免权限问题
执行命令后,Docker会自动拉取最新版Gitea镜像并启动容器。等待几十秒后,访问http://你的NASIP:3000,应该能看到Gitea的安装引导页面。
第三步:初始化配置
首次访问会进入Gitea的安装引导界面。这里的配置非常关键,请按以下建议填写:
数据库设置:对于个人或小团队使用,选择SQLite3即可,无需额外安装MySQL或PostgreSQL。如果你已有MySQL服务且想统一管理,也可以选择MySQL,但SQLite更省心。
通用设置:
- 站点名称:随意,比如“我的代码仓库”
- 仓库根路径:保持默认/data/git/repositories
- Git LFS根路径:保持默认/data/git/lfs
- 运行用户名:git
- SSH端口:填入2222(因为我们在Docker映射中用了2222)
- HTTP端口:填入3000
管理员账户:创建一个管理员账号,这是你登录Gitea的超级管理员,务必牢记密码。
填写完成后点击“立即安装”,等待几秒即可完成。
第四步:配置SSH访问
为了让本地Git客户端能够通过SSH协议与Gitea交互,还需要做一处配置。进入Gitea的“站点管理”->“配置”,找到“SSH服务器”部分,确认以下设置:
- SSH端口:2222
- SSH基础路径:
/data/git/.ssh
然后进入你的用户设置页面,添加你的SSH公钥。如果你还没有生成过SSH密钥,可以在本地电脑上执行:
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
将生成的~/.ssh/id_rsa.pub内容复制到Gitea的“SSH公钥”输入框中。
第五步:创建仓库并测试
以上配置完成后,就可以创建第一个仓库了。在Gitea首页点击“+”号,新建仓库。仓库名随意,比如“test-repo”。
在本地电脑上,用SSH方式克隆测试:
git clone ssh://git@你的NASIP:2222/用户名/test-repo.git
注意这里的端口是2222而非常规的22。如果克隆成功,说明整个部署流程已经打通。
进阶优化建议
配置HTTPS:如果你有域名和SSL证书,可以在Gitea的app.ini中配置HTTPS。编辑/vol1/docker/gitea/config/app.ini,在[server]段添加:
PROTOCOL = https
CERT_FILE = /data/cert.pem
KEY_FILE = /data/key.pem
然后将证书文件复制到/vol1/docker/gitea/data/目录下,重启容器即可生效。
数据备份:定期备份/vol1/docker/gitea/data目录,尤其是git/repositories文件夹,这就是你所有仓库的核心数据。可以结合飞牛NAS的定时任务脚本,每天自动打包备份到其他存储池。
使用反向代理:飞牛NAS自带Web服务,你可以将git.yourdomain.com反向代理到localhost:3000,实现更规范的访问入口。
总结
通过以上五步,你已经在飞牛NAS上成功部署了一套功能完整的Gitea Git服务器。整个过程约需15分钟,资源占用极低(内存约200MB),却提供了堪比GitHub的核心体验。Gitea支持Web编辑器、Issue追踪、Pull Request、CI/CD集成等功能,完全满足个人或小团队的日常开发需求。
自建Git服务器的最大优势在于数据自主可控,配合飞牛NAS的RAID存储和定期快照,你的代码将获得比公共平台更可靠的安全性。现在就去创建一个仓库,开始你的自托管代码之旅吧。
暂无评论,来说两句吧