这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

搭建一个属于自己 可多平台同步的私有云盘 —— Seafile

建站资源 Toyo 52评论
广告
本文最后更新于 2018年9月20日 20:09 可能会因为没有更新而失效。如已失效或需要修正,请留言!

前段时间,各个网盘纷纷下线,导致目前能用的大网盘,也就几个,还都限速...

然后很早的时候就有人想让我写个 自建私有云盘(网盘)的教程了,我以前用过 owncloud,但是这个玩意,安装后进去一看,一堆报错的,看着就头大,然后网上查了查,也有人安利,最终我选择了 Seafile,我对这类程序也不了解,就先写个Seafile教程好了。

Seafile 简介

Seafile 是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问题,注重安全和性能。

Seafile 通过“资料库”来分类管理文件,每个资料库可单独同步,用户可加密资料库, 且密码不会保存在服务器端,所以即使是服务器管理员也无权访问你的文件。

Seafile 允许用户创建“群组”,在群组内共享和同步文件,方便了团队协同工作。

Seafile 官方网站:https://www.seafile.com/

Github 开源项目地址:https://github.com/haiwen/seafile

各平台同步客户端下载:https://www.seafile.com/download/

其他私人网盘教程:https://doub.io/all-one/#私有网盘 相关教程

搭建环境

本人测试和教程所用环境为 Debian 7 x64 (我写教程除非不支持这个系统否则我都会用这个系统做教程测试的)

一个刚重装,纯净的 VPS。

 

本教程示例域名为: demo.toyoo.pw

本教程安装目录为: /root/seafile/...

域名和安装目录,请自行替换为自己的配置。

部署Seafile

安装依赖

