开源网盘,尤为是想要同步盘功能的话,seafile和nextcloud算是比较好的两个选择。我的感受seafile功能更强,有相似gitignore的能力,别的同步盘还没发现有这个能力的。可是对通常用户来说,seafile的易用性是不如nextcloud的。nextcloud的交互体验确实作得很好,有商业软件的水准。seafile嘛...感受是没有交互设计师参与的。python
可是!搭建网盘服务必定不能忽视带宽的问题!国内的带宽是天价!咱们我的随便用用的腾讯云、阿里云,带宽都是1Mbps的,实际上就是128KB/s,这个速度,对须要同步大文件的网盘来说,是彻底不够用的!不论是加带宽仍是换成按流量购买,我的用户都不太扛得住。mysql
若是用国外服务器,流量是着实便宜,个人搬瓦工vps每月1T流量简直不要钱同样。可是国外便宜的vps硬盘每每比较小,另外服务器在国外的话,网络毕竟没有国内稳定,也是要考虑的!linux
折腾到底,跟朋友合买了Office 365,投奔了onedrive的怀抱。nginx
Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux, iOS,
Android 平台。支持文件同步或者直接挂载到本地访问。
就是个开源的同步网盘。随着各类网盘的倒闭和百度云的堕落,靠谱的网盘是愈来愈少了。国外的要么被墙了要么速度慢,这时候在本身的服务器上搭建私人同步盘就是个不错的选择了。git
目前比较流行的开源网盘也没几个,适合自建服务器上有Seafile
和ownCloud
,比较接近传统网盘。另外有个用于多客户端同步的Syncthing
。web
Seafile
这个网盘,功能仍是很强大的,自动同步,还附带版本控制。就是界面丑了点,可是瑕不掩瑜。sql
本文介绍在CentOS 7上Seafile的部署流程。
完整资料建议查看官方手册vim
这里我选择的是最新的6.3.2版本,建议去下载页面查看linux服务端的最新版本,并替换下面的连接。bash
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分开。我的搭建的话随意一点也是能够的。