完成本教程需要一些Linux基础命令,如果不会,请严格根据本教程的建议内容操作 。
本教程需要以下内容:
1、公网IP或域名(DDNS)
2、极空间Z2s或其它ARM64(ubuntu20.04)设备一台
3、路由器支持端口转发或DMZ
1、准备Ubuntu20.04系统
1.1、下载Ubuntu docker镜像
A、打开docker,进入“镜像”——“常用镜像”,选中“Ubuntu”然后点击下载
B、版本选择“focal”开头的,后面时间选最新的,或者选择“20.04”理论上也行,没试过
C、镜像只有63MB,耐心等待下载完,如果长时间没有下载完成,可以关掉docker窗口,再来一遍。如此反复。(可以通过在“仓库”中设置国内的加速源,有兴趣的可以自行搜索相关方法)
1.2、创建Ubuntu容器
A、双击镜像,弹出创建容器窗口,容器名随便写,不影响别的。建议关闭“启用性能限制”,实测不限制性能内网上传最高也只能到60MB/s,虽然够用,限制后就不知道啥情况了
B、“文件夹路径”,可以不设置。如果要考虑可移植性,可以通过该设置,将seafile的安装和文件挂载出来,也就是极空间能看到和管理seafile的安装和同步的文件数据。
如果此处有设置,请记住它,后面需要用到。
PS:为什么说可以不设置?
从我的使用角度,使用seafile目的是用来同步不同PC的文件和外链分享,每台PC上本来就有一份完全一样的数据,即使seafile挂了,也不会有数据丢失。
C、“网络”建议保持“bridge”桥接
PS:为什么建议用“bridge”?
如果用host,seafile部署后的ubuntu可能会有很多的服务用到很多的端口,这就容易与Z2s本身的端口冲突,不利于管理。使用桥接模式,可以只放通需要的seafile端口即可,简洁且利于管理。
D、“端口”,放通8000和8082。这是seafile的默认端口,如果后面部署seafile需要自定义端口,请提前在此处考虑好。
设置说明:“本地端口”与“容器端口”不要求设置一样
本地端口:是容器外能访问的端口,此端口会暴露在Z2s所在的内网中,后面再通过路由器的NAT转发到外网
容器端口:是docker中启动的容器内部端口,只在容器网络内部互通,外部无法直接连接
E、“别名”与“环境”保持默认
F、“命令”,中的“Console”选择第一个
G、点击右下角“应用”,完成容器创建
1.3、配置Ubuntu基础环境
A、点击“SSH”按钮,登录Ubuntu后台。弹窗不用设置,直接点“连接”。
B、弹出了Linux命令窗口,接下来的很多操作都要在此处完成。如果时间未操作,导致输入任何字符都无反应,请关掉它,再次点击“SSH”按钮打开
C
、输入“
apt-get update
”,更新
ubuntu
软件库。由于默认连接的
ubuntu
官方服务器,速度可能有点慢,耐心等待。(如果想要更快,请自行搜索
Ubuntu
换源)
2、部署seafile
2.1、下载安装包
A、seafile官方提供的ARM包在GitHub上,有条件的请直接访问该链接,下载后缀名为“focal-arm64v8l.tar.gz”最新版本。
https://github.com/haiwen/seafile-rpi/releases
有条件的应该能自己搞定,如果没有条件的,可以使用如下链接下载。(为了安全考虑,请尽量使用官方的包,不要使用第三方提供的包)
B、在线下载:先安装wget,然后再下载。进入第1.2.B章节设置的目录,本教程为/root,复制GitHub上的安装包地址,然后用wget下载
apt install wget -y cd /root wget https://github.com/haiwen/seafile-rpi/releases/download/v9.0.2/seafile-server-9.0.2-focal-arm64v8l.tar.gz
C
、离线下载:如果第
1.2.B
章节设置了目录,可通过
Z2s
文件管理将安装包上传,本教程为”我的文件
/Docker/seafile_test/
“
2.2、安装依赖包
A、直接执行这些命令,此处时间较长,具体时间与你的宽带网络和Z2s负载情况有关
apt-get install vim sqlite3 build-essential libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libmysqlclient-dev libarchive-dev libtool libjansson-dev valac libfuse-dev re2c flex python-setuptools cmake -y
B、配置时区,先输入”6“,再输入”70“,确定后安装会继续
2.3、配置seafile安装
A、解压安装包,再用mv命令把解压的文件夹改好看点…
tar -xf seafile-server-9.0.2-focal-arm64v8l.tar.gz mv seafile-server-9.0.2 seafile-server
B、开始部署,进入 seafile-server目录,执行./setup-seafile.sh安装,本教程使用sqlite3数据库
cd seafile-server ./setup-seafile.sh
C、输入server_name,本教程使用”test“,不能用中文
D、服务器IP,填你配置好的域名或IP地址,此处用我自己的域名”nas.isway.top“
E、设置端口,使用默认设置,不修改
F、看到这个表示配置成功
G、修改/root/conf/gunicorn.conf.py,把127.0.0.1改成0.0.0.0否则只能这个容器能访问。
H、根据提示,启动服务,期间会提示输入邮箱和密码,这就是管理员。如图表示启动成功
./seafile.sh start ./seahub.sh start
I、配置路由器的端口转发,将8000和8082端口转发到Z2s NAS的IP上。
J、访问http://nas.isway.top:8000,部署成功
2.4、一点点收尾
A、登录seafile的web,点击右上角头像,选择”系统设置“
B、将URL两个设置中的127.0.0.1,替换成域名。此步骤影响分享链接中的域名
C、接下来就是安装客户端,进行同步喽
汇报我的使用情况
1、同步速度约60M/s
2、seafile的docker正常资源消耗如下:
3、通过外链分享,下载速度大概25M/s
4、同步157G,13506个文件,大概1.5小时