前言
在家有个个人服务器,有1tb硬盘空间,就想安装个网盘玩玩。有许多开源的网盘如Nextcloud, Owncloud等等。这里选择seafile,听说性能好,毕竟使用c开发。我选择的是docker方式部署,简单方便。
准备
确保已安装docker
和docker-compose
。
下载并修改docker-compose.yml
下载官方提供的docker-compose.yml
文件。点击打开链接后点击下载按钮
修改docker-compose.yml
配置文件
数据库服务
数据库服务为services.db
enviroment
中MYSQL_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
便是网盘首个管理员账号的邮件密码。自行更改就行。- 如果您把
enviroment
中SEAFILE_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
中可以设置默认上限。编辑此文件添加或修改:
这个设置对所有用户生效. 如果你想对某一特定用户进行容量分配, 请以管理员身份登陆 Seahub 网站, 在 系统管理 页面中进行设置。[quota] # 单位为 GB default = 2