ubuntu部署seafile以及Nginx 环境下部署 Seahub/SeafServer

Seafile 是一款安全、高性能的开源网盘(云存储)软件。Seafile 提供了主流网盘(云盘)产品所具有的功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。由于 Seafile 是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。

最早的时候,是CD/磁带,一次购买终身使用。后来,把歌曲、电影下载到MP4/TF卡播放。后来,跨平台的需求以及3G的普及,云盘开始流行。现在,因为版权、限速的问题,我决定搭建私有云,也可以说是搭建自己服务器的最主要目的。

简单解释一下seafile的客户端:

  • 桌面同步客户端:实施同步电脑中的文件夹到远端服务器。如果在A、B电脑都安装了客户端并都选择同步了某文件夹,那么A电脑文件夹修改之后可以在一分钟内(可设置同步间隔)推送到B电脑上。如果B电脑某软件锁定或者离线编辑了文件导致冲突,seafile可以比对识别并保留两个不同版本文件。
  • 挂载盘客户端:在电脑中虚拟一个硬盘,该虚拟硬盘有seafile服务器中的所有文件映像,编辑时从服务器中实时下载,平时不占用电脑空间。
  • 移动客户端:手机APP,具备备份相册、文件预览等功能。
  • 网页端:在线预览、下载,分享外链、文件下载。配置用户账户,配置管理员设置。

PC客户端下载地址:下载seafile

在此之前,默认已经配置好了Ubuntu虚拟机系统

使用docker部署seafile

进入ubuntu系统以后,用先前设置的账号密码登陆。

安装ssh远程控制台:

sudo apt install openssh-server

现在可以使用putty远程连接复制代码了。

设置root密码:

sudo passwd root

切换到root账户,输入密码:

su root

必须全程使用root账号!特别是断开putty以后需要注意重新切换!

以下步骤建议某小工具设置为全局模式,否则网速能慢到你怀疑人生!

安装docker:

wget -qO- https://get.docker.com/ | sh

安装seafile:

docker run -d --name seafile \
-e SEAFILE_SERVER_HOSTNAME=fanmiao.site \
-v /opt/seafile-data:/shared \
-p 8000:8000 \
-p 8082:8082 \
seafileltd/seafile:latest

启动seafile容器:

docker start seafile

设置seafile容器开机启动

docker update --restart=always seafile

安装好之后,就可以从IP+8000端口访问。默认用户名me@example.com,密码asecret 。

登陆后,在右上角头像→系统管理→用户界面添加用户并设置为管理员。

在设置中,绑定域名SERVICE_URL和端口。默认端口为8000。

在openwrt的网络→防火墙→端口转发添加转发规则。

如果在局域网想使用域名解析客户端或者网页端,还需要添加路由器host记录seafile.fanmiao.site指向服务器内网IP。这里是教程。如果在局域网中直接用IP访问,那么此步骤可以忽略。

配置nginx

以上设置可以满足seafile PC端所有和网页端浏览功能。如果要从网页端和手机端下载文件,还需要配置安装nginx:

sudo apt-get install nginx

创建文件 seafile.conf(这里官网文档代码有问题):

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

并粘贴以下内容。

删除 /etc/nginx/sites-enabled/default(这里官网文档代码有问题):

rm /etc/nginx/sites-enabled/default

创建符号链接:

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

修改client_max_body_size使服务器可以上传大于1M的文件:

vi /etc/nginx/nginx.conf

在http{ … } 块中添加:

client_max_body_size 0;

启动nginx:

sudo /etc/init.d/nginx start

设置FILE_SERVER_ROOT

最后路由器增加端口映射8082


可能能用得到的代码:

查询哪个程序占用了80端口:

lsof -i:80

关闭进程号PID:

kill -9 进程号(PID)

重启时打开seafile:

docker start seafile

停止docker里所有容器:

docker stop $(docker ps -aq)

删除docker里所有容器:

docker rm $(docker ps -aq)

参考文献:seafile服务器手册

Leave a Reply

Your email address will not be published. Required fields are marked *