OpenMediaVault 配置 NextCloud(NAS私有云盘)

OpenMediaVault NextCloud NAS

OpenMediaVault 配置 NextCloud

一. 创建nextcloud需要的配置文件夹

nextcloud 共享文件夹

访问权限管理 -> 共享文件夹,文件夹就叫 nextcloud

OpenMediaVault NextCloud NAS

OMV在创建了共享文件夹后,会将共享文件夹映射到一个/sharedfolders的文件路径下,所以你有两种访问你刚才创建的共享文件夹的路径,一个是定位到你磁盘的路径,一个是公共的/sharedfolders下的路径 这两个路径下的操作都是有效的 你可以随便选一个
比如我刚才创建的nextcloud的共享文件夹,我要找到它,可以去两个路径下都能找到

OpenMediaVault NextCloud NAS
OpenMediaVault NextCloud NAS

nextcloud需要的子文件夹

  • db : nextcloud依赖的持久化数据的数据库
  • html: nextcloud的资源配置文件夹
  • data: nextcloud的个人同步文件(你网盘的数据以后就存在这里了)
  • onlyoffice: onlyoffice办公套件的日志和数据文件夹

OpenMediaVault NextCloud NAS

二. 数据库准备

默认情况下,NextCloud使用的是SQLite数据库进行数据存储,它仅适用于没有客户端同步的测试和轻量级单用户设置。当多用户、多设备、大数据量的时候,SQLite就不太合适了,NextCloud支持MySQL,MariaDB,Oracle 11g和PostgreSQL等多种数据库。并且推荐使用MySQL/MariaDB。所以为了一劳永逸,还是用MySQL代替吧,MariaDB是MySQL源代码的一个分支,这里使用MariaDB作为数据库支撑。

  • 安装mariadb
    这里使用docker安装mariadb,打开你的终端,复制以下命令创建mariadb容器。

    docker run -d --name db_nextcloud \
    -p 3307:3306 \
    -e PUID=1000 \
    -e PGID=100 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -e MYSQL_DATABASE=nextcloud \
    -e MYSQL_USER=nextcloud \
    -e MYSQL_PASSWORD=123456 \
    --restart=unless-stopped \
    -v /sharedfolders/nextcloud/db:/var/lib/mysql \
     mariadb

    命令参数释义(具体的参数释义可以查看 镜像地址 ):

    -p 3307:3306: 容器服务开放的端口,前者是宿主机的端口,后者是容器内服务的端口

    -e PUID、-e PGID: 运行容器的用户的权限集id

    -e MYSQL_ROOT_PASSWORD: 数据库root用户的密码

    -e MYSQL_DATABASE=nextcloud :创建一个名称为nextcloud的数据库

    -e MYSQL_USER:创建一个名称为nextcloud的用户

    -e MYSQL_PASSWORD:名称为nextcloud的用户的密码

    --restart=unless-stopped:当容器停止时候重启容器

    -v:数据卷绑定 前者是宿主机的地址,后者是容器机器的位置

    例如: -v /sharedfolders/nextcloud/db:/var/lib/mysql 把容器/var/lib/mysql的内容挂在到宿主机/sharedfolders/nextcloud/db的位置

以下是我运行的日志

qinkangdeid@omv:~$ docker run -d --name db_nextcloud \
>     -p 3307:3306 \
>     -e PUID=1000 \
>     -e PGID=100 \
>     -e MYSQL_ROOT_PASSWORD=123456 \
>     -e MYSQL_DATABASE=nextcloud \
>     -e MYSQL_USER=nextcloud \
>     -e MYSQL_PASSWORD=123456 \
>     --restart=unless-stopped \
>     -v /sharedfolders/nextcloud/db:/var/lib/mysql \
>      mariadb
Unable to find image 'mariadb:latest' locally
latest: Pulling from library/mariadb
38e2e6cd5626: Pull complete
705054bc3f5b: Pull complete
c7051e069564: Pull complete
7308e914506c: Pull complete
35e6984cb587: Pull complete
3a173c4702b4: Pull complete
efd003ff8e24: Pull complete
ba5d30791443: Pull complete
f3e943c9e01d: Pull complete
e5243a434e4f: Pull complete
910d8b012ee8: Pull complete
1fb787f18e3d: Pull complete
7a0cfbee5299: Pull complete
6fa7c8911619: Pull complete
Digest: sha256:eb6acf7f599f39c42582e11b1de3866c3934da84cc45190c0aac3e8d046e4053
Status: Downloaded newer image for mariadb:latest
`1be6b4e5f24539e8fc40ca7036a567104b067072044f878a3f4d71104ee8ee9a`
qinkangdeid@omv:~$

