留言板  |    文章总数=119  |    RSS订阅
过马路不要带耳机,万一要是被车撞上,耳机不就坏了么毒鸡汤

在OpenMediaVault(OMV)上利用图形化Docker工具Portainer部署NextCloud

2021-04-07     loonlog     1798     3

本文目录

自从有了网盘,并且容量都还挺大,重要的和不重要的东西都往里面塞,说实在的现在有点多;诡异的是,曾经保存在某度网盘里的视频文件大量消失,不知各位是否遇到过!

总之现在有能力折腾NAS,还是建立自己的私人网盘比较好,毕竟,在手里的才是自己的,目前可选的方案也很多,我还是喜欢开源的东西,于是就选择了NextCloud,好不好用,试试便知!

这里就把我在OpenMediaVault(OMV)上利用图形化Docker工具Portainer部署NextCloud的过程分享一下,方便大家参考,也方便我日后再次部署!

由于NextCloud需要用到数据库,因此需要先创建数据库容器,可参考《在OpenMediaVault5(OMV5)上利用图形化Docker工具Portainer部署MariaDB和Adminer》这篇文章先部署MariaDB容器

一、打开Portainer可视化Docker管理工具

1、我的NAS是omv系统,进入OMV管理界面,找到左侧菜单的“系统”下面的“OMV-Extras”,在右侧导航栏找到“Docker”,然后点击“打开web页”进入到Portainer可视化Docker管理工具;

2、登录protainer,点击local进入;

二、创建stack

1、点击左侧菜单“Stacks”,再点击上方蓝色的“+Add stack”;开始创建stack;

2、首先在Name框里面输入一个Stack的名称,这个stack是配置NextCloud容器的,就输入nextcloud作为stack名称;然后在下方的编辑框中输入Stack的配置文件,或者说是Docker Compose的配置文件,这个配置文件是yml格式,包含了容器所需要的各种配置信息。

3、配置文件如下:

---
version: "2"
services:
  nextcloud:
    image: linuxserver/nextcloud
    container_name: nextcloud
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Asia/Shanghai
    volumes: 
      - /srv/dev-disk-by-id-ata-JMicron_H_W_RAID5_BPPWFWRGNRNH48JWOGVZ-part1/AppData/NextCloud/config:/config
      - /srv/dev-disk-by-id-ata-JMicron_H_W_RAID5_BPPWFWRGNRNH48JWOGVZ-part1/media/nextcloud/data:/data  
    ports:
      - 555:443
    networks:
      - xxnet
    restart: unless-stopped
networks:
  xxnet:
    external:
      name: xxnet


配置也比较简单,就配置信息做以下简单的说明,比较啰嗦,主要是可以让我加深理解;


 image: linuxserver/nextcloud

这里使用的是LinuxServer维护的nextcloud,镜像地址https://hub.docker.com/r/linuxserver/nextcloud,镜像说明里面有Docker-compose的配置信息;


container_name: nextcloud

干脆利落,容器名称命名为nextcloud;


    environment:
      - PUID=1000
      - PGID=100
      - TZ=Asia/Shanghai

这里是环境变量的配置,当我们给容器挂载了NAS上创建的共享文件夹作为存储使用的时候,默认情况下容器会使用root,也就是以超级管理员的身份去对这个共享文件夹进行读写操作;对于写入到共享文件夹中的文件,在NAS上以普通用户的身份是没有权限去做修改的;如果使用NAS上普通用户的身份去读写共享文件夹上的数据,就需要通过PUID来指定一个普通用户的ID,用PGID来指定一个用户组的ID,设置了这两个环境变量以后,容器就会使用我们指定的用户身份对共享文件夹进行读写操作,这样一来,我们就可以使用NAS上有权限的普通用户对共享文件夹进行读写操作了;但需要注意的是,只有LinuxServer维护的镜像提供了PUID和PGID的设置功能,其他镜像需要参照镜像的说明文件去了解是否有这项功能。PUID和PGID的获取,可以参考部署jellyfin的的文章中介绍的方法进行,这里不再重复!

 - TZ=Asia/Shanghai

这里是设置时区,中国地区,就设置上海就可以了。


volumes: 
  - /srv/dev-disk-by-id-ata-JMicron_H_W_RAID5_BPPWFWRGNRNH48JWOGVZ-part1/AppData/NextCloud/config:/config
  - /srv/dev-disk-by-id-ata-JMicron_H_W_RAID5_BPPWFWRGNRNH48JWOGVZ-part1/media/nextcloud/data:/data

这里是配置要挂载给Nextcloud容器使用的存储,为了便于直接管理nextcloud的存储,我在NAS上创建一个共享文件夹,专门来给Nextcloud容器来使用:

/srv/dev-disk-by-id-ata-JMicron_H_W_RAID5_BPPWFWRGNRNH48JWOGVZ-part1/AppData/NextCloud/config

/srv/dev-disk-by-id-ata-JMicron_H_W_RAID5_BPPWFWRGNRNH48JWOGVZ-part1/media/nextcloud/data

