changecan 2017-11-02
之前看到一个名为 Nextcloud 的项目,没有注意,只是感觉和 Owncloud 的界面非常相似,大概是有千丝万缕的关系。
然后最近看新闻才知道 Owncloud 母公司破产了,原团队已经出走,新的项目名为 Nextcloud,所以本文将介绍 Nextcloud 的安装配置。
需要说明一下的是,Owncloud并没有停止开发,而是由原来的德国团队接手了,所以你可以继续使用 Owncloud。
一贯的风格首先安装 Docker:
curl -sSL https://get.docker.com/ | sh
然后安装 Compose:
curl -L https://github.com/docker/compose/releases/download/1.10.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
这样我们的基本工具就搞定了。
接下来我们会拉取几个镜像,默认的镜像仓库在海外,速度不理想,所以我们使用国内的镜像源,这里以中科大的为例:
首先编辑文件 /etc/docker/daemon.json,在该配置文件中加入下面内容(没有该文件的话建一个):
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
保存之后最好重启一下 Docker 服务,这样就可以使用国内镜像源拉取镜像了。
首先为Nextcloud建立一个独立的容器网络:
docker network create nextcloud
接下来新建一个文件夹,名字随便,这里演示为cloud,然后在文件夹里面新建一个文件,文件名为Caddyfile,文件内容如下:
example.com { proxy / 233.233.233.233:2333 { proxy_header Host {host} proxy_header X-Real-IP {remote} proxy_header X-Forwarded-Proto {scheme} } log /var/log/caddy.log gzip }
因为使用Caddy部署应用不需要花费诸位太多时间去配置Web服务器环境,所以我这里使用Caddy,实际上如果你喜欢Nginx,自己修改下面的配置就好了。Caddy适合不想写配置或者懒得动手申请SSL的读者。
接下来再新建一个文件,名为docker-compose.yml,文件的内容如下:
version: '2' services: db: container_name: cloud_db image: mysql volumes: - "./data/cloud/mysql:/var/lib/mysql" restart: always environment: MYSQL_ROOT_PASSWORD: 这里填写你的密码 MYSQL_DATABASE: nextcloud app: container_name: cloud_app depends_on: - db image: nextcloud volumes: - ./data/cloud/config:/var/www/html/config - ./data/cloud/data:/var/www/html/data - ./data/cloud/apps:/var/www/html/apps links: - db ports: - "2333:80" restart: always cron: container_name: cloud_cron image: nextcloud links: - db volumes_from: - app user: www-data entrypoint: | bash -c 'bash -s <<EOF trap "break;exit" SIGHUP SIGINT SIGTERM while /bin/true; do /usr/local/bin/php /var/www/html/cron.php sleep 900 done EOF' restart: always web: container_name: cloud_web image: abiosoft/caddy volumes: - ./Caddyfile:/etc/Caddyfile - ~/.caddy:/root/.caddy ports: - 80:80 - 443:443 restart: always networks: default: external: name: nextcloud
保存文件之后,一句话启动它~~
docker-compose up -d
上面文件内容只有那个密码是需要你改的,其他不变即可。
稍微去喝杯茶,一会回来你就可以看到Nextcloud部署成功了。
安装界面
配置数据库自己根据需要修改,打算一个人用,就用Sqlite,很多人用就用MySQL之类的吧。
配置数据库
你的用户名就是 root,数据库地址是 db,不是 localhost。
安装完成还要做两件事,当然不是必须的,但是为了安全起见,最好再折腾一下。
两步验证可以防暴力入侵什么的,建议使用。首先在后台启用两步验证,然后手机安装下面的应用:
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
登录时需要手机上的离线验证码验证,安全有了多一层保障。
首先客户端几乎是全平台的,地址在下面:
https://nextcloud.com/install/#install-clients
因为开启了二步验证,在客户端直接使用帐号密码肯定无法登录了,所以需要在后台设置应用密码,地址格式:
http://你的地址/index.php/settings/personal#apppasswords
在设置中设置应用一次性密码,使用随机密码登录客户端即可。
设置客户端一次性密码