Seafile 文件同步服务

今天在知乎上看到一个问题说有一个服务器会怎么用,有人介绍了seafile,觉得不错,就放在阿里云上试了一下,效果非常好,记录之。

下面是整个的安装配置过程:

首先在seafile官网下载服务端安装包,https://www.seafile.com/download/,下载后解压到/root/seafile。

安装前解决依赖问题,如果系统自带Python,确认Python版本是2.7+:

yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel

pip install pillow moviepy

seafile服务依托的数据库可以使SQLite,也可以是MySQL,建议MySQL会好一些,安装seafile之前要确认已经安装了MySQL,我就用了wp的MySQL,反正是两个库,互不冲突。

解决完前置条件后,就可以运行安装脚本了。

cd seafile-server-*

./setup-seafile-mysql.sh

按照脚本的引导设置各项内容即可。

一些参数如下:

seafile server name:seafile:服务器的名字,怎么高兴怎么写。

seafile server ip or domain:seafile服务器的ip或者域名,以后想怎么访问就怎么写,比如seafile.example.com

seafile data dir: seafile数据存放的位置,以后同步来的数据就存放在这个地方,保证这块硬盘有足够大的地方。

seafile fileserver port:文件传输服务所使用的端口,默认8082,官方文档说不能更改,可我设置成了别的端口貌似也没事,nginx反向代理的时候配置好就ok,可能因人而异吧。

安装过程中需要选择创建数据库的方式,可以让脚本创建其需要的几个库,也可以提前建好。一般就让脚本干这种事了,毕竟全新安装,不涉及旧数据什么的。

安装完成后,就可以去启动seahub和seafile两个服务了,seafile就是核心的文件服务,seahub是网页端的一个控制台。
seahub服务默认端口是8000,如果需要更改的话,比如更改成8001,就修改一下/root/seafile/conf/ccnet.conf中的如下配置:

SERVICE_URL = http://seafile.example.com:8001

修改之后cd到/root/seafile/seafile-server-latest下,执行启动脚本即可。

./seafile.sh start
./seahub start 8001  ##注意启动seahub时需要带上端口,否则就会按照默认的8000端口启动。

启动之后可以用ip:port的方式去网页上看一下了,登录上去之后就可以正常使用了。

接下来配置nginx的反向代理,在nginx.conf里include seafile.conf,内容如下:

server {
    listen       80;
    server_name  seafile.example.com;
    proxy_set_header X-Forwarded-For $remote_addr;
    location / {
        rewrite ^ https://$http_host$request_uri? permanent;
    }
    server_tokens off;
}
server {
    listen 443;
    ssl on;
    ssl_certificate certs/seafile.crt; 
    ssl_certificate_key certs/seafile.key;  
    server_name seafile.example.com;
    server_tokens off;
    location / {
        proxy_pass         http://127.0.0.1:8001;
        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;
        client_max_body_size 0;
        access_log      logs/seahub.access.log;
        error_log       logs/seahub.error.log;
    }
}

我这里做了全站强制的https,安全一些嘛。证书是用的阿里云上赛门铁克提供的免费证书,每个证书只能绑定一个域名,每个账号可以申请20个。感觉这个对个人用户很是友好啊。阿里的证书购买地址:https://common-buy.aliyun.com/?commodityCode=cas

nginx配置好后重启一下,就齐活了~

seafile的官网上提供了pc和手机端的客户端软件,基本上全平台支持,非常给力。

这样一个自己的文件云服务就诞生了~嘎嘣脆鸡肉味~

发表评论

您的电子邮箱地址不会被公开。