这两个路径,就是我在NAS上创建的两个共享文件夹AppData和media的绝对路径,其中AppData用于存放容器的配置信息,比如NextCloud容器的配置信息就给他放到AppData/NextCloud/config里面去,MariaDB容器的配置信息就放入AppData/MariaDB/config里面去,另外,容器的数据文件就让如media里面去,比如NextCloud的网盘内容都放入media/nextcloud/data里面,这里的共享文件只是我自己的规划,大家可以自由的去规划,关于路径信息如何获取,参考部署jellyfin的的文章中介绍的方法进行,这里不再重复!


ports:
  - 555:443

暴露443端口,https默认的端口,特殊端口,我们最好不要使用,因为我们还要装其他容器,避免冲突,所以我们不适用默认端口,自己定义一个555吧


networks:
  - xxnet

把NextCloud容器页加入到xxnet这个网络,便于容器间进行数据交换。


restart: unless-stopped

重启策略,当应用停止的时候就要重启容器;


networks:
  xxnet:
    external:
      name: xxnet

这里用来设置Stack可以连接的网络,网络名称要改为容器加入的那个网络


4、配置完以上信息,点击下方的蓝色按钮“Deploy the stack”来安装nextcloud,稍等片刻(看情况)就会完成安装;

5、安装完成之后,就可以 在浏览器中输入https://omv:555就可以访问nextcloud了,首次打开页面就是创建账号,账号和密码自己设置即可,紧接着下面就是配置数据库。


如果还没有数据库,就请参考《在OpenMediaVault5(OMV5)上利用图形化Docker工具Portainer部署MariaDB和Adminer》这篇文章先部署MariaDB容器,再接着下面的看。


三、为NextCloud创建数据库和数据库的用户

1、 打开adminer管理界面,输入root和密码进行登录,

2、登录进去之后点击“创建数据库”

3、输入数据库名称,命名为nextcloud;校对下拉框选择“utf8mb4_general_ci”,这个可以让nextcloud可以存储表情数据,之后点击保存,这样就给nextcloud创建了数据库;

4、 处于安全考虑,我们不打算使用root用户来管理数据库,我们需要另外设置一个用户,用来专门的管理nextcloud的数据库,点击页面中的”权限”进入权限配置页;

  1. 点击上方的“创建用户“进入用户权限配置页;

  2. 输入一个用户名,我的用户名nextcloud;

  3. 再输入一个密码;之后在权限框勾选”all privileges“,这样用户nextcloud就对nextcloud数据库有完全的管理权限;

  4. 滚动页面到最下方,点击”保存“。

这样数据库的操作就完成了,刷新页面,就可以再用户列表里面看到我们刚刚创建的nextcloud用户了;

四、回到NextCloud初始页面,进行数据库的设置

1、 再次进入nextcloud的初始页面,用户名和密码设置好之后,在数据库的输入框中:

  1. “数据库用户”框填写刚才创建的用户nextcloud,

  2. “数据库密码”框填写刚刚为用户nextcloud创建的密码,

  3. “数据库名”nextcloud,

  4. “localhost”就是前面我们创建的mariadb数据库,由于nextcloud和mariadb在同一个网络中,所以可以通过容器名称就可以相互访问,那这里的数据口主机名就直接填写mariadb。

2、 接着往下“是否安装推荐的应用“,可以根据自己需求进行选择即可,最后选择”安装完成“按钮,他会在后台进行一系列的安装过程,之后就会弹出登录框,恭喜你,已经完成了NextCloud的部署了。

五、配置域名访问

1、 如果我们在局域网使用ip地址访问,或者在外面使用域名访问,它会提示域名不受信任域名的提示,

2、我们还需要更改一下nextcloud的web服务文件,这个文件位于config目录中;因为我是给容器挂载了NAS中相关共享文件夹,位于AppData/nextcloud/config,继续进入www目录>继续进入nextcloud目录>继续进入config目录,在这个目录中有两个文件,我们需要编辑config.php文件,

  1. 在文件里面找到“trusted_domains”,

  2. 在里面添加一行1 => ‘192.168.0.153’,这样在内网就可以用ip地址192.168.0.153:555访问nextcloud,

  3. 再添加一行2 => ‘xxnas.com:555’,也可以使用域名访问了.

3、刷新刚才的页面,就可以正常访问了

4、 在手机应用商店可以找到nextcloud,下载安装即可在手机上使用。


顺便欣赏以下我DIY的NAS吧:http://loonlog.com/2020/6/6/diy-nas-xxnas/


OMV , Docker , Portainer , OpenMediaVault , Nextcloud , MariaDB , NAS

在OpenMediaVault(OMV)上利用图形化Docker工具Portainer部署NextCloud
http://loonlog.com/2021/4/7/openmediavault-omv-docker-portainer-nextcloud/
    觉得有用?请点击页面顶部广告支持我!

您可能感兴趣的文章

发表评论(关于评论)

评论列表,共 3 条评论

  • 回复

    2楼

    博主好,已经完成了前面四步,现在第五步。

    ip:555,打开以后,显示400 Bad Request / The plain HTTP request was sent to HTTPS port.

    百度了很多教程,都是修改nginx.conf,但是按照教程是没有安装过nginx的。

    但是系统确实好像自带了nginx,我打开配置文件以后,里面没有百度里面说那么多参数,只是很不简单的一些配置命令

    现在彻底卡在此了。。。

    菜鸟之志 帅大毛 ,

    回复

    你看看site-confs这个文件夹里面的配置,我的装好自动能用,其他也不是很懂

  • 回复

    1楼

    文章不错交个朋友