查看docker运行容器,看NAMES那一栏下面 有个db_nextcloud已经在运行,也能看到我们配置的端口

qinkangdeid@omv:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
1be6b4e5f245        mariadb             "docker-entrypoint.s…"   14 seconds ago      Up 8 seconds        0.0.0.0:3307->3306/tcp   db_nextcloud
5b9d858e08ab        opengg/aria2        "/init.sh"               24 minutes ago      Up 23 minutes       0.0.0.0:6800->6800/tcp   aria2

另一个方式使用telnet验证安装是否成功

OpenMediaVault NextCloud NAS

三. 安装NextCloud

NextCloud的安装也还简单,依然是使用docker,复制下面的命令到终端运行即可,记得-v的前部分是你宿主机的地址

docker run -d --name nextcloud \
       -p 8088:80 \
       --restart=unless-stopped \
       -v /sharedfolders/nextcloud/html:/var/www/html \
       -v /sharedfolders/nextcloud/data:/var/www/html/data \
       nextcloud

命令参数释义(具体的参数释义可以查看 镜像地址):

-p 8088:80: 容器服务开放的端口,前者是宿主机的端口,后者是容器内服务的端口

--restart=unless-stopped:当容器停止时候重启容器

-v:数据卷绑定 前者是宿主机的地址,后者是容器机器的位置

Nextcloud安装以及数据库之外的所有数据(文件上载等)都存储在容器地址/var/www/html中,要想持久化你的数据,不通过nextCloud也可以查看的话,应当映射到宿主机的某个位置上

Nextcloud的卷配置还是挺多的,例如配置(config)、数据(data)、主题(themes)等

nextcloud的一些卷地址:
/var/www/html 更新所需的主文件夹
/var/www/html/custom_apps你自己手动安装的应用位置
/var/www/html/config 本地配置文件位置
/var/www/html/data 你的网盘数据存放的位置
/var/www/html/themes/<YOU_CUSTOM_THEME> 主题文件位置
以上卷映射我这里只把data单独抽出来了,其他的配置全部默认放在/var/www/html映射的位置里

下面是我的运行日志

qinkangdeid@omv:~$ docker run -d --name nextcloud \
>        -p 8088:80 \
>        --restart=unless-stopped \
>        -v /sharedfolders/nextcloud/html:/var/www/html \
>        -v /sharedfolders/nextcloud/data:/var/www/html/data \
>        nextcloud
Unable to find image 'nextcloud:latest' locally
latest: Pulling from library/nextcloud
5e6ec7f28fb7: Pull complete
cf165947b5b7: Pull complete
7bd37682846d: Extracting [===========================================>       ]  58.49MB/67.44MB
7bd37682846d: Pull complete
99daf8e838e1: Pull complete
ae320713efba: Pull complete
ebcb99c48d8c: Pull complete
9867e71b4ab6: Pull complete
936eb418164a: Pull complete
5d9617dfb66b: Pull complete
8dd7afaae109: Pull complete
8f207844da7e: Pull complete
adb3ae5e4987: Pull complete
44d7d07029db: Pull complete
fb91064652b0: Pull complete
50923e16d552: Pull complete
a7cb9c70c5d2: Pull complete
728e578e40fa: Pull complete
4c3163d09df1: Pull complete
842c4700643d: Downloading [===========================================>       ]  35.98MB/41.57MB
842c4700643d: Pull complete
cc1964f4bb3e: Pull complete
125e01596295: Pull complete
Digest: sha256:a2f2bd57fcfd92b3b6c23b6f34f65d59c9b25e7cc883b1ac67fff01229325692
Status: Downloaded newer image for nextcloud:latest
b2b8cb3a61967ba08cb64490c6c8d2a173882560ae22fb0a6a45f895dea36912

例行惯例,查看容器运行:

qinkangdeid@omv:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b2b8cb3a6196        nextcloud           "/entrypoint.sh apac…"   42 seconds ago      Up 38 seconds       0.0.0.0:8088->80/tcp     nextcloud
cb81622828c1        mariadb             "docker-entrypoint.s…"   7 minutes ago       Up 5 minutes        0.0.0.0:3307->3306/tcp   db_nextcloud
5b9d858e08ab        opengg/aria2        "/init.sh"               About an hour ago   Up 5 minutes        0.0.0.0:6800->6800/tcp   aria2

访问NextCloud

我把nextcloud的服务端口映射到了宿主机的8088端口上,nextcloud启动后,浏览器输入http://你的IP:8088即可访问nextcloud了。

