返回
初始体验seafile开源网盘
服务器网盘云盘Seafile

前言

在家有个个人服务器,有1tb硬盘空间,就想安装个网盘玩玩。有许多开源的网盘如Nextcloud, Owncloud等等。这里选择seafile,听说性能好,毕竟使用c开发。我选择的是docker方式部署,简单方便。

准备

确保已安装dockerdocker-compose

下载并修改docker-compose.yml

下载官方提供的docker-compose.yml文件。点击打开链接后点击下载按钮

修改docker-compose.yml配置文件

数据库服务

数据库服务为services.db

  • enviromentMYSQL_ROOT_PASSWORD是数据库密码,改成自己想要的密码或是直接默认密码不改。若改了密码需要一起改services.seafile.enviroment中的DB_ROOT_PASSWD,确保两个相同。

seafile服务

seafile服务为services.seafile

  • ports中可以更改80端口和443端口的映射。打个例子,我是个人服务器,没有域名,80端口已经部署了一个网页,若想部署seafile肯定不能部署在80端口,所以我选择部署在2000端口上,就将80:80改成2000:80就行。
  • enviroment中的SEAFILE_ADMIN_EMAIL以及SEAFILE_ADMIN_PASSWORD便是网盘首个管理员账号的邮件密码。自行更改就行。
  • 如果您把enviromentSEAFILE_SERVER_LETSENCRYPT设置为 true,该容器将会自动为您申请一个 letsencrypt 机构颁发的 SSL 证书,并开启 https 访问。如果您想要使用自己的 SSL 证书,而且如果用来持久化存储 Seafile 数据的目录为 /opt/seafile-data,您可以做如下处理:
    • 创建 /opt/seafile-data/ssl 目录,然后拷贝您的证书文件和密钥文件到ssl目录下。
    • 假设您的站点名称是 seafile.example.com,那么您的证书名称必须就是 seafile.example.com.crt,密钥文件名称就必须是 seafile.example.com.key。

启动 Seafile 服务

执行以下命令启动 Seafile 服务

docker-compose up -d

需要等待几分钟,等容器首次启动时的初始化操作完成后,您就可以在浏览器上访问服务器ip或域名 来打开 Seafile 主页。

注意:

  • 您应该在 docker-compose.yml 文件所在的目下执行以上命令。
  • 由于我将seafile服务部署在2000端口,因此访问 Seahub 网站时需要加上端口2000

修改 Seafile 服务的配置

Seafile 的配置文件存放在shared/seafile/conf目录下,您可以根据Seafile 手册的指导来修改这些配置项。一旦修改了配置文件,您需要重启服务以使其生效:

docker-compose restart

Seafile 目录结构

/shared 共享卷的挂载点,您可以选择在容器外部存储某些持久性信息.在这个项目中,我们会在外部保存各种日志文件和上传数据。 这使您可以轻松重建容器而不会丢失重要信息。

  • /shared/seafile: Seafile 服务的配置文件以及数据文件

  • /shared/logs: 日志目录

    • /shared/logs/var-log: 我们将容器内的/var/log链接到本目录。您可以在/shared/logs/var-log/nginx/中找到 nginx 的日志文件
    • /shared/logs/seafile: Seafile 服务运行产生的日志文件目录。比如您可以在/shared/logs/seafile/seafile.log文件中看到 seaf-server 的日志
  • /shared/ssl: 存放证书的目录,默认不存在

升级 Seafile 服务

如果要升级 Seafile 服务到最新版本:

docker pull seafileltd/seafile-mc:latest
docker-compose down
docker-compose up -d

问题

  • Seahub 登陆页面显示可以使用邮件或用户名登陆,然而只能使用邮件登陆,输入用户名登陆会提示错误。我使用的 Seafile 服务器版本是v8.0.7

用户默认的配额空间

  • 可以在 系统管理 > 用户选项 中为每个用户设置配额,每个用户默认为0,设置为0表示重置为默认上限。有趣的是它的大小计算方式为每1000MB为1GB。
  • /shared/seafile/conf/seafile.conf中可以设置默认上限。编辑此文件添加或修改:
    [quota]
    # 单位为 GB
    default = 2
    
    这个设置对所有用户生效. 如果你想对某一特定用户进行容量分配, 请以管理员身份登陆 Seahub 网站, 在 系统管理 页面中进行设置。

参考资料