Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux, iOS, Android 平台。支持文件同步或者直接挂载到本地访问。群晖中的Docker与Linux Server中略有不同,Seafile专业版对3个以内用户免费,是很好的文档同步方案。
准备工作
安装Docker套件
在套件中心里搜索Docker,并安装。
(上图来自我的NAS,所以是已启动状态,默认此处应该为安装)
建立数据文件夹
用于持久化保存数据,所以需要提前建立相关的数据文件夹,并在后续的设置中映射到Docker容器中。主要有这么几个:
- MySQL数据库,映射到容器的/var/lib/mysql文件夹
- Seafile数据,映射到容器的/shared文件夹
- Elasticsearch索引数据,映射到容器的/usr/share/elasticsearch/data文件夹
为了管理方便,我新建了一个Seafile-pro文件夹,将几个数据文件夹都放在里面,如下图
通过SSH连接到群晖
在 控制面板-终端机和SNMP-启动SSH功能 里开启SSH访问。
:::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 服务
sudo docker-compose up -d
从服务器拉取镜像需要一点时间,等容器首次启动时的初始化操作完成后,就可以在浏览器上访问了。如访问群晖的网址是http://www.example.com,端口号为8000,则可以用http://www.example.com:8000
来打开 Seafile 主页。
:::info 备注:因群晖里登陆使用的不是root用户,所以需要sudo来提权。 :::
更多设置
配置反向代理
群晖支持反向代理,包括将https访问转换为http访问,我利用这个功能,直接使用群晖的SSL证书给Seafile开启加密访问。
升级Seafile服务
同样需要在SSH中操作,依次输入以下命令
sudo docker pull docker.seafile.top/seafileltd/seafile-pro-mc:latest
sudo docker-compose down
sudo docker-compose up -d
本文部分内容参考Seafile官方支持文档,详见用 Docker 部署 Seafile 专业版
额外说明
如果遇到文件或文件夹无法操作,可能是权限不够,可通过如下命令给予权限
sudo chmod -R 755 文件夹名