Nginx配合docker安装nextcloud(超简易)|抛弃owncloud

Nextcloud是owncloud母公司破产前核心人员离职出来创建的,免费版里包含了很多owncloud付费版本的功能,因为核心都是一样的,所以我们当然可以选择功能更多的nextcloud版本了。

我安装的nextcloud网盘:https://nextpan.net

安装docker

在使用本教程前,建议您对docker进行一些基本的了解,知道一些简单的命令,比如:

docker images
docker ps –a
docker start
docker stop
docker rm
docker rmi

不了解docker的可以谷歌一下这些命令快速了解,也可以看官方的docker教程。

docker官方安装教程:https://store.docker.com/search?type=edition&offering=community

我贴一下Ubuntu系统的安装方式,依次输入下列命令:

sudo apt–get –y install
  apt–transport–https
  ca–certificates
  curl
curl –fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
sudo add–apt–repository
       “deb [arch=amd64] https://download.docker.com/linux/ubuntu
       $(lsb_release -cs)
       stable”
sudo apt–get update
sudo apt–get –y install docker–ce

安装docker-compose

docker-compose是定义和运用docker的一种工具,使用下列命令安装:

apt install docker–compose

安装完成后,新建docker-compose.yml文件:

vim docker–compose.yml

然后把下列内容复制粘贴,注意这里我选用的是wonderfall的版本,他的版本star数最多,比官方的新,另外注意,修改pwd为自己的密码:

nextcloud:
  image: wonderfall/nextcloud
  links:
    – nextcloud–db:nextcloud–db  
  environment:
    – UID=1000
    – GID=1000
    – UPLOAD_MAX_SIZE=10G
    – APC_SHM_SIZE=128M
    – OPCACHE_MEM_SIZE=128
    – CRON_PERIOD=15m
    – TZ=Aisa/Shanghai
    – ADMIN_USER=admin            
    – ADMIN_PASSWORD=pwd  
    – DOMAIN=localhost
    – DB_TYPE=mysql
    – DB_NAME=nextcloud
    – DB_USER=nextcloud
    – DB_PASSWORD=pwd
    – DB_HOST=nextcloud–db
  volumes:
    – /docker/nextcloud/data:/data
    – /docker/nextcloud/config:/config
    – /docker/nextcloud/apps:/apps2
    – /docker/nextcloud/themes:/nextcloud/themes
  ports:
    – 127.0.0.1:8888:8888/tcp
nextcloud–db:
  image: mariadb:10
  volumes:
    – /docker/nextcloud/db:/var/lib/mysql
  environment:
    – MYSQL_ROOT_PASSWORD=pwd
    – MYSQL_DATABASE=nextcloud
    – MYSQL_USER=nextcloud
    – MYSQL_PASSWORD=pwd

然后在docker—compose.yml所在文件夹里,输入以下命令:

docker–compose up –d

这时候docker版本的nextcloud就已经安装好了,端口是127.0.0.1:8888,我们接下来利用nginx反代这个端口,并且加上https,从而能让外网安全的访问。

安装nginx

apt install nginx

安装letsencrypt

apt install letsencrypt

生成证书

注意替换域名

letsencrypt certonly —webroot –w /var/www/html —domain “abc.example.com”

配置nginx

可以修改默认的,也可以新建一个配置文件,我这里直接修改默认的

vim /etc/nginx/sites–available/default

删掉里面的内容,复制粘贴进这个,注意你的letsencrypt生成的证书路径对不对,一般只需要改一下domain就行了:

server {
  listen 80;
  server_name abc.example.com;
  return 301 https://$host$request_uri;
}
server {

    server_name nextpan.net www.nextpan.net;
    listen 443 ssl http2;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/abc.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/abc.example.com/privkey.pem;
    include /etc/nginx/conf/ssl_params.conf;
    client_max_body_size 10G;
    location / {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $http_host;
    }
    location = /.htaccess {
        return 404;
    }
}

重启nginx:

service nginx restart

然后输入自己的域名就可以直接登陆了。

如果想更新,只需要删掉nextcloud和mariadb的container,重新docker-compose up -d就可以了。

标签:DockerNginx 发布于:2019-11-08 05:20:46