搭建私有網(wǎng)盤步驟:
- 寬帶的外網(wǎng)訪問
- 部署Docker+NextCloud+Nginx(本篇文章)
- 導(dǎo)入已有的資源和WebDAV使用
我們使用Docker可以很方便的安裝和部署相應(yīng)的環(huán)境。
關(guān)于Docker 的簡介百度百科樹莓派安裝Docker烛亦,可以參考文章:
樹莓派安裝Docker私有云盤有很多免費的供選擇:
- NextCloud 和OwnCloud同源的一個項目
- SeaFile 服務(wù)端文件加密存儲荐绝,這個不是我需要的。
- Daemon Sync 照片和視頻同步做的很好,安裝也相對簡單澜共,有興趣可以試一試板驳。
正文開始
前提條件是安裝好了 docker
和 docker-compose
創(chuàng)建文件夾 nextcloud
。
并且在nextcloud
文件夾下面創(chuàng)建docker-compose.yml
文件鞭光。
docker-compose.yml
文件內(nèi)容如下:
version: '2'
services:
db:
image: ibex/debian-mysql-server-5.7
restart: always
volumes:
- ./cloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=ROOT密碼 # 根據(jù)需要替換
- MYSQL_PASSWORD=數(shù)據(jù)庫密碼 # 根據(jù)需要替換
- MYSQL_DATABASE=nextcloud # 根據(jù)需要替換
- MYSQL_USER=nextcloud # 根據(jù)需要替換
app:
image: arm32v7/nextcloud
ports:
- 8888:80 # 端口映射吏廉,將Docker的80端口,映射成主機(jī)的8888端口惰许。根據(jù)需要可以自行修改席覆。
links:
- db
volumes:
- ./cloud/config:/var/www/html/config
- /home/pi/disk/nextCloud:/var/www/html/data # 因為樹莓派本身存儲太小,這里是映射到一個外置2T硬盤
- ./cloud/apps:/var/www/html/apps
restart: always
運行程序
在當(dāng)前目錄下(nextcloud
文件夾)執(zhí)行下面命令汹买,Docker會根據(jù)我們的配置佩伤,自動下載鏡像并啟動程序。
$ docker-compose up -d
配置數(shù)據(jù)庫
如果一切正常晦毙,這時候生巡,訪問127.0.0.1:8888
就會出現(xiàn) NextCloud界面。
第一次啟動见妒,需要配置數(shù)據(jù)庫
和賬戶
才可以正常使用孤荣。
注意下圖中 紅色方框
中的配置參數(shù)。
配置完畢须揣,網(wǎng)盤就可以正常使用了盐股。
Nginx配置
server {# 配置docker中的nextcloud
listen 9090; # 根據(jù)需要自行修改,這里是真正訪問網(wǎng)盤的端口號耻卡。
client_max_body_size 10G;
location / {
proxy_pass http://127.0.0.1:8888; # 代理轉(zhuǎn)發(fā)疯汁,這個 8888 端口要和docker-compose.yml文件中參數(shù)一致
proxy_set_header Host $http_host; # 設(shè)置一些頭參數(shù)為真實的參數(shù)
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
番外篇
關(guān)于樹莓派的Docker鏡像。
因為樹莓派是 基于 ARM 架構(gòu)卵酪,所以很多鏡像無法正常使用幌蚊。
適合于樹莓派的版本:
適用樹莓派的NextCloud鏡像
適用樹莓派的mysql鏡像
所以在上面文件中谤碳,兩個鏡像的地址分別是ibex/debian-mysql-server-5.7
和arm32v7/nextcloud
關(guān)于外置硬盤問題:
樹莓派空間實在太小,不適合做存儲溢豆。
這里我使用了一個2T 的移動硬盤作為存儲設(shè)備蜒简。
關(guān)于掛載硬盤,并且開機(jī)自動掛載沫换,可以參考Linux移動硬盤掛載
添加不受信任的域名
Nextcloud初始化完畢后臭蚁,會生成
/var/www/nextcloud/config/config.php
配置文件,里面的trusted_domains
配置項為信任域名讯赏,初始化完畢后只有一項垮兑,為主機(jī)的IP地址∈妫可以修改該配置項系枪,添加綁定的域名。'trusted_domains' => array ( 0 => '127.0.0.1', 1 => 'xxx.yyyyy.com', # 將這個自定義域名添加到配置中 ),
使用SqLite數(shù)據(jù)庫
不想使用MySQL磕谅,或者個人使用時私爷,可以使用Sqlite數(shù)據(jù)庫,配置更簡單膊夹。
docker-compose.yml 文件內(nèi)容修改如下:version: '2' app: image: arm32v7/nextcloud ports: - 8888:80 volumes: - ./cloud/config:/var/www/html/config - /home/pi/disk/nextCloud:/var/www/html/data - ./cloud/apps:/var/www/html/apps restart: always