刚开始的界面如下:

  1. 第一项配置是配置日后访问nextcloud的一个管理员用户名和密码

  2. 第二项是数据目录,这个我们在运行容器的时候已经指定了位置,所以这里不用动

  3. 第三项就是配置外置数据库的连接信息了,将之前我们创建mariadb的信息填写进去,其实这里也可以在安装nextcloud的时候将之前的mariadb容器连接进去,这里就手动填写了。要注意数据库的服务端口如果宿主机和容器端口映射的不一样的话,这里要写宿主机的端口,例如现在我的mariadb容器的服务端口3306映射到了宿主机的3307端口上了,所以这里使用的端口为3307。

所有信息填写完成后,点击安装完成,这一步骤会比较的耗时间,nextcloud需要创建数据库表和一些初始化配置信息

OpenMediaVault NextCloud NAS

点击安装完成

OpenMediaVault NextCloud NAS

安装完成后,会自动显示以下界面

OpenMediaVault NextCloud NAS

里面会有一些默认的示例文件

OpenMediaVault NextCloud NAS

至此nextcloud已经安装完成,你可以继续探索NextCloud所拥有的功能。

四. NextCloud拓展安装方式

PS: 上面的安装方式需要在第一次启动访问nextcloud的时候配置数据库连接、数据卷地址,下面的方式可以减少这个步骤
docker可以使用 –link 连接另外一个容器的配置 nextcloud也支持通过环境变量自动配置可以在首次运行nextcloud容器时预先配置安装页面上询问的所有内容。要启用自动配置,
可以通过以下环境变量设置数据库连接。但是只能使用一种数据库类型!

Nextcloud目前所支持的环境变量自动配置如下:

  1. 配置数据库的环境变量

    • 针对选用SQLITE_DATABASE数据库的参数:

      • SQLITE_DATABASE: 使用SQLite数据库时候的数据库名称(我们不适用这个数据库所以不用带这个参数)
    • 针对选用MYSQL/MariaDB数据库的参数:

      • MYSQL_DATABASE: 要使用的数据库的名称 在这里和之前创建的mariadb容器 的数据库一直db_nextcloud
      • MYSQL_USER:数据库用户名
      • MYSQL_PASSWORD 数据库用户名密码
      • MYSQL_HOST : 配置的数据库容器的名称docker run -d –name db_nextcloud的–name参数指定的名称,也就是db_nextcloud
    • 针对选用PostgreSQL数据库的参数:

      • POSTGRES_DB :postgres数据库的名称
      • POSTGRES_USER :postgres数据库用户名
      • POSTGRES_PASSWORD postgres数据库用户的密码(对应上面用户名的密码)
      • POSTGRES_HOST:配置的数据库容器的名称
  2. 配置Nextcloud 管理员用户密码的环境变量

    • NEXTCLOUD_ADMIN_USER :管理员用户名
    • NEXTCLOUD_ADMIN_PASSWORD:管理员密码
  3. 配置Nextcloud 数据文件地址和表名前缀的环境变量

    • NEXTCLOUD_DATA_DIR : nextcloud数据存放的位置(默认路径是: /var/www/html/data) 这个不设我们还可以使用-v参数来映射
    • NEXTCLOUD_TABLE_PREFIX: nextcloud依赖的数据库表表名前缀 (默认是: "") 可选操作 一般也不会设啦

所以创建nextcloud容器的方式就稍稍有些变化了,可以根据上面的环境变量自由添加,环境变量使用-e追加,我这里只配置数据库的环境变量,如下命令所示:

docker run -d --name nextcloud \
       --link db_nextcloud:db_nextcloud \
       -p 8088:80 \
       -p 4433:443 \
       -e PUID=1000 \
       -e PGID=100 \
       -v /sharedfolders/nextcloud/html:/var/www/html \
       -v /sharedfolders/nextcloud/data:/var/www/html/data \
       -e MYSQL_DATABASE=nextcloud \
       -e MYSQL_USER=nextcloud \
       -e MYSQL_PASSWORD=123456 \
       -e MYSQL_HOST=db_nextcloud \
       --restart=unless-stopped \
       nextcloud

我的执行日志:

