群晖(Synology) NAS 如何安装 gitea
gitea 是一款轻量级的 git 服务(注意,是 gitea, 不是国内的 gitee)。本体用 go 编写,所以性能和资源占用都非常理想。 虽然群晖性能不咋的,但也足够自持 gitea 流畅运行了。
下图是我在群晖DS218+部署 Gitea 和 Gitlab 的资源使用对比。 两者都是刚刚安装好的样子。可以看到 gitlab 的资源使用率真的有点离谱。如果不是我额外加装了内存条。根本就跑不起来。

Gitea 的资源使用率就非常理想了。
(当然,如果你对 CI/CD, Repository 等其他其他功能有需求,Gitlab 的一站式服务更为方便。加装条内存不是什么大事,反正内存也不值钱。)
不再废话,进入正题。
1. 下载 Gitea 镜像
打开 Docker 套件,切换到映像页面,点击新增,从URL添加。 然后输入 Gitea 的页面地址: https://hub.docker.com/r/gitea/gitea

点击新增,并稍等片刻至镜像下载完毕。
2. 创建 Gitea 容器
在列表中双击 Gitea 镜像,打开"创建容器"对话框。
点击下方的"高级设置"打开高级设置对话框。

这里的"启用自动重新启动",如果你的 NAS 部署应用不多,可以勾上方便重启之后自动启动。
但是如果像我一样在 NAS 上部署了一堆应用,就不建议了。容易重启后一堆程序并发启动,直接把 NAS 怼死直接启动不了。

切换到储存空间,这里把 NAS 的文件夹装载到容器内的 /data 目录。 (当然不这样做也无所谓,删除容器时要注意自己备份数据)

然后是端口设置。将群晖的 33000 端口映射到容器内的 3000 端口。
并且新增映射将 30022 端口映射到容器内的 30022 端口。
22端口和3000端口是 Gitea 镜像定义的 SSH 端口和 Web UI 端口。 这里手动设置端口映射,一是为了方便记忆,二是,如果留空的话,Docker 会自动分配随机端口,而且每次重启后都会重新分配一次。
这里新增的 30022:30022 端口,是为了之后修改 Gitea 默认 SSH 端口到 30022。
否则 Web GUI 上显示的会是 ssh url 是默认端口,与实际端口不匹配,使用上有点麻烦。
而且,如果使用默认的 22 端口, git url 为 "[email protected]:yourname/yourproject.git"。
但是如果使用非 22 端口,git url 为 "ssh://[email protected]:80022/yourname/yourproject.git",前面必须要带上 ssh://。对 git 或者 ssh 不熟悉的朋友可能就懵逼了。
再切换到环境标签页,新增两个环境变量:
USER_GUI: 1000
USER_UID: 1000
完事,确认。启动容器。
3. 通过 Web UI 设置 Gitea
这里假设 NAS 的 ip 地址为 192.168.0.100。
浏览器打开 192.168.0.100:33000,会跳出初始配置页面。

首先,Database Type 数据库类型。个人用的话就选 SQLite3 就行,没有必要上独立的数据库。

Server Domain 和 Gitea Base URL,这里配置的是页面上显示的 git url 域名。你可以填写 NAS 的 ip 或者你内网域名地址。
SSH Server Port ,改成 30022。
Administrator Account Settings, 配置初始账号。
完事。