【nas专栏】用私有云 nas 搭建 gitea 仓库的快乐你不懂

4,053 阅读5分钟

阅读提示:在我之前的 文章 介绍了如何搭建一个自己的私有云nas服务的思路和方法。本文对自己有 nas 私有云或者服务器,并且有docker的胖友帮助可能更多,其它胖友可以选择性观看

背景

对于开发人员来说,最重要的莫过于自己写的代码(质量咱先不说)。虽然现在有很多的的代码托管平台,比如:github、gitee、coding、aliyun...

但是!!

最终你的代码都是放在别人家的服务器上,虽然大公司大平台理论不会出现什么意外,但是由于国内的政策,指不定哪天你的代码由于某某政策就被封了,又或者是公司运维是个实习生,一不小心把 mv 写成了 rm -rf

所以代码掌握在别人手里,你永远没有主动权,国内某某云盘和谐视频资源就是一个很好的例子。人家想怎么样你没得选。只能任人鱼肉!!!

我一个老油条开发哪能受的了这委屈,就开始想着用我 nas 上的 docker 镜像本地部署一套。

文章大纲

  1. 介绍
  2. 环境配置
  3. gitea 搭建
  4. 迁移项目到 gitea
  5. 总结
  6. 其它

1. 介绍

gitea 是目前市面上非常轻量化的代码管理仓库,它的优势主要有:

  1. 安装和配置简单:可视化界面部署
  2. 性能强,速度快:底层用的 go 编写
  3. 兼容性好:完全兼容 git
  4. 占用内存超级小:到底有多小呢,看下图 image.png

我转头看看 gitlab 快3个G的安装大小,这还要什么自行车,四舍五入一下等于不占内存,果断选择gitea。

  1. 拓展性强:企业和个人都可以根据需要自己添加拓展

2. 环境配置

本文会以黑群晖的 docker 方案为主。(理论有 docker 的服务器方法也是一样的。) 所以胖友首先你得先大概了解群晖,后面看起来不会那么吃力。

2.1 前期准备

在 docker container 安装gitea 和 gitea-runner 两个镜像文件: image.png

2.2 创建docker用户组

image.png image.png

  1. 打开控制面板 - 进入用户与群组
  2. 新增群组
  3. 自定义群组名称,我这里是docker
  4. 给 docker 群组分配 docker 文件夹的权限
  5. 一直点下一步,直至生效

2.3 添加 gitea 账号

image.png

和上面用户群组的操作基本一致,区别是在【用户群组】那把 docker 的群组权限给这个新创建的 gitea 用户。然后一直默认下一步即可。

至此,基本的环境配置已经完成,开始装机。

3. gitea 搭建

进入 docker container 运行上文下载的镜像文件。(下文中我的镜像是运行中,所以是不可编辑状态,不影响安装流程)

image.png

3.1 给镜像实例命名

image.png

3.2 端口和文件映射

image.png

其中前面是本地服务器映射路径,后面是容器内的映射:

  1. 4122 映射 gitea 容器的 ssh 免密登录端口
  2. 4100 映射 gitea 容器的服务端口
  3. /docker/gitea 映射容器的 /data 文件夹,用来存储 gitea 服务的数据(/docker/gitea 这个路径可以自定义更改)
  4. /docker/gitea/repositories 映射容器的 /data/git/repositories 文件夹,里面是所有的git仓库地址(/docker/repositories 这个路径可以自定义更改)

3.3 环境变量映射

image.png

  • USER:填写上文创建的那个账号,我这里是:gitea
  • GITEA_CUSTOM:这个默认就好
  • USER_UID: 执行以下命令获取
  • USER_GID:执行以下命令获取
devlifestyle:~$ id gitea
uid=1029(gitea) gid=100(users) groups=100(users),65538(docker)

其它参数都不用改,直接默认下一步启动就可以了。

3.4 配置 gitea

容器启动后,访问 http://ip:4100 进入 Gitea 的配置页面。 image.png

确认无误后点击确认,即可进入gitea界面

image.png

4. 迁移其它仓库项目

gitea 支持其它仓库一键同步的功能,目前主流的 git 仓库平台都是支持的,即使不支持,只要符合git规范的也可以迁移过来。只是不能批量迁移,你只能手动一个个去拉取。

image.png

5. 总结

本篇文章写到这,其实发现如果是自己有个服务器,有docker 不是nas环境也是可以使用的

如果从个人角度出发,加上你自己的服务器配置不高,我是不建议安装 gitlab 的,光快 3G 的内存不说,其实里面的很多功能你这辈子也用不上。写个前后端项目,然后用 gitea action 自动部署,有的时候几个人一起协同写个项目,整个工作流都很丝滑,完全够用。

下篇文章我介绍一下怎么接入 gitea action 实现自动部署,让你解放双手,只需推送代码,即可享受即推即用的快乐。还不了解 gitea action 是啥的朋友可以去看看我之前写的《通过 gitHub Action 自动发布博客文章》,原理是一样的。

6. 其它

希望我的分享能帮到你。

dev,一个艺术家,非传统前端架构师,坚持健身(一周三练)、在学 popping,会🎸、会📹、会🎨、喜欢自驾看世界,爱思考,爱生活。梦想40岁退休。 个人博客

全网唯一ID: dev的艺术空间