又是一次很忐忑的折腾过程,原因在于自己没有什么 Docker 知识……最终顺利上车,记录如下。内容包括:1. 安装 Nextcloud;2. 安装相关插件;3. 设置外网访问。

选择安装镜像

【到最后才发现 nextcloud 的 官方安装文档 ,虽然对于仅仅在 群晖上安装没必要看那么仔细……放这里供参考】 【以下基于 Docker 安装,事实上还可以采用伪静态的方式安装,参见 Synology NextCloud 13.0.1 安裝教學

【20201124 补充:事实上,最后还是用回了下面最开始的那个教程 折腾NAS 篇四:群晖Docker安装nextcloud私有云,以及onlyoffice、流程图和思维导图插件 ,这个镜像确实对于新手比较友好;虽然折腾了整整一天时间,但至少还是有些收获的吧……至少对于 Synology 使用 Docker,已经相关的配置,用于尝试不用的 Docker 源,并精准进行文件管理;在这些方面上有了一点点的进步。(好吧你只是在自我安慰)】

另外,除了下面的使用 Docker 安装方法外,还可以直接采用伪静态方式部署,参见 Synology NextCloud 13.0.1 安裝教學


事实上,网上已有很多的安装教程,例如张大妈上的 折腾NAS 篇四:群晖Docker安装nextcloud私有云,以及onlyoffice、流程图和思维导图插件 。然而,这已经不是我第一次看到,明明 Docker 上有星标更多的 Image 却要去选择安装量更少的那一个了……心有不甘之下,决定去折腾那个 nextcloud ,于是有了下面的故事。

首先需要能够下载这个Image,国内好像会有问题,可以尝试采用本地的 mac 给 Synology 配置代理,之后进行下载。

https://registry.hub.docker.com/_/nextcloud/ 这个是官方镜像的说明文件,而上面那个教程的文档在 https://registry.hub.docker.com/r/wonderfall/nextcloud

在配置 Docker 选项的过程中,需要注意的有:

  1. 端口配置,例如官方镜像端口是 8080
  2. 文件夹映射,这是我比较纠结的地方,如前述自己没有 Docker 基础,因此对于官方给出的代码不太能理解

相较而言, wonderfall/nextcloud 就要清晰很多,里面的需要映射的文件包括

1
2
3
4
5
/data : Nextcloud data.
/config : config.php location.
/apps2 : Nextcloud downloaded apps.
/nextcloud/themes : Nextcloud themes location.
/php/session : php session files.

官方的 nextcloud 的说明有点长,参考上述的配置之后发现了相应的描述:

The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) is stored in the unnamed docker volume volume /var/www/html. The docker daemon will store that data within the docker directory /var/lib/docker/volumes/.... That means your data is saved even if the container crashes, is stopped or deleted.

下面还可以看到七七八八的各个子文件夹的各自功能,综合之后,我选择将 /var/www/html 文件夹挂载到 docker/nextcloud/html 下。

之后启动 Docker,进入相应的地址进行进行安装,比较简单就不介绍了。

安装应用

在 nextcloud 页面下,可以点击头像进入「应用」菜单,包含了内置的一些应用,多默认开启。下面介绍如何安装其他的应用:

可以在 https://apps.nextcloud.com/ 找到所有可用的 Nextcloud 软件,下载想要的软件,解压之后放在 html/custom_apps/ 中即可。然后进入 nextcloud 到软件管理页面将该软件开启。

例如可以试试 mindmap 思维导图软件,其 GitHub 地址在 https://github.com/ACTom/files_mindmap ,有中文的说明~

外网访问

上面介绍了如何安装 Nextcloud 及相关插件,之后发现默认只能在本地使用,而通过外网访问则需要进行相应配置;设置到端口转发后用浏览器访问,可以发现有一个错误提示,需要去修改 html/config/config.php 文件。

基于你的外网访问地址,例如 id.synology.me:8080,进行相应配置,上传即可。

不过我又遇到一个坑:我是用浏览器上传的,结果提示 nextcloud 没有读写 config.php 的权限。

  • 于是需要修改相应权限,首先需要知道 docker 文件夹所在位置,SSH 连接之后,我盲目找了半天,发现是在 volume1/docker 下(在 DSM 中显示为 /docker);
  • 发现通过浏览器上传的用户是你所登录的用户;而其他文件的权限和用户是 -rw-r--r-- 1 33 root;于是可以输入 chown 33:root config.php 修改所有者——因此,更为方面的应该是在 SSH 连接之后 sudo i 切换到 root 用户之后做修改。

完成之后再用外网登录 Nextcloud 可成功连接。