先上效果图。下图是 mac 客户端与 web 服务器的配合使用录屏。
〇、前言
- 安装 docker 比较简单。直接从官网下载安装文件,双击安装就可以了。和普通的 macOS app 一样。
- 对于 docker 操作要有基础的了解。可以参考 docker 从入门到实践。正常按照文中的步骤就可以顺利完成。
- 什么是 seafile?官网为什么选了 seafile?知乎这里两个链接可以点击直接查看。更多的信息,大家自行了解。
安装完成 docker,你就可以在终端中输入 docker version
, 出现下面的反馈,我们就可以开始后面的事情了。
1 | docker version |
seafile 服务器端目前有 Linux,Raspberry PI,Windows 版本,这也是在 macOS 上需要 docker 的原因。
一、下载 docker Ubuntu 16.04 镜像
1 | docker pull daocloud.io/ubuntu:16.04 |
由于官方的 docker 镜像仓库在国内链接很慢,这里可以选择 daocloud.io 的镜像仓库。上面的命令用来从镜像仓库中拉取tag为16.04的 ubuntu 版本。
二、基于 Ubuntu 16.04 镜像更新源,安装必要工具
运行基于 daocloud.io/ubuntu:16.04 镜像的容器,并打开其终端。在容器内部,就和操作普通的 ubuntu 没有大的差别了。
1 | docker run -i -t daocloud.io/ubuntu:16.04 /bin/bash |
更新 ubuntu 的源,并安装必要的软件。基础的 ubuntu 镜像,我们需要的软件工具都没有,所以我们需要先安装。由于官方的源,同样因为国内的关系,速度很慢,我们需要添加国内的软件源。参考:Ubuntu 16.04 几个国内更新源
1 | apt-get update // 更新软件源 |
更新到国内源以后,下载速度就快很多了。继续安装一些工具如 wget
,tree
,后面会用到。
1 | apt-get install wget tree |
三、在 ubuntu 上安装 seafile
官方有很详尽的文档,照着做下来就好了。这边我记录下自己的步骤。
通过 wget
从官网下载服务器端安装包。
1 | wget -c http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.0.8_x86-64.tar.gz |
下载完成后,按照如下建立目录:
1 | mkdir haiwen |
将 seafile-server_* 移动到 haiwen 目录下后
1 | tar -xzf seafile-server_* |
官方说明:这样设计目录的好处在于
- 和 seafile 相关的配置文件都可以放在 haiwen 目录下,便于集中管理。
- 后续升级时,你只需要解压最新的安装包到 haiwen 目录下。
安装 seafile 社区版依赖的软件:
1 | apt-get update |
安装完成以后,需要修改mysql用户的密码,并启动 mysql 服务:
参考地址:Ubuntu 16.04 下重置 MySQL 5.7 密码
1 | service mysql start // 启动 mysql 服务 |
再重启,用新的密码登录,验证修改是否生效。
1 | service mysql start |
在开始后面的步骤时,mysql 服务必须开启,否则会提示 mysql 相关的错误。
进入 seafile-server-* 目录,并运行安装脚本,根据提示回答问题。
1 | cd seafile-server-* |
基本上使用默认就可以了。
seafile server ip or domain
会影响到后面的下载与上传,不过系统配置中可以修改。这里可以随意填写, 如:127.0.0.1
seafile data dir
是文件存储的位置,这个要记清楚。后面我们要配置 docker 容器的数据目录。
接下来,你会被要求选择一种创建 Seafile 数据库的方式:
1 | ------------------------------------------------------- |
如果选择1, 你需要提供根密码. 脚本程序会创建数据库和用户。
如果选择2, ccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建。
我们选1,然后一路回车下来。
以上,我们已经完成了 seafile 社区版在 ubuntu 上的安装。
关于 seafile 专业版
seafile 社区版是没有用户使用限制的,专业版有。专业版的功能更加强大。如社区版无法预览 office,pdf 文件,仅提供下载到本地的功能,专业版可以在线预览。
专业版的安装与社区版类似。由于专业版的功能更强大,所以有更多的依赖,这就要在安装时安装更多其他的软件。
1 | apt-get install openjdk-8-jre poppler-utils libpython2.7 python-pip \ |
专业版3人以下使用是不需要授权的。更多的人需要购买授权。家庭使用的话,免费的专业版也完全够用啦。哪里可以下载到专业版请看后面的问题。
四、从 docker 容器中退出,制作 seafile 镜像
在上面的操作中,我们看到终端的左侧有类似下面的前置符:
1 | root@d63b87d071a4:/haiwen/ |
这里的 d63b87d071a4
是这次打开容器的 ID,我们要基于此来提交我们刚才做的修改。否则我们再次启动 ubuntu:16.04 这个镜像时,所有的修改都丢失了。
1 | docker commit -m 'install seafile' -a 'user' d63b87d071a4 seafile:v1 |
这样,就可以创建一个本地的 seafile 仓库,标签为 v1 的镜像。-m
为这次提交添加注释, -a
说明添加的用户, d63b87d071a4
修改的容器ID,seafile:v1
(仓库:标签)标识新建的镜像。docker commit
与 git commit
类似。
通过 docker images
查看本地镜像,类似如下:
1 | $ docker images |
五、启动 docker 中的 seafile 服务
配置数据卷、端口映射,启动 seafile 容器:
1 | docker run -i -t -v [1]:/haiwen/seafile-data -v [2]:/var/lib/mysql -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8082:8082 seafile:v1 /bin/bash |
-v
参数映射 mac 系统中的路径到 docker 容器中的路径,作为数据卷。这样容器中的数据就保存在物理磁盘上了。[1] mac 上需要映射到 seafile 同步文件存储的路径。[2] 需要映射到 mysql 存储的路径。-p
映射容器的端口到 mac 的端口,用于网络通信。 seafile 服务需要 10001,12001,8000,8082 共4个端口。8000 是浏览器访问网页服务的端口,8082是文件同步服务的端口。
启动 mysql 服务:
1 | service mysql start |
这时终端中提示报错也没有关系,是因为没有输入 mysql 的用户/密码导致的。
进入到 seafile-server-* 目录下:
1 | ./seafile.sh start // 启动 Seafile 服务 |
第一次启动 seahub 时,需要填写管理员账号,密码。
以上,你在浏览器中输入 127.0.0.1:8000
, 就可以看到 seafile 网站了。通过之前填写的管理员账户登录,就可以开始体验私有云的功能啦。
六、问题
1. 客户端无法下载/上传?
Seafile 可以支持桌面客户端、网页版、Android、iOS 客户端。客户端上设置你的服务器地址,用网站上配置的账号,就可以使用了。如果遇到无法上传、下载文件的问题。用管理员账号,进入系统管理后台->设置中,修改 SERVICE_URL
和 FILE_SERVER_ROOT
。前者用作网站访问链接,会影响到分享的文件URL;后者则影响文件同步。两者需要都能够被访问到。因此,地址是内网的,你出了局域网就访问不到了。
2. 专业版如何获取?
专业版的获取方法,请扫下面的二维码关注公众号,并回复 seafilepro
。
关注公众号,回复 seafilepro