部署
memcached
1 2 3 4 5 6 7 8
| docker run \ --name memcached \ --hostname memcached \ -d \ --restart always \ --network swarm-net \ --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ memcached memcached -m 256
|
elasticsearch没有部署,不(太)需要搜索功能。
专业版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| docker run \ --name seafile \ --hostname seafile \ -d \ --restart always \ --network swarm-net \ --cpus 3.4 \ --env DB_HOST=mysql \ --env DB_ROOT_PASSWD=123456 \ --env [email protected] \ --env SEAFILE_ADMIN_PASSWORD=password \ --env TIME_ZONE=Asia/Shanghai \ --env SEAFILE_SERVER_LETSENCRYPT=false \ --env SEAFILE_SERVER_HOSTNAME=share.newnius.com \ --mount type=bind,src=/etc/localtime,dst=/etc/localtime,readonly \ --mount type=bind,src=/data/seafile/,dst=/shared/ \ docker.seafile.top/seafileltd/seafile-pro-mc:latest
|
社区版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| docker run \ --name seafile \ --hostname seafile \ -d \ --restart always \ --network swarm-net \ --cpus 3.4 \ --env DB_HOST=mysql \ --env DB_ROOT_PASSWD=123456 \ --env [email protected] \ --env SEAFILE_ADMIN_PASSWORD=password \ --env SEAFILE_SERVER_LETSENCRYPT=false \ --env SEAFILE_SERVER_HOSTNAME=share.newnius.com \ --mount type=bind,src=/etc/localtime,dst=/etc/localtime,readonly \ --mount type=bind,src=/data/seafile/,dst=/shared/ \ seafileltd/seafile-mc
|
专业版与社区版对比
https://www.seafile.com/en/product/private_server/
配置https
默认情况下,是走http协议,默认配置上传的时候会有问题,需要登录之后在管理面板修改URL,配置文件里也可以修改,不过官方建议通过web修改。
配置Nginx转发
官方容器里有nginx、可以把配置文件复制出来。
配置多存储后端
分盘,比如重要的文档等数据放在一个硬盘里,对这个盘多加备份,其他的电影等放在另外的盘里,随便存储,坏了就丢。分级保护。
https://manual-cn-origin.seafile.com/deploy_pro/cun-chu-hou-duan/multiple_storage_backends
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [ { "storage_id": "important_storage", "name": "Important Storage", "is_default": true, "fs": {"backend": "fs", "dir": "/seafile-data"}, "commits": {"backend": "fs", "dir": "/seafile-data"}, "blocks": {"backend": "fs", "dir": "/seaflle-data"} }, { "storage_id": "tmp_storage", "name": "Unimportant Storage", "is_default": false, "fs": {"backend": "fs", "dir": "/shared2/"}, "commits": {"backend": "fs", "dir": "/shared2/"}, "blocks": {"backend": "fs", "dir": "/shared2/"} } ]
|
配置邮箱
https://docs.seafile.com/published/seafile-manual-cn/config/sending_email.md
对于专业版,因为有加密库,可以考虑自动发送密码,免的忘记了。
评价
- 安装过程怎么说呢,用docker可以直接跑起来,但是配置文件很乱,mysql的配置信息哪哪都有,很乱。初始化数据库必须要root用户密码,有一点安全方面的问题;
- 安装和升级的流程做的不够优秀,体现在docker容器制作、升级脚本和步骤等
- 底层存储,分片和加密(可选),安全性比较好,但是也让人比较担忧可用性
- 同步文件很快,通过小文件测试,seafile同步两万个小文件一分钟就搞定了,而nextcloud差不多跑了半小时。nc的性能实在是太差了
- 功能性方面,seafile很适合用来当纯文档同步和存储,功能比较专一,nextcloud功能很多很杂,但是感觉都做的还不够完善,app经常崩溃
- seafile客户端比较丰富,还提供seadrive模式,像挂载硬盘一样挂载,不用全量同步在本地,用的时候也很方便
- 分块存储、复用、回收站,非常专业的同步盘做法,相比之下,nextcloud差很多。
总结:功能性选nextcloud,性能选seafile(不过国人维护的项目,可靠性差一些。。)
1
| for i in {1..20000}; do dd if=/dev/urandom bs=1 count=1 of=file$i; done
|
卸载
如果不想继续使用,或者是出错了想要重新安装,可以先删除现有的数据。
删除Mysql数据库信息
1 2 3 4 5 6 7 8 9
| drop user seafile@'%.%.%.%';
flush privileges;
drop database seafile_db;
drop database seahub_db;
drop database ccnet_db;
|
至于seafile其他的数据,因为是docker,直接把容器和挂载的外部文件删除即可。
文档
有两个,不太一致
https://manual-cn-origin.seafile.com/
https://docs.seafile.com/published/seafile-manual-cn/home.md
最后,期待一下go版本的nextcloud/owncloud吧
https://page.codespaper.com/2020/from-nextcloud-to-seafile/