群晖折腾记二 - 搭建Git Server
业余时间自己在做一些小项目,由于此类项目大多要求一定的保密性,此时使用类似Github这种必须开源的gitServer就不太适合了,而且家里有多台电脑,所以最好有一个代码管理工具协助管理,正好家里有一台群辉NAS,用群辉配置一个Git Server来满足这个要求。
1. 创建GitRepo目录
首先,我们需要创建一个Git Server的数据存储的主共享目录,进入 控制面板 > 共享文件夹 > 新增(GitRepo)。

2. 创建gitcode用户
接着,我们可以创建一个单独的git用户账户,用于代码提交,进入 控制面板 > 用户与群组 > 新增 。

其中,用户群组可以使用默认的 users ,也可以像我这样单独创建一个群组git:

分配共享文件夹权限时,将前面创建的GitRepo目录赋予读写权限:

应用程序权限可以全部允许,或者像我这样只勾选必要的权限:

3. 安装GitServer
前往 套件中心 > 搜索与安装Git Server:

完成安装后,打开Git Server,勾选相应的用户权限:

4. 开启SSH
进入 控制面板 > 终端机和SNMP > 勾选启动SSH功能 > 端口默认为22(为了安全考虑建议修改默认端口)

5. 配置权限
开启SSH权限后,通过管理员账户或新增的账户便可以在终端中通过ssh命令登录到群晖NAS了。
- 更改帐户目录权限
- 配置免密登录(可选),我喜欢输密码,这样提交前我有思考的时间😄
5.1. 更改当前帐户目录权限
使用管理员帐号和密码登录:
1
# ssh <管理员账户>@<nas_ip_address> -p <端口>
通过
sudo -i切换到root:写一个简单的shell脚本增加目录权限:
1
2
3
4Folder need to chown and chmod.
chown -R <用户名>:<群组名> .
chown -R phoenine:git .
chmod -R 755 .
5.2. 配置免密登录(可选)
进入刚才新建的git帐户目录:
1
cd /volume1/homes/phoenine
创建.ssh文件夹以及authorized_keys文件:
1
2
3mkdir .ssh
cd /volume1/homes/phoenine/.ssh
vim authorized_keys将终端的
id_rsa.pub内容拷贝到authorized_keys中:
设置.ssh目录权限组并赋予权限,并设置authorized_keys文件权限。
1
2
3
4
5cd /volume1/homes/phoenine
chown -R phoenine:git .ssh
chmod -R 755 .ssh
cd /volume1/homes/phoenine/.ssh
chmod 600 authorized_keys
6. 创建代码仓库
使用管理员帐号和密码登录:
1
ssh <管理员账户>@<nas_ip> -p <端口>
创建代码仓库:
1
2
3/volume2/GitRepo/Code
git --bare init <repo_name>.git
chown -R phoenine:git <repo_name>.git本地客户端通过git clone下载:
1
git clone ssh://phoenine@<nas_ip>:<端口>/volume2/GitRepo/Code/<repo_name>.git
7. 其他办法
群晖上也有其他的办法实现同步:
通过app -
Synology Drive Client进行文件夹的同步
Docker安装gitlab,这个才是最终的解决方案(加跟内存的事)。