群晖ds418play建立NAS

群晖ds418play

自从iCloud开始要在云上贵州存储数据后,也给我契机,把每个月6块钱买的50G iCloud空间取消;本来就空间已经不够用导致无法备份照片,钱花的不值。但自己需要一个地方来存储数据,最好能够作为自己的Git服务器,以代替GitHub每年的费用。

算起来,群晖ds418play也不便宜,购买一台设备还不带磁盘;而购买支持NAS的磁盘就有点小贵,4T的不管是希捷的酷狼还是西部数据的红盘都很难低于900元。算下来的钱,其实可以够自己去买iCloud空间和GitHub服务好几年了,而买的NAS硬盘未必能坚挺使用这么些年,从经济性角度来说,不是很划算。但从数据安全性和自由度上来说,尤其是充分的备份小孩成长过程中的照片、视频,记录家庭生活的点点滴滴快乐瞬间,还是促使我消费了一把。

主要用途:

  • 备份图片、视频
  • Git服务器

拿到设备后折腾了一番,然后每天祈祷酷狼硬盘不要坏,即使要坏只许坏一个!

网络环境

家里的网络环境是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ISP(PPPOE)
|
|
+-----+--------+
| Route 1 |(192.168.100.1)
+--------------+
| | +---------+
| +--------LAN------------| NAS |(192.168.100.2)
LAN +---------+
|
+-----+----+
| Route 2 |(LAN:192.168.100.3, WLAN:192.168.200.1)
+----------+
/ | \
/ | \
wifi wifi wifi
/ | \
android MacOS iOS

路由器1是办理宽带服务时连接光纤拨号上网的,同时有4个直连接口(LAN),其中一个连接NAS,另一个连接路由器2,再把路由器2开启无线Wi-Fi功能。这样不管是各个房间的直连设备(LAN),还是各处的无线连接设备(WLAN),都可以访问到NAS服务器,这样视频、图片等等功能都可以使用了。

Git服务设置

:其实可以通过Docker安装一个GitLab镜像,立即就有了一个类似GitHub的网页版本Git Server了,但买的设备性能不高,访问速度不理想,便放弃这方案。

大致分为几个步骤:

  1. 开启SSH登录
  2. 安装Git Server套件
  3. 创建一个用于存储Git repos的共享目录,比如/volume1/myGitHub/
  4. 创建一个用于操作Git repos的用户,比如git,设置此用户有读取/volume1/myGitHub/权限
  5. 打开Git Server套件,设置用户git有使用此应用的权限
  6. 创建第一个git repo

因为在/etc/passwd文件中没有给git用户设置登录bash,而是/var/packages/Git/target/bin/git-shell,因此git用户只能通过Git Server条件进行操作。

但自己可以以管理员身份ssh登录系统,改掉这个设置,设置一个/bin/sh作为登录bash,进而以git ssh登录到系统设置ssh免密码登录,做ssh key管理方面的设置。

前几步很直接明了,就是DSM操作界面点鼠标完成,最后一步时需要注意权限问题。我写了一个脚本(create-repo.sh,run as user: git):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env bash
repo=$1
repodir=${repo}.git
[ ! -n "${repo}" ] && echo "Please input repo name!" && exit -1
[ -d "${repodir}" ] && echo "${repodir} exists!" &&
echo "run: git clone git@mygithub.com:LeslieZhu/$repodir ${repo}" && exit -1
mkdir -p ./${repodir}
chmod -R 770 ./${repodir}/
cd ./${repodir}/
git init --bare
cd ../
chown -R git:users ./${repodir}/
chmod -R 770 ./${repodir}/
echo "run: git clone git@mygithub.com:LeslieZhu/$repodir ${repo}"

这里注意要保证git用户对repo.git/目录下文件的读写权限,否则会导致git push的时候一直停留在writing objects状态。

如果仅限于命令行环境的Git基本使用,到这里就足够了.

Cloud Sync

这个套件可以绑定各种云盘,比如百度云,从而把云盘里面的内容和操作在NAS设备里面进行,省去了从云盘下载这个步骤,直接通过共享服务器的方式访问百度云盘内容。

Cloud Station Drive

这个有点类似Dropbox功能,即设置好几个对应目录,随时保持同步,方便多台电脑之间协作编辑文件之类的。

Cloud Station Backup

这个就是备份功能,运行一次就可以把设置好的相应目录备份一下。

Video Station

就是把电影放上去,通过电视访问,拥有自己的私家电影院,会自动爬取电影信息,还可以设置分级,防止小孩看到暴力镜头电影。

Photo Station

就是把图片放上去,图片管理工作站。

NFS,SMB服务

开启SMB或NFS服务后,可以在电脑通过【前往】-【连接服务器】,然后输入smb://ipnfs://ip/path/dir的形式来加载共享文件夹,也可以通过命令行形式:

1
2
3
mount -t nfs ip:/pathdir pathdir
umount -t nfs -h ip
umount -t smbfs -h ip
吴羽舒 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!