Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux, iOS, Android 平台。支持文件同步或者直接挂载到本地访问。群晖中的Docker与Linux Server中略有不同,Seafile专业版对3个以内用户免费,是很好的文档同步方案。

准备工作


安装Docker套件

在套件中心里搜索Docker,并安装。
image.png
(上图来自我的NAS,所以是已启动状态,默认此处应该为安装)

建立数据文件夹

用于持久化保存数据,所以需要提前建立相关的数据文件夹,并在后续的设置中映射到Docker容器中。主要有这么几个:

  • MySQL数据库,映射到容器的/var/lib/mysql文件夹
  • Seafile数据,映射到容器的/shared文件夹
  • Elasticsearch索引数据,映射到容器的/usr/share/elasticsearch/data文件夹

为了管理方便,我新建了一个Seafile-pro文件夹,将几个数据文件夹都放在里面,如下图
image.png

通过SSH连接到群晖

在 控制面板-终端机和SNMP-启动SSH功能 里开启SSH访问。
image.png

:::info 开启SSH功能有较大风险,请做好安全防护。
:::

快速开始


下载并修改 docker-compose.yml

下载 docker-compose.yml 示例文件,然后根据实际环境修改该文件。尤其是以下几项配置:

  • MySQL root 用户的密码 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)
  • Seafile的管理员账号和密码 (SEAFILE_ADMIN_EMAIL and SEAFILE_ADMIN_PASSWORD)
  • 持久化存储 MySQL 数据的 volumes 目录 (volumes)
  • 持久化存储 Seafile 数据的 volumes 目录 (volumes)
  • 持久化存储 Elasticsearch 索引数据的 volumes 目录 (volumes)

将修改后的配置文件上传到群晖对应的文件夹中。

启动 Seafile 服务

通过SSH在docker-compose.yml文件所在的目录下执行以下命令启动 Seafile 服务

  1. sudo docker-compose up -d

从服务器拉取镜像需要一点时间,等容器首次启动时的初始化操作完成后,就可以在浏览器上访问了。如访问群晖的网址是http://www.example.com,端口号为8000,则可以用http://www.example.com:8000 来打开 Seafile 主页。

:::info 备注:因群晖里登陆使用的不是root用户,所以需要sudo来提权。 :::

更多设置


配置反向代理

群晖支持反向代理,包括将https访问转换为http访问,我利用这个功能,直接使用群晖的SSL证书给Seafile开启加密访问。
image.png

升级Seafile服务

同样需要在SSH中操作,依次输入以下命令

  1. sudo docker pull docker.seafile.top/seafileltd/seafile-pro-mc:latest
  2. sudo docker-compose down
  3. sudo docker-compose up -d

本文部分内容参考Seafile官方支持文档,详见用 Docker 部署 Seafile 专业版

额外说明

如果遇到文件或文件夹无法操作,可能是权限不够,可通过如下命令给予权限

  1. sudo chmod -R 755 文件夹名