目前很多免費網盤都關閉了缅叠,百度網盤也對普通用戶進行限速肤粱,使用體驗大大下降厨相,因此萌生了自己創(chuàng)建網盤的想法鸥鹉。網上搜了很多教程宋舷,但是關于Nextcloud的都比較復雜瓢姻,不易操作幻碱,所以想通過docker進行部署褥傍,最終在Docker Hub上找到了wonderfall創(chuàng)建的鏡像,配置比較簡單蹦狂,在此記錄配置過程凯楔,以提供給有需要的同學參考锦募。
by kowen
Seafile糠亩、Owncloud還是Nextcloud
以下是三個比較廷没,Seafile企業(yè)版需要收費垂寥,所以以下Seafile都是指社區(qū)版矫废,最后選擇Nextcloud:
- NextCloud是Owncloud的新版蓖扑,用新不用舊律杠;
- Seafile社區(qū)版不支持搜索竞惋,Nextcloud可搜索當前目錄文件拆宛,不能搜索子目錄浑厚,僅起列表過濾的作用钳幅,但Nextcloud通過插件支持全文搜索;
- 兩者都支持瀏覽器和手機在線播放視頻;
- 兩者IOS端都支持同步照片和視頻敢艰,都可以后臺同步钠导,但是同步效果感覺Nextcloud更快更好牡属,圖標上顯示待同步數量湃望,同步過程中標題欄下方有滑動條痰驱,Seafile只能進入設置選項查看當前同步情況担映;
- Nextcloud瀏覽器和IOS端有照片視圖叫潦,Seafile沒有矗蕊;
- 兩者手機端都支持查看txt傻咖、pdf、office文件警检,web端不支持office文件編輯扇雕;
- Seafile是國產軟件,中文文檔齊全础淤,Nextcloud缺少英文文檔值骇,可能會走彎路移国;
- Nextcloud有豐富的第三方應用插件庫可供選擇.
準備工作:安裝docker和docker-compose
編輯Docker-compose配置文件
拷貝以下內容并保存為docker-compose.yml吱瘩,修改域名等相關參數
version: '2'
networks:
default:
driver: bridge
services:
nextcloud:
image: wonderfall/nextcloud
container_name: nextcloud
depends_on:
- nextcloud-db # 如果使用Mysql,企業(yè)環(huán)境建議
- solr # 如果開啟全文搜索迹缀,查找文件更方便
- redis # 如果使用redis使碾,用于php緩存,性能更快
environment:
- UID=1000
- GID=1000
- UPLOAD_MAX_SIZE=10G # 文件上傳大小限制
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- CRON_PERIOD=15m
- TZ=Asia/Shanghai
- DOMAIN=localhost
- DB_TYPE=mysql # 可選sqlite3, mysql或pgsql祝懂,默認數據庫是sqlite3票摇,我們使用Mysql(nextcloud-db)。
- DB_NAME=nextcloud
- DB_USER=nextcloud
- DB_PASSWORD=supersecretpassword # 改為你的數據庫密碼
- DB_HOST=nextcloud-db
volumes:
- /docker/nextcloud/data:/data # 數據目錄
- /docker/nextcloud/config:/config # config.php配置文件目錄
- /docker/nextcloud/apps:/apps2 # 插件目錄
- /docker/nextcloud/themes:/nextcloud/themes #主題目錄
labels:
- reverse.frontend.domain=cloud.example.com #改為你的域名或IP
- reverse.backend.port=8888
- reverse.frontend.ssl=true #使用HTTPS訪問
- reverse.frontend.ssltype=ec384
- reverse.frontend.hsts=false
- reverse.frontend.headers=false
# 如果使用MySQL
nextcloud-db:
image: mariadb:10
container_name: nextcloud-db
volumes:
- /docker/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=supersecretpassword # 改為你的數據庫密碼
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=supersecretpassword # 改為你的數據庫密碼
# 如果想開啟全文搜索
solr:
image: solr:6-alpine
container_name: solr
volumes:
- /docker/nextcloud/solr:/opt/solr/server/solr/mycores
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- nextant
# 如果使用Redis
redis:
image: redis:alpine
container_name: redis
volumes:
- /docker/nextcloud/redis:/data
這里面包括四個容器服務砚蓬,nextcloud矢门,nextcloud-db(mysql),solr和redis祟剔,其中nextcloud是必須的仅父,后面的服務不使用可以刪除配置(同時要刪除nextcloud中的依賴)。比如用戶數少不想使用mysql抖拴,可刪除depends_on:后面的- nextcloud-db以及后面的nextcloud-db配置段。nextcloud-db建議企業(yè)用戶使用脱柱,redis作為緩存可以讓服務器響應速度變得更快随闺,solr提供了更好的搜索功能,你可以按需要自己配置。
注意:Nextcloud強烈建議啟用https訪問欧漱,reverse鏡像會自動創(chuàng)建免費ssl證書(通過Let's Encrypt)窑邦,以提供https訪問浩蓉,但前提是在互聯(lián)網上可以通過域名訪問到你服務器庆猫。如果不能恩急,請設置上面的參數reverse.frontend.ssl為false纯续,然后通過http訪問窗看,否則nginx將啟動失敗构罗。當然盖彭,如果你有自己的反向代理服務隧熙,可以從docker-compose.yml文件中刪除reverse的相關配置沪饺。
運行docker容器
- 進入在docker-compose.yml目錄
- 運行數據庫容器(不使用Mysql略過)
docker-compose up -d nextcloud-db
- 運行其他容器
docker-compose up -d
- redis配置
如果doker-compose.yml添加了redis服務,需要編輯php配置來啟用服務端壳,配置文件路徑是/docker/nextcloud/config/config.php
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\APCu',
'redis' => array(
'host' => 'redis',
'port' => 6379,
),
- 重啟reverse容器
docker restart reverse
- 配置solr
默認的文件查找功能只相當于一個列表過濾成翩,無法搜索子文件夾,啟用nextant插件借助solr服務可實現(xiàn)全文搜索赢赊,不光搜索文件名玩讳,還可以按文檔的內容搜索樟澜。前提是在docker-compose.yml中配置了solr熊户。
在配置過程中發(fā)現(xiàn)nextant無法連接solr串塑,通過docker logs solr查看到錯誤信息“
cp: can't create directory '/opt/solr/server/solr/mycores/nextant': Permission denied”妆档,
原來是沒有權限兢卵,執(zhí)行以下命令修改權限:
sudo chmod -R 777 /docker/nextcloud/solr
- 重啟solr
docker restart solr
通過docker logs solr查看雁乡,solr正常啟動
登錄設置
通過瀏覽器訪問你的網站,第一次打開界面是這樣的。
輸入用戶名密碼來創(chuàng)建管理員帳號
使用Nextant開啟全文搜索
打開Nextant的前提是前面安裝了solr服務勒魔,
- 管理員帳號登錄,點擊右上角齒輪圖標延届,點擊"+應用"厕吉,點擊"應用軟件包",點擊files项钮,找到Nextant烁巫,點擊啟用违崇;
- 點擊右上角齒輪圖標水由,選擇管理呵恢,點擊其他設置赠涮,找到Nextant (全文搜索)選項炸裆;
- 在Address of your solr servlet中輸入http://solr:8983/solr 垃它,點擊測試并保存,出現(xiàn)下圖中右側綠色對號提示即為連接成功晒衩。
發(fā)現(xiàn)Nextcloud
總體來說嗤瞎,Nextcloud是一款出類拔萃的私有云盤服務,支持windows听系、mac贝奇、linux、安卓靠胜、ios主流操作系統(tǒng)掉瞳。提供了豐富的插件可以在線安裝毕源,比如在線編輯流程圖編輯,office文件編輯陕习、日歷霎褐、聯(lián)系人、筆記该镣、視頻聊天冻璃、郵件等等。
[圖片上傳失敗...(image-25c2ed-1512026386267)]