【技術乾貨】下一代私有云盤 NextCloud 的安裝配置

天府雲創發表於2017-06-22
之前看到一個名為 Nextcloud 的專案,沒有注意,只是感覺和 Owncloud 的介面非常相似,大概是有千絲萬縷的關係。
然後最近看新聞才知道 Owncloud 母公司破產了,原團隊已經出走,新的專案名為 Nextcloud,所以本文將介紹 Nextcloud 的安裝配置。

需要說明一下的是,Owncloud並沒有停止開發,而是由原來的德國團隊接手了,所以你可以繼續使用 Owncloud。之前的關於Owncloud的介紹:http://www.jianshu.com/p/792a5c1fa44b

Nextcloud官網介紹: https://nextcloud.com/

1. 安裝 Docker 與 Compose

一貫的風格首先安裝 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

這樣我們的基本工具就搞定了。

1.1. 配置 Docker 映象源

接下來我們會拉取幾個映象,預設的映象倉庫在海外,速度不理想,所以我們使用國內的映象源,這裡以中科大的為例:
首先編輯檔案 /etc/docker/daemon.json,在該配置檔案中加入下面內容(沒有該檔案的話建一個):

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

儲存之後最好重啟一下 Docker 服務,這樣就可以使用國內映象源拉取映象了。

1.2. 部署 NextCloud

首先為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。

2. 配置 NextCloud

安裝完成還要做兩件事,當然不是必須的,但是為了安全起見,最好再折騰一下。

2.1. 配置兩步驗證

兩步驗證可以防暴力入侵什麼的,建議使用。首先在後臺啟用兩步驗證,然後手機安裝下面的應用:
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
登入時需要手機上的離線驗證碼驗證,安全有了多一層保障。

2.2. 客戶端安裝與使用

首先客戶端幾乎是全平臺的,地址在下面:
https://nextcloud.com/install/#install-clients
因為開啟了二步驗證,在客戶端直接使用帳號密碼肯定無法登入了,所以需要在後臺設定應用密碼,地址格式:
http://你的地址/index.php/settings/personal#apppasswords
在設定中設定應用一次性密碼,使用隨機密碼登入客戶端即可。


設定客戶端一次性密碼

附上阿里雲主機搭建私有云盤搭建全過程:Nextcloud網盤搭建-http://www.miui.com/thread-7110737-1-1.html

相關文章