86201746 2019-06-28
开源网盘,尤其是想要同步盘功能的话,seafile和nextcloud算是比较好的两个选择。个人感觉seafile功能更强,有类似gitignore的能力,别的同步盘还没发现有这个能力的。但是对一般用户来讲,seafile的易用性是不如nextcloud的。nextcloud的交互体验确实做得很好,有商业软件的水准。seafile嘛...感觉是没有交互设计师参与的。
但是!搭建网盘服务一定不能忽视带宽的问题!国内的带宽是天价!我们个人随便用用的腾讯云、阿里云,带宽都是1Mbps的,实际上就是128KB/s,这个速度,对需要同步大文件的网盘来讲,是完全不够用的!不管是加带宽还是换成按流量购买,个人用户都不太扛得住。
如果用国外服务器,流量是着实便宜,我的搬瓦工vps每个月1T流量简直不要钱一样。但是国外便宜的vps硬盘往往比较小,另外服务器在国外的话,网络毕竟没有国内稳定,也是要考虑的!
折腾到底,跟朋友合买了Office 365,投奔了onedrive的怀抱。
就是个开源的同步网盘。随着各种网盘的倒闭和百度云的堕落,靠谱的网盘是越来越少了。国外的要么被墙了要么速度慢,这时候在自己的服务器上搭建私人同步盘就是个不错的选择了。
目前比较流行的开源网盘也没几个,适合自建服务器上有Seafile
和ownCloud
,比较接近传统网盘。另外有个用于多客户端同步的Syncthing
。
Seafile
这个网盘,功能还是很强大的,自动同步,还附带版本控制。就是界面丑了点,但是瑕不掩瑜。
本文介绍在CentOS 7上Seafile的部署流程。
完整资料建议查看官方手册
这里我选择的是最新的6.3.2版本,建议去下载页面查看linux服务端的最新版本,并替换下面的链接。
wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.3.2_x86-64.tar.gz mkdir seafile mv seafile-server_6.3.2_x86-64.tar.gz seafile/ cd seafile/ tar xzf seafile-server_6.3.2_x86-64.tar.gz yum -y install epel-release rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel pip install --upgrade setuptools #为了保证moviepy安装成功 pip install pillow moviepy cd seafile-server-* ./setup-seafile.sh #运行安装脚本并回答预设问题
安装完成后,默认文件服务(seafile)运行在8082端口,web管理页面(seahub)运行在8000端口。
我的服务器上还有别的工具在运行,因此修改了seahub的端口号,并通过nginx的反向代理访问。
更改conf/ccnet.conf文件中SERVICE_URL和conf/gunicorn.conf中的bind即可修改端口号。
编辑/etc/nginx/nginx.conf
,在中间找个地方插入下面的代码。一些关键词要改成自己的。
server { listen 80; server_name seafile.example.com; proxy_set_header X-Forwarded-For $remote_addr; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; # used for view/edit office file via Office Online Server client_max_body_size 0; access_log /var/log/nginx/seahub.access.log; error_log /var/log/nginx/seahub.error.log; } location /seafhttp { rewrite ^/seafhttp(.*)$ $1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; } location /media { root /home/user/haiwen/seafile-server-latest/seahub; } }
然后重启nginx
service nginx restart
这个时候在你配置的域名下就可以访问seafile了,需要登录后在管理后台修改两个字段,形如:
SERVICE_URL: http://www.myseafile.com FILE_SERVER_ROOT: http://www.myseafile.com/seafhttp
配置开机启动。CentOS 7支持systemctl,用这个就好了。
vim /etc/systemd/system/seafile.service
文件内容如下,注意把${seafile_dir}
替换成自己的安装目录。User和Group替换成自己的,估计个人的话大部分都是root吧。
[Unit] Description=Seafile # add mysql.service or postgresql.service depending on your database to the line below After=network.target [Service] Type=oneshot ExecStart=${seafile_dir}/seafile-server-latest/seafile.sh start # 如果seahub使用了nginx反代,请修改为 ExecStart=${seafile_dir}/seafile-server-latest/seahub.sh start-fastcgi ExecStart=${seafile_dir}/seafile-server-latest/seahub.sh start ExecStop=${seafile_dir}/seafile-server-latest/seafile.sh stop ExecStop=${seafile_dir}/seafile-server-latest/seahub.sh stop RemainAfterExit=yes User=root Group=root [Install] WantedBy=multi-user.target
刷新配置并开机启动
systemctl daemon-reload systemctl enable seafile
其实主要还是给自己个备忘。说起来,seafile的官方安装指引,很规范,但是对个人来说有些操作都比较累赘了。比如安装包专门放一个地方好维护,自启动脚本seafile和seahub分开。个人搭建的话随意一点也是可以的。