之前看到一個名為 Nextcloud 的項目,沒有注意,只是感覺和 Owncloud 的界面非常相似,大概是有千絲萬縷的關(guān)系。
然后最近看新聞才知道 Owncloud 母公司破產(chǎn)了,原團隊已經(jīng)出走,新的項目名為 Nextcloud,所以本文將介紹 Nextcloud 的安裝配置。
需要說明一下的是,Owncloud并沒有停止開發(fā),而是由原來的德國團隊接手了,所以你可以繼續(xù)使用 Owncloud。之前的關(guān)于Owncloud的介紹:http://www.itdecent.cn/p/792a5c1fa44b
1. 安裝 Docker 與 Compose
一貫的風(fēng)格首先安裝 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 鏡像源
接下來我們會拉取幾個鏡像,默認(rèn)的鏡像倉庫在海外,速度不理想,所以我們使用國內(nèi)的鏡像源,這里以中科大的為例:
首先編輯文件 /etc/docker/daemon.json,在該配置文件中加入下面內(nèi)容(沒有該文件的話建一個):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
保存之后最好重啟一下 Docker 服務(wù),這樣就可以使用國內(nèi)鏡像源拉取鏡像了。
1.2. 部署 NextCloud
首先為Nextcloud建立一個獨立的容器網(wǎng)絡(luò):
docker network create nextcloud
接下來新建一個文件夾,名字隨便,這里演示為cloud,然后在文件夾里面新建一個文件,文件名為Caddyfile,文件內(nèi)容如下:
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部署應(yīng)用不需要花費諸位太多時間去配置Web服務(wù)器環(huán)境,所以我這里使用Caddy,實際上如果你喜歡Nginx,自己修改下面的配置就好了。Caddy適合不想寫配置或者懶得動手申請SSL的讀者。
接下來再新建一個文件,名為docker-compose.yml,文件的內(nèi)容如下:
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
上面文件內(nèi)容只有那個密碼是需要你改的,其他不變即可。
稍微去喝杯茶,一會回來你就可以看到Nextcloud部署成功了。

配置數(shù)據(jù)庫自己根據(jù)需要修改,打算一個人用,就用Sqlite,很多人用就用MySQL之類的吧。

你的用戶名就是 root,數(shù)據(jù)庫地址是 db,不是 localhost。
2. 配置 NextCloud
安裝完成還要做兩件事,當(dāng)然不是必須的,但是為了安全起見,最好再折騰一下。
2.1. 配置兩步驗證
兩步驗證可以防暴力入侵什么的,建議使用。首先在后臺啟用兩步驗證,然后手機安裝下面的應(yīng)用:
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
登錄時需要手機上的離線驗證碼驗證,安全有了多一層保障。
2.2. 客戶端安裝與使用
首先客戶端幾乎是全平臺的,地址在下面:
https://nextcloud.com/install/#install-clients
因為開啟了二步驗證,在客戶端直接使用帳號密碼肯定無法登錄了,所以需要在后臺設(shè)置應(yīng)用密碼,地址格式:
http://你的地址/index.php/settings/personal#apppasswords
在設(shè)置中設(shè)置應(yīng)用一次性密碼,使用隨機密碼登錄客戶端即可。
