docker搭建nextcloud私有云盘

 知识背景

nextcloud是ownCloud原先的开发者弗兰克·卡利切离开以后创建了ownCloud的分支——Nextcloud。

NextCloud 是一款开源网络硬盘系统。任何人都可以自由的获取 NextCloud 程序,在家庭或公司构建私有且免费的网络硬盘。它是完全由你用户控制的私有、安全且功能完整的文件同步与共享解决方案。

下边开始介绍docker-compose安装nextcloud服务

安装docker和docker-compose

docker安装链接:https://docs.docker.com/install/linux/docker-ce/centos/

docker-compose安装链接:https://docs.docker.com/compose/install/

编写docker-compose文件

version: '2'  
services:  
  db:  
    container_name: cloud_db  
    image: mysql:5.7
    volumes:  
      - /var/data/cloud/mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime 
    environment:  
      MYSQL_ROOT_PASSWORD: nextcloud
      MYSQL_DATABASE: nextcloud  
  nextcloud:  
    container_name: cloud_web  
    depends_on:  
      - db  
    image: nextcloud  
    volumes:  
      - /var/data/cloud/config:/var/www/html/config  
      - /var/data/cloud/data:/var/www/html/data  
      - /var/data/cloud/apps:/var/www/html/apps  
    ports:  
      - "8090:80"  
  onlyoffice:
    container_name: cloud_office
    image: onlyoffice/documentserver
    ports:
      - "9100:80"
networks:  
  default:  
    external:  
      name: nextcloud 

创建存放文件的路径,我这里是/var/data/cloud

执行前创建nextcloud网卡

docker network create nextcloud

启动容器服务,启动过程比较慢需要下载镜像,可以再执行前吧需要的镜像下载下来,过程不需要再赘述。

docker-compose up -d

服务启动以后,开始初始化nextcloud服务

浏览器访问:http://ip:端口  (我这里是http://192.168.0.150:8090)

登录以后是这个界面,选择存储&数据库,我们这里使用的是mysqll数据库

按照选项内容填写完整

用户名:admin

密码:nextcloud

数据目录选择默认:/var/www/html/data

数据库密码:nextcloud

数据库实例:nextcloud

端口:db(因为我们docker-compose文件里写的数据库服务是db)

填写完整以后开始进行初始化,需要等待几分钟。

初始化完成以后就可以使用创建的账号登录,到此服务基本安装完成。

 

安装onlyoffice应用,可以在线操作word等文件

下载onlyoffice应用:https://apps.nextcloud.com/apps/onlyoffice/releases?platform=18#18

我这里安装的是nextcloud18,选择的ONLYOFFICE 4.1.4下载。

把下载好的文件放到/var/data/cloud/apps 下边

解压缩:tar -zxvf  /var/data/cloud/apps/onlyoffice.tar.gz

进入nextcloud容器修改onlyoffice的文件用户和所属组