wget -N --no-check-certificate -P /etc/apt https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/sources/us.sources.list && rm -rf /etc/apt/sources.list && cp /etc/apt/*.sources.list /etc/apt/sources.list

为了避免安装依赖时,因为源的问题缺少安装组件,所以请使用最新的Debian 稳定源(jessie)!

上面代码默认是 美国的镜像源,更多的请在这里查看,选择最佳的镜像源文件,替换上面的 us.sources.list 文件名即可。


Seafile依赖于Python,所以你的VPS中的 Python版本要高于 2.7 。

apt-get update
apt-get install mariadb-server -y
apt-get install python2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache python-urllib3 vim -y

第二行代码是安装MariaDB的,安装期间,会提示你输入要设置的 数据库ROOT账号的密码 注意,输入的时候是看不到输入内容的,盲输!

提示可能是这样的:

While not mandatory, it is highly recommended that you set a password for the MariaDB administrative "root" user.
If this field is left blank, the password will not be changed.
New password for the MariaDB "root" user: 
Repeat password for the MariaDB "root" user: 

第三行就是让你输入 ROOT的密码,第四行是让你重复输入一遍刚才设置的 ROOT密码。

下载解压

假设你当前是在 /root 文件夹内执行以下命令,后面的所有seafile目录都是在 /root 文件夹内的。

mkdir seafile && cd seafile

创建一个 seafile 文件夹并进入文件夹,以后你的 seafile相关文件都在 /root/seafile 文件夹中了。

uname -m
#查看自己的VPS 系统位数,如果返回 X86_X64 那么就使用第一行代码,如果是 i386 那就使用第二行代码。
wget "http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.0.7_x86-64.tar.gz"
wget "http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.0.7_i386.tar.gz"

此处的下载链接版本可能不是最新的,最新版本请查看这里

tar -xzf seafile-server_*.tar.gz
mkdir installed && mv seafile-server_*.tar.gz installed
# 解压下载的压缩包文件,并把压缩包文件移到新建的 installed 文件夹。

开始安装

cd seafile-server-* && chmod +x *.sh
./setup-seafile-mysql.sh
# 运行安装脚本并回答问题

根据下面的中文注释填写。

点击展开 查看详细注释内容

这时候,基本的Seafile服务以及安装完毕,下面只要启动就可以直接使用了。

启动运行

/root/seafile/seafile-server-*.*.* 目录下,运行如下命令:

./seafile.sh start
# 启动 Seafile 服务
./seahub.sh start
# 启动 Seahub 网站 (默认运行在8000端口上,可以加上端口参数比如:./seahub.sh start 8888

注意:第一次启动 Seahub 时, seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。

点击展开 查看详细注释内容

服务启动后无报错,打开浏览器并输入你当时设置的 域名或者公网IP,比如:

http://demo.toyoo.pw:8000/
http://1.1.1.1:8000/

然后你就会看到登录页面了,输入账号密码后登录即可。

这时候,你就成功的完成了Seafile服务最基本的搭建和使用,目前已经可以正常使用和运行了。

更改端口

如果你觉得域名或者IP后面还需要输入 8000 端口很麻烦,那么你可以更改端口,比如你要设置为 80 端口。

通过上面你设置的 IP或者域名 进入Seafile网站后,点击右上角的用户头像 — 系统设置 — 设置 — URL

然后如下图所示,把第一个红框圈中的 http://demo.toyoo.pw:8000 改为 http://demo.toyoo.pw (80可以不用写,443也是,其他端口就需要写端口号了)

然后右边会出来一个 √ 和 × ,点击 对号√ 保存。

注意:下图中我是完整了设置了Ngxin和SSL,如果没有设置Nginx,那么 FILE_SERVER_ROOT 默认即可(忘记截图了,我也忘了原来是什么了。。。)

使用说明:

启动服务

./seafile.sh start
# 启动 Seafile 服务
./seahub.sh start 8001
# 启动 Seahub 网站 (运行在 8001 端口上,默认不写参数为 8000)

如果你配置Nginx/Apache后,那么就用下面的代码启动:

./seafile.sh start
./seahub.sh start-fastcgi

停止服务

./seahub.sh stop
# 停止 Seahub
./seafile.sh stop
# 停止 Seafile 进程

重启服务

./seafile.sh restart
# 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart
# 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub

配置Nginx(可选)

默认自带的HTTP服务器,有一些限制,不够灵活,比如不能直接SSL,所以我们可以在前面加上Nginx。

安装Nginx:

apt-get install nginx -y

安装后默认自动启动,然后查看端口使用情况,看一看 80 端口是否被Nginx占用,如果是其他程序占用,请先关闭。

netstat -lntp

确定 Nginx 安装运行正常后,我们新建一个虚拟主机配置文件:

vi /etc/nginx/sites-available/seafile.conf

然后按 I键 进入编辑模式,并粘贴一下内容(自己修改 第三行的域名 和 倒数第三行的Seafile目录)

配置文件示例:

点击展开 查看HTTP配置示例

注意:中间的两行 access_log 和 error_log 是日志记录,如果不需要的话,可以关闭访问日志,只保留错误日志,否则时间长了,日志大小感人。

		access_log      /var/log/nginx/seahub.access.log;
		error_log       /var/log/nginx/seahub.error.log;
# 正常开启 访问和错误 日志记录
		access_log      off;
		error_log       /var/log/nginx/seahub.error.log;
# 关闭访问日志记录,开启错误日志记录
		access_log      off;
		error_log       off;
# 关闭 访问和错误 日志记录

修改并设置完后,按 ESC键 退出编辑模式,然后输入 :wq 保存并退出VI。

然后我们删除默认的Nginx 虚拟主机配置文件,并创建刚才我们新建的配置文件软连接。

rm -rf /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf

然后我们设置一下我们的网页文件权限,否则Nginx会报错 403。

chown root:root -R /root/seafile/seafile-server-latest/seahub/media

然后我们打开 nginx.conf 文件,

vi /etc/nginx/nginx.conf

I键 进入编辑模式,修改 user www-date; (可能会不一样,如果没有就自己添加到第一行)为 user root; (注意最后的 分号 ; 结尾),然后按 ESC键 退出编辑模式,然后输入 :wq 保存并退出VI。

然后我们,打开 Seafile网站,在右上角的用户头像 — 系统设置 — 设置 — URL中分别设置 SERVICE_URL 和 FILE_SERVER_ROOT 为:

SERVICE_URL:http://demo.toyoo.pw

FILE_SERVER_ROOT:http://demo.toyoo.pw/seafhttp

并点右边的 对号 √ 保存。

重启Nginx:

/etc/init.d/nginx restart

重启seafile:

./seahub.sh stop
./seafile.sh stop

# 设置Nginx/Apache以后就用下面代码启动。

./seafile.sh start
./seahub.sh start-fastcgi

这时候你再打开你的 Seafile网站 看一看是否正常。

Nginx使用说明:

/etc/init.d/nginx start
# 启动Nginx
/etc/init.d/nginx stop
# 停止Nginx
/etc/init.d/nginx restart
# 重启Nginx
nginx -s reload
# 重载Nginx配置

配置SSL(可选)

如果你想要保证数据安全,那么你可以配置SSL,这个需要根据上面的教程配置过Nginx。

首先你要有SSL证书,没有?免费申请教程:免费申请SSL证书 — AlphaSSL 及 LNMP一键包Nginx配置SSL证书教程

然后把你的 SSL证书(.crt)和SSL密匙(.key) 文件假设放到 /root 文件夹下面。

然后根据情况,自己修改 第5、6行 SSL证书/密匙 位置,第10行 域名,倒数第3行 seafile目录,第 14-16 行是访问HTTP重定向到HTTPS。

配置文件示例:

点击展开 查看HTTPS配置示例

然后打开 虚拟主机配置文件:

vi /etc/nginx/sites-available/seafile.conf

把里面的内容全部删除,并把修改后的配置文件内容粘贴进去。

然后我们,打开 Seafile网站,在右上角的用户头像 — 系统设置 — 设置 — URL中分别设置 SERVICE_URL 和 FILE_SERVER_ROOT 为:

SERVICE_URL:https://demo.toyoo.pw
FILE_SERVER_ROOT:https://demo.toyoo.pw/seafhttp

并点右边的 对号 √ 保存。

重载Nginx配置:

nginx -s reload

如果没有报错,那么就继续重启seafile:

./seahub.sh stop
./seafile.sh stop

# 设置Nginx/Apache以后就用下面代码启动。

./seafile.sh start
./seahub.sh start-fastcgi

然后你尝试使用 HTTPS 访问网站试试。


简单的搭建教程就到这里了,有什么需要补充的请在下面评论留言。

参考资料,seafile官方服务器手册:

https://manual-cn.seafile.com/deploy/using_mysql.html

https://manual-cn.seafile.com/deploy/deploy_with_nginx.html

https://manual-cn.seafile.com/deploy/https_with_nginx.html

其他私人网盘教程:https://doub.io/all-one/#私有网盘 相关教程

转载请超链接注明:逗比根据地 » 搭建一个属于自己 可多平台同步的私有云盘 —— Seafile
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (43)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(52)个小伙伴在吐槽
  1. 请问搭建后如何升级Seafile服务端版本呢?比如更新到最新版本?还有这个可以升级专业版吗?如何操作呢
    Benson2018-10-25 17:09 回复
  2. 打开显示 page unavailable怎么办 :neutral:
    anyong2018-10-17 06:13 回复
  3. 要想更简单的建网盘可以用这个软件 http://mydisk.ml:5156/webd-win32.tar.gz
    jimmy2018-10-16 08:40 回复
  4. 你好,我想利用 seafile 和 aria2+ariang 进行离线下载;分别搭建好后怎样实现在 ariang 上下载文件,seafile就可以自动同步显示呢?我的 seafile 数据存储目录使用的是默认的 /root/seafile/seafile-data,我在 aria 中也将下载目录设为了这个,可是并没有实现我想要的功能,请问要怎样设置呢?
    Salo2018-10-11 04:27 回复
    • seafile 是加密分隔储存的,无法与其他程序共享。
      Toyo2018-10-11 11:40 回复
  5. 大佬,这个我也有问题,安装过程顺利,但是手机可以打开,电脑却打不开
    mmqwe2018-09-30 14:32 回复
  6. 站长你好,请问下不需要把域名解析过去吗?我安装成功之后网站8000端口打不开啊,显示无法访问此网站要怎么弄啊
    leo2018-08-16 14:08 回复
  7. 综合对比了Seafile官网和贵网站制造的教程, 发现安装完成后是社区版. 然而Seafile三人以下使用时是可以支持专业版的, 会支持文档在线预览等选项, 不知道大佬可否制作一个迁移教程?
    AzureSkyline2018-05-12 19:28 回复
  8. 可不可以不用nginx,caddy可以吗
    block2018-04-18 17:12 回复
  9. 大神,seahub.sh seafile.sh nginx 都能正常启动,但是访问域名,显示502 Bad Gateway nginx/1.6.2, 如何解决呢?
    jeff2018-02-27 21:54 回复
  10. 我在启动seafile.sh时报错: ccnet-server: error while loading shared libraries: libssl3.so: cannot open shared object file: No such file or directory failed to run "ccnet-server -t" libsss3.so什么鬼,找了半天没找到。怎么安装啊
    cheneytac2018-02-01 13:24 回复
  11. 请问一下,数据库目录在哪个目录下?
    Tearth2018-01-19 22:03 回复
    • 不清楚,这个 网盘程序我就写教程的时候研究了下,后来觉得配置太麻烦,就没再用了,后面也是一直使用这个网盘程序:https://doub.io/jzzy-3/
      Toyo2018-01-20 00:39 回复
  12. apt-get update 然后报错 W: Ignoring Provides line with DepCompareOp for package python-cffi-backend-api-max W: Ignoring Provides line with DepCompareOp for package python-cffi-backend-api-min W: Ignoring Provides line with DepCompareOp for package python3-cffi-backend-api-max W: Ignoring Provides line with DepCompareOp for package python3-cffi-backend-api-min W: Ignoring Provides line with DepCompareOp for package sagenb-export W: Ignoring Provides line with DepCompareOp for package sagenb-export W: You may want to run apt-get update to correct these problems 大佬,这个有办法么~~
    Rocob2018-01-13 17:15 回复
    • 什么系统?我还没遇到过这种情况。
      Toyo2018-01-13 20:14 回复
  13. 大佬,输入过程中&& chmod +x *.sh,这里的*应该是什么文件名,我输入程序和版本号报错,但是还是成功搭建了,还有Enter the password for mysql user "seafile": [ password for seafile ] # 回车 这块好像不能回车,要手动输入密码,我的是6.1.2版的
    cp2018-01-12 21:29 回复
    • *.sh ,指的是 任意以 .sh后缀的文件名。就是输入密码后回车。
      Toyo2018-01-13 16:10 回复
      • 好的
        cp2018-01-13 19:51 回复
  14. 重启 系统在启动 提示 -bash: -bash-bash:: command not found
    2017-11-02 17:31 回复
  15. 求教大佬如何在lnmp创建虚拟主机的环境下搭建seafile。貌似在lnmp一键包环境下按照上面的步骤做下来,访问相应域名时还是只显示那个一键包的界面
    ceaeyjy2017-08-31 21:07 回复
  16. 小白问题:请问大佬,我装了你的shadowsocks多用户一键脚本以及安装了AMH面板,还可以装这个seafile 吗?
    余水2017-08-14 12:27 回复
    • 我没有Shadowsocks多用户一键脚本,只有ShadowsocksR的。这类软件只要端口不冲突都能共存,不过seafile的安装数据库 会和你的AMH面板冲突,你可以尝试省略数据库,然后在AMH面板安装的数据里添加seafile的数据库,但是我没试过,不清楚是否可行,如果不需要各平台同步文件功能,我建议你用这个做私人网盘更简单一些:https://doub.io/jzzy-3/
      Toyo2017-08-14 12:33 回复
      • 谢谢大佬
        余水2017-08-14 13:41 回复
  17. 按照登录网盘系统设置—设置—URL 去掉8000后,登录不含:8000后缀的地址显示 no such site at :80,尝试直接重启 Seafile 进程 和 Seahub 进程(seahub 重启指令后已加端口80),也是这个提示;先后停止Seafile和Seahub进程然后依停止顺序再分别启动两个进程,问题依旧,请问toyo问题出在哪里?
    ogr14322017-07-01 21:25 回复
  18. 请问这是什么问题?
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     mariadb-server : Depends: mariadb-server-10.0 (>= 10.0.30-0+deb8u2) but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.
    KCP2017-06-05 02:29 回复
    • 依赖为满足,包损坏。可以尝试 apt-get install -f -y mariadb-server ,但不一定有用。
      Toyo2017-06-05 12:14 回复
  19. 这个能不能出个一键包 :mrgreen:
    Bob2017-06-02 14:02 回复
  20. 你好,我用腾讯云搭建成功了,但是就是手机无法同步,即使我选择了相册自动同步还是不行,只能自己一张图片一张图片自己上传,请问这是我配置哪里出问题了吗?还是大家都这样?
    tiger2332017-05-23 23:53 回复
  21. 请问大佬我配置的https访问的时候不加https://会出 400 Bad Request The plain HTTP request was sent to HTTPS port nginx/1.6.2 怎么办
    XYenon2017-04-10 22:47 回复
    • 贴出 nginx域名的.conf文件内容。
      Toyo2017-04-11 01:05 回复
      • 解决了,去掉上面https配置里的ssl on;就行了
        XYenon2017-04-15 20:46 回复
  22. 请问toyo大佬,这个按照官方文档搞的开机自启总是提示seahub.sh kill错误,可否告知该怎么解决,Google了一通没找到能解决的办法,谢谢
    admin2017-03-27 00:34 回复
  23. 请问安装了这个重启vps后为什么连不上数据库错误2002
    df2017-03-25 19:55 回复
  24. 能不能写个专业版的安装教程呢?专业版3用户可以免费使用的,有全文搜索功能
    流量2017-03-21 12:10 回复
  25. 有没有办法Seafile和aria2结合起来呢,这样就可以远程下载+网盘式管理了
    Alex2017-03-14 19:37 回复
    • 这个需要 开发一个 Seafile 扩展什么的,而且还有把他们放在一起。
      最重要的是,Seafile和aria2存储文件的方式不一样,Aria2是直接下载文件存储到指定文件夹,而Seafile则是为了安全,而把文件都加密分割处理了。
      Toyo2017-03-14 19:42 回复
  26. 服务器重启后怎么办, ./seafile.sh start # 启动 Seafile 服务 ./seahub.sh start 8001 # 启动 Seahub 网站 (运行在 8001 端口上,默认不写参数为 8000) 我尝试上面的命令,提示 No such file or directory
    武子2017-03-11 16:50 回复
    • “No such file or directory”找不到文件,很明显,你没有在seafile的文件夹内,所以你直接执行是不行的。
      Toyo2017-03-11 17:09 回复
  27. It works! This is the default web page for this server. The web server software is running but no content has been added, yet. 把那个端口去掉 重进就这样 :mrgreen: 这是哪出问题了
    Guangd2017-03-07 21:04 回复
  28. 以前用pi尝试过,感觉还可以。
    chintj2017-02-18 17:27 回复
  29. 开机启动的脚本的内容怎么设置呀,用户名HughGe seafile data dir为 /root/seafile/seafile -data 整了半天,脚本好像改的都不对
    HughGe2017-02-16 19:34 回复
  30. 其实...sftp就可以了吧
    南琴浪2017-02-16 15:23 回复
    • 能一样吗?
      Toyo2017-02-16 17:51 回复
    • Sftp速度。不敢恭维
      kurokutomoko2017-03-01 19:57 回复
  31. 求推荐一下比较适合做私有云的vps。。。我买的一些vps,硬盘就30g。。。做私有云是不是有点小。。。
    龙井2017-02-16 11:16 回复
  32. 公司小团队用seafile免费版快一年了,平常传传小文件,感觉还是还是蛮稳定的。用的windows版
    卑鄙的我2017-02-16 11:09 回复
  33. 站长,你好。安装依赖出现问题。[email protected]:~# apt-get install mariadb-server -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: libglib2.0-0 : 破坏: glib-networking (< 2.33.12) 但是 2.32.3-1 正要被安装 E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。 [email protected]:~# 我的机房在德国,之前我是直接复制你的代码,然后就提示同样的内容。然后我换成de.sources.list,然后还是同样的提示。
    Lao2017-02-14 15:57 回复
    • 不是源的问题,是自身系统内的问题,可能存在冲突之类的,具体不是很清楚,谷歌看看吧。
      Toyo2017-02-14 17:16 回复
  34. 晚点玩玩哈哈哈
    许未来2017-02-14 14:43 回复
  35. 我又会折腾很久。不过正好试试。
    Lao2017-02-14 12:37 回复
  36. 非常感谢!早就想要做一个了,当时留了言,没想到真的出教程了!感谢!
    akll2017-02-13 18:42 回复
  37. 看完正片文章,很不错,就是觉得偷油写的文章很亲民。我也搭建成功了,我是用的lnmp搭建的。 喜欢
    amazed2017-02-13 10:36 回复