由于笔记本跟台式机不在同一个地方,为了解决来回拷贝的问题就想着搭一个存储服务器用来同步,目前的网盘服务基本不支持多端同步,笔记类的软件同步效率又太低,刚好之前接触过seafile,又是免费的,就它了。
安装后的意外之喜是,Markdown文件支持在线浏览,目前我的笔记基本都是用Markdown书写的,相当于笔记app可以卸载了,而且还能备份手机图片。真是一节更比三节强,还等什么搞起来吧。
以下为个人防踩坑笔记
准备工作
- 设备:树莓派4B
- 系统:Ubuntu Server 20.10
- 软件:Raspberry Pi Imager,seafile8.0,mysql-server8.0, nginx
- 公网IP
- 可选:域名与ssl证书, MobaXterm1_CHS1(ssh远程连接工具自己随意,用的舒服就行)
系统安装
准备TF卡,连接到windows上
洗录软件建议选择官方的Raspberry Pi Imager,洗录后有验证
洗录后你会发现你的U盘只剩了一个几百MB的分区,不要担心,那部分分区格式window不识别,如果你要是linux系统就能看到了
安装后启动,通过SSH链接,IP通过路由器管理页面获取, 端口默认22,账号密码都是:ubuntu
有服务器版本SSH才会默认开通,图形界面版本的ubuntu需要链接显示器创建用户启动SSH才行
连接后会提示更换默认密码
更新软件
挂载存储
linux系统中只能在root权限用户下挂载设备
fdisk -l # 获取识别到的设备,我用这个命令是为了根据大小找到我挂载硬盘的路径
格式如下
blkid
# 获取UUID、TYPE, UUID为唯一值,挂载磁盘时建议该值进行识别格式如下
手动挂载: 挂载命令:
mount -t <type> <device> <dir>
** 卸载命令:****umount <dir>
**开机自动挂载:
sudo vim /etc/fstab
按照格式增加一行
PARTUUID="65f5f8d0-01" <dir> <type> defaults 0 0
- 查看已经挂载的存储:
lsblk
安装软件
- 建议按照顺序安装,互相之间也有依赖关系
- psd-tools依赖项比较多,建议使用清华源安装,
部署seafile
安装seafile
- 详细步骤官方文档里有,这里粗略整理一下,以及记录一下踩过坑
- 下载树莓派版本的服务器端
- 在python3的安装包中找到MySQLdb后替换安装包中的对应文件夹
- 解压后放在选定的安装目录下
- 执行 setup.sh文件
- 根据提示填写配置信息,mysql的账号密码,存储库名称等
修改mysql验证方式
运行seafile
/seafile-server-latest# ./seafile.sh start
/seafile-server-latest# ./seahub.sh start
填写管理员邮箱密码,之前没有修改root跟seafile账户的验证方式时是创建不出来的
配置nginx
配置项模板需要修改的部分:
页面登录配置上传下载页面
- 进入登录界面,修改下面两个值
- SERVICE_URL :https://mydomain.com:4430
- FILE_SERVER_ROOT:https://mydomain.com:4430/seafhttp
- 格式不能错,https:// 跟端口号都不能少,否则会导致无法上传下载文件
- 如果没有SSL证书,
https
改为http
- 进入登录界面,修改下面两个值
如果没有使用绑定域名,且没有公网IP到这步算是完成了,已经实现了局域网内的部署
域名解析
我申请的是阿里云的域名,解析与SSL证书申请步骤很简单,不过多赘述
需要一提的是,对于光猫接路由器再接主机的网络拓扑,需要开启光猫桥接模式,电信的光猫权限被禁需要联系客服才行,开启桥接模式之后在路由器上设置电信联网的账号密码
同时需要路由器具有NAT功能进行端口转发,使得外网访问时能够准确找到安装了seafile的机器上
建议开机固定IP防止端口转发出错
完成
基本上算是大功告成,下载客户端可以登录使用了,遗憾的是本人是家用宽带,公网ip是动态ip,本来打算写一个动态解析但是发现即使使用动态解析,更换地址也有一段时间的无法访问的时间,只能寄希望于不要在没有准备的情况下光猫离线了。
头像不显示
/media/nas/seafile/conf/gunicorn.conf.py
修改127.0.0.1为域名