前言
家里部署 Nas 已经好几年了,但是基本只有我一个人再用,总想让老爸放弃他的 360 企业云盘,但是没成功,说 QNAP 默认的 webUI 太难操作了。之前有试过应用商店自带的 nextcloud,但是默认存储路径在系统盘,我的系统盘只有 500g,本身就不够用了,只能作罢。最近在对手上使用的各种服务进行容器化改造方便未来迁移,故而撰写这篇文章记录 nextcloud 的构建过程。
一、部署
1.1 compose 文件配置
关于威联通系统的 container station 就不必过多介绍,唯一的缺点就是不支持 ipv6,希望以后会改进。为了方便部署也为了整合,这里直接使用 docker compose 的方式进行部署,数据库采用PostgreSQL
,中间件采用Redis
.
配置文件参考了官方文档,但是将数据库实现改为了postgresql
,并增加了redis
作为缓存组件.其中postgres
的数据库目录,nextcloud
的数据目录做了挂载卷映射,以便数据的持久化管理,具体路径可根据需求修改,同时加上了时区信息.以下为 compose 文件内容:
1 | version: "3.2" |
1.2 部署流程
1.2.1 目录准备
通过控制台-共享文件夹-创建
,构建新的共享文件夹,文件夹名称设置为nextcloud
,磁盘自行选择,本文使用了一块 16T 的西数 HC550 硬盘作为存储路径.

随后通过File station文件总管
在该共享目录中创建data
和postgresql/data
两个目录,在 QNAP 系统中的相对路径分别为/share/nextcloud/data
和/share/nextcloud/postgresql/data
,最后的目录结构如下所示:
1 | . |
1.2.2 创建容器
通过Container Station 容器工作站
,在创建选项卡中选择右侧的+创建应用程序
即可使用前文提供的 compose 文件,将其中用户名密码以及存储路径和端口进行相应替换即可.注意删去文件中的注释,否则无法通过自带的校验功能.

1.2.3 (option)配置反向代理
如果你使用了威联通自带的 ddns 服务并配置了 ssl 证书,则可以通过控制台-网络访问-反向代理
功能为 nextcloud 服务添加 ssl 代理,此处协议为HTTPS
,开启HSTS
,假定 compose 文件中配置的端口为 25001,反向代理所用端口为 21443.建议对容器端口和代理端口有一个统一的规划

在配置完反向代理后,需要修改nextcloud
的可信域名配置和dav 配置,以适配反向代理.可以首先通过Container Station 容器工作站
的总览找到 nextcloud 所在容器,点击右侧的终端机
按钮,输入/bin/bash
进入终端.

进入终端后,执行如下命令修改配置:
1 | apt update |
1.2.4 修改配置默认
nextcloud 默认地区和语言均为美国,并且未设置电话区域,需要进行修改,参考官方管理手册的language_configuration和default-phone-region.
参考上一节进入容器的命令行,并执行如下命令:
1 | vi /var/www/html/config/config.php # 执行修改命令 |
1.2.5 (option)修改定时策略
nextcloud 默认的定时策略为ajax
,官方推荐修改为Cron
.官方手册的修改方式存在问题,无法使用.
首先参考 2.2.3 节进入终端,执行如下命令:
1 | apt install cron # 安装定时任务工具 |
接下来通过之前设置的网页和端口进入 nextcloud 网页,登录后点击右上方头像,在管理设置-基本设置-后台任务
中将方式改为cron
.
1.2.6 (option)配置邮件服务
同样在在管理设置-基本设置
中,可以对电子邮件服务进行配置,这里推荐使用阿里云的邮件推送服务,我尝试使用企业邮箱的 smtp 代理时,总提示连接失败.
1.2.7 (option)添加外部存储服务
nextcloud 可以通过 smb 等方式连接外部存储,这样就不需要将 NAS 中的每个需要的目录都映射到 docker 中,只需要以 smb 的形式进行挂载,就可以动态的配置文件.
具体配置过程如下:
- 进入 nextcloud 网页,登录后点击右上方头像,在
应用
中找到精选应用
,在应用列表中选择下载并启用External storage support
. - docker 中默认未安装
smbclient
,需要参考前文进入容器命令行,执行apt install smbclient
. - 重新进入 nextcloud 网页,登录后点击右上方头像,在
管理设置-外部存储
中添加 smb 目录.
二、总结
nextcloud 作为一款发行多年的开源私人存储管理软件,提供了多平台的客户端,同时上手难度远低于 qnap 自带的文件管理体系,配置好服务以后只需要简单的安装 app 或访问网页就可以管理文件.