docker-compose exec nextcloud bash
切换到apps文件下
root@766c5b93dbb4:/var/www/html# cd apps/
查看下边文件所属用户和组
root@766c5b93dbb4:/var/www/html/apps# ls -l
total 0
drwxr-xr-x 11 www-data root 122 Mar  1 18:44 accessibility
drwxr-xr-x 10 www-data root 181 Mar  2 10:33 activity
drwxr-xr-x  5 www-data root  48 Mar  1 18:44 admin_audit
drwxr-xr-x  5 www-data root  63 Mar  2 10:33 cloud_federation_api
drwxr-xr-x  8 www-data root  97 Mar  2 10:33 comments
drwxr-xr-x 10 www-data root 109 Mar  1 18:44 dav
drwxr-xr-x 10 www-data root 109 Mar  1 18:44 encryption
drwxr-xr-x 10 www-data root 109 Mar  1 18:44 federatedfilesharing
drwxr-xr-x 10 www-data root 109 Mar  1 18:44 federation
drwxr-xr-x 11 www-data root 181 Mar  2 10:33 files
drwxr-xr-x 11 www-data root 137 Mar  2 10:33 files_external
drwxr-xr-x  9 www-data root  95 Mar  1 18:44 files_pdfviewer
drwxr-xr-x  7 www-data root 123 Mar  2 10:33 files_rightclick
drwxr-xr-x 10 www-data root 143 Mar  2 10:33 files_sharing
drwxr-xr-x  9 www-data root 114 Mar  2 10:33 files_trashbin
drwxr-xr-x  8 www-data root  81 Mar  1 18:45 files_versions
drwxr-xr-x  6 www-data root  75 Mar  2 10:33 files_videoplayer
drwxr-xr-x  9 www-data root 112 Mar  2 10:33 firstrunwizard
drwxr-xr-x 12 www-data root 207 Mar  2 10:33 logreader
drwxr-xr-x  5 www-data root  48 Mar  1 18:45 lookup_server_connector
drwxr-xr-x  8 www-data root  97 Mar  2 10:33 nextcloud_announcements
drwxr-xr-x  9 www-data root 143 Mar  2 10:33 notifications
drwxr-xr-x  8 www-data root  87 Mar  1 18:45 oauth2
drwxrwxr-x 13 root root 230 Jan 28 10:27 onlyoffice
drwxr-xr-x 10 www-data root 121 Mar  2 10:33 password_policy
drwxr-xr-x 10 www-data root 237 Mar  2 10:33 photos
drwxr-xr-x  9 www-data root 263 Mar  2 10:33 privacy
drwxr-xr-x  6 www-data root  59 Mar  1 18:45 provisioning_api
drwxr-xr-x  6 www-data root 111 Mar  2 10:33 recommendations
drwxr-xr-x  9 www-data root 146 Mar  2 10:33 serverinfo
drwxr-xr-x 10 www-data root 109 Mar  1 18:45 settings
drwxr-xr-x 10 www-data root 109 Mar  1 18:45 sharebymail
drwxr-xr-x 10 www-data root 110 Mar  1 18:45 support
drwxr-xr-x  9 www-data root 133 Mar  2 10:33 survey_client
drwxr-xr-x 10 www-data root 125 Mar  2 10:33 systemtags
drwxr-xr-x  9 www-data root 258 Mar  2 10:33 text
drwxr-xr-x  9 www-data root  93 Mar  1 18:45 theming
drwxr-xr-x  9 www-data root  98 Mar  1 18:45 twofactor_backupcodes
drwxr-xr-x  9 www-data root  98 Mar  1 18:45 updatenotification
drwxr-xr-x 12 www-data root 135 Mar  1 18:45 user_ldap
drwxr-xr-x  7 www-data root 165 Mar  2 10:33 viewer
drwxr-xr-x  9 www-data root  98 Mar  1 18:45 workflowengine
按照原有的文件所属用户和组修改
chown -R www-data:root onlyoffice/

然后访问服务,点击设置会在设置组里出现一个onlyoffice的节点,输入我们已经创建好的onlyoffice文件服务地址,保存即可

然后我们就可以在线操作word等文件了

 

nginx反向代理nextcloud

我这边是单独启动了一个nginx的容器

配置文件:nextcloud.conf
 

server {
        listen 443 ssl;  # 1.1版本后这样写
        server_name cloud.miumiu.com; #填写绑定证书的域名
        ssl_certificate /etc/nginx/ssl/www.miumiu.com.crt;  # 指定证书的位置,绝对路径
        ssl_certificate_key /etc/nginx/ssl/www.miumiu.com.key;  # 绝对路径,同上
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
        proxy_redirect off;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass  http://192.168.0.150:8090;
        }
    }

容器启动以后直接访问:https://cloud.miumiu.com

浏览器显示不能访问,这是需要修改一下nextcloud的配置文件:config.php

添加以下参数:

  'overwriteprotocol' => 'https',
  'trusted_domains' =>
  array (
   0 => '192.168.0.150:8090',
   1 => 'cloud.miumiu.com', #手动添加域名
  ),

重启一下nextcloud服务以后就可以正常访问了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值