root@omv:/sharedfolders/nextcloud# docker run -d --name nextcloud \
>        --link db_nextcloud:db_nextcloud \
>        -p 8088:80 \
>        -e PUID=1000 \
>        -e PGID=100 \
>        -v /sharedfolders/nextcloud/html:/var/www/html \
>        -v /sharedfolders/nextcloud/data:/var/www/html/data \
>        -e MYSQL_DATABASE=nextcloud \
>        -e MYSQL_USER=nextcloud \
>        -e MYSQL_PASSWORD=123456 \
>        -e MYSQL_HOST=db_nextcloud \
>        --restart=unless-stopped \
>        nextcloud
Unable to find image 'nextcloud:latest' locally
latest: Pulling from library/nextcloud
27833a3ba0a5: Already exists
2d79f6773a3c: Already exists
f5dd9a448b82: Already exists
95719e57e42b: Already exists
cc75e951030f: Already exists
78873f480bce: Already exists
1b14116a29a2: Already exists
887fc426d9b4: Pull complete
e8a2a7e68e47: Pull complete
44116bd4b499: Pull complete
5a7ed133cf7c: Pull complete
a0cc2e7ce3b9: Pull complete
3ea943f2a6e6: Pull complete
dc6fe404fa96: Pull complete
2970a87ebdd8: Pull complete
632923a6d419: Pull complete
78f88b7ec6fe: Pull complete
a62deb12226c: Pull complete
30d2885ecc94: Pull complete
5c72c2211abe: Pull complete
Digest: sha256:e4c59de7d564a7cec680d32ebed64bb7a7c53859d1c9dd6ef21912183719b203
Status: Downloaded newer image for nextcloud:latest
8aa333d93a38589c758efd44db429b28e65301205516d940c5e772212ce09b77
root@omv:/sharedfolders/nextcloud#

之后nextcloud启动,第一次访问nextcloud就出现如下画面:

OpenMediaVault NextCloud NAS

数据库和数据卷的配置没了,只需要创建一个管理员账户即可

OpenMediaVault NextCloud NAS

五. 安装 onlyoffice

onlyoffice 是一个在线办公套件,包括用于文本,电子表格和演示文稿的查看器和编辑器,与 Office Open XML 格式:.docx,.xlsx,.pptx 完全兼容,并支持实时协作编辑。onlyoffice 官网 https://www.onlyoffice.com/

ONLYOFFICE提供了包括文档管理、项目管理、CRM、日历、邮件和企业网络等全套效率工具套件
您无需再为执行不同的任务而在多个应用软件之间来回切换。
集中统一的多功能系统将帮助您组织管理工作中的每一步,从而提高工作效率和取得成功。

如果您希望获得文档的在线预览编辑功能,那么推荐您安装onlyoffice在线办公套件。

NextCloud的应用商店里已经集成了onlyoffice,我们只需安装并配置其连接到指定的 onlyoffice document server 即可,现在我们需要做的就是 安装 onlyoffice document server

我们还是通过 docker 方式安装 onlyoffice document server:

docker run -i -t -d --name onlyoffice \
    -p 8000:80 \
    -e PUID=1000 \
    -e PGID=100 \
    --restart=unless-stopped \
    -v /sharedfolders/nextcloud/onlyoffice/logs:/var/log/onlyoffice \
    -v /sharedfolders/nextcloud/onlyoffice/data:/var/www/onlyoffice/Data \
    onlyoffice/documentserver

六. 更新 NextCloud

  1. 执行如下命令,拉取最新稳定版镜像

    docker pull nextcloud:stable
  2. 查看 nextcloud 的容器名称,在最后一列 NAMES,后面将会用到,如果是按照上面教程来的,那么将会是 nextcloud,后面的步骤就直接使用 nextcloud

    docker ps | grep -i nextcloud
  3. 停止 nextcloud

    docker stop nextcloud
  4. 移除 nextcloud 容器

    docker rm nextcloud
  5. 运行 nextcloud

    docker run -d <options> nextcloud

    请注意,您必须使用最初启动 Nextcloud 时使用的选项运行相同的命令。这包括卷,端口映射。
    那么按照我们上面的安装步骤将会是如下命令:

    docker run -d --name nextcloud \
       --link db_nextcloud:db_nextcloud \
       -p 8088:80 \
       -p 4433:443 \
       -e PUID=1000 \
       -e PGID=100 \
       -v /sharedfolders/nextcloud/html:/var/www/html \
       -v /sharedfolders/nextcloud/data:/var/www/html/data \
       -e MYSQL_DATABASE=nextcloud \
       -e MYSQL_USER=nextcloud \
       -e MYSQL_PASSWORD=123456 \
       -e MYSQL_HOST=db_nextcloud \
       --restart=unless-stopped \
       nextcloud
5 1 vote
喜欢就给个好评吧!
赞(3) 打赏
未经允许不得转载:爱易默博客 » OpenMediaVault 配置 NextCloud(NAS私有云盘)
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments
免责声明:本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理! Disclaimer: Most of the download resources on this site are collected on the Internet, and are only used for learning and communication. The copyright belongs to the original author. Please consciously delete within 24 hours after downloading. If you use it for commercial purposes, please purchase the original version. If the content posted on this site violates your rights, please contact us to delete it, and we will deal with it in time!

联系我们 Contact us

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

0
Would love your thoughts, please comment.x
()
x