用nextcloud搭建個人網盤

  • 2020 年 3 月 30 日
  • 筆記

nextcloud

nextcloud是一個私有雲存儲網盤項目,nextcloud是owncloud的衍生版本,2016年4月27日,ownCloud聯合創始人Frank Karlitschek宣布離開ownCloud ltc.,轉而成立另一家公司「Nextcloud」,由於ownCloud程式本身歸其開發人員所有,所以Nextcloud可以直接使用ownCloud的核心技術。nextcloud具有強大的擴展性,同時主打 a safe home for all your data,所以在安全性上nextcloud也十分出色。

nextcloud安裝

參考:https://hub.docker.com/_/nextcloud/

nextcloud安裝最簡單的方式就是用docker來拉起應用:

$ docker run -d       -v nextcloud:/var/www/html       -v apps:/var/www/html/custom_apps       -v config:/var/www/html/config       -v data:/var/www/html/data       -v theme:/var/www/html/themes/<YOUR_CUSTOM_THEME>       -p 8080:80       nextcloud

nextcloud文件目錄說明:

  • /var/www/html主文件夾
  • var/www/html/custom_apps安裝其他應用APP的文件夾
  • /var/www/html/config本地配置
  • /var/www/html/datanextcloud的實際數據存儲
  • /var/www/html/themes/主題

如果採用默認的形式啟動,其默認是採用sqlite資料庫做數據的存儲,如果想用mysql或PostgreSQL可以通過--link的方式連接,再設置對應的環境變數:

SQLite:

  • SQLITE_DATABASE 資料庫名稱

MYSQL/MariaDB:

  • MYSQL_DATABASE 資料庫名稱
  • MYSQL_USER 資料庫用戶名
  • MYSQL_PASSWORD 資料庫密碼
  • MYSQL_HOST 資料庫伺服器地址

PostgreSQL:

  • POSTGRES_DB Name 資料庫名稱
  • POSTGRES_USER 資料庫用戶名
  • POSTGRES_PASSWORD 資料庫密碼
  • POSTGRES_HOST 資料庫伺服器地址

比如連接一個MySQL:

$ docker run -d       -e MYSQL_DATABASE="nextcloud"       -e MYSQL_USER="root"       -e MYSQL_PASSWORD="123456"       -e MYSQL_HOST="127.0.0.1:3306"       -p 8080:80       nextcloud

docker設置管理員用戶名密碼:

  • NEXTCLOUD_ADMIN_USER管理員用戶名
  • NEXTCLOUD_ADMIN_PASSWORD管理員密碼

如果在安裝得時候沒設置管理員用戶名和密碼,在第一次打開介面得時候會讓你設置。

nextcloud docker遷移

可以採用docker-compose的形式部署,將數據存在容器的數據卷中,

version: '2'    volumes:    nextcloud:    db:    services:    db:      image: mariadb      command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW      restart: always      volumes:        - db:/var/lib/mysql      environment:        - MYSQL_ROOT_PASSWORD=        - MYSQL_PASSWORD=        - MYSQL_DATABASE=nextcloud        - MYSQL_USER=nextcloud      app:      image: nextcloud      ports:        - 8080:80      links:        - db      volumes:        - nextcloud:/var/www/html      restart: always

在容器升級或者數據遷移的時候直接重新拉起即可:

$ docker-compose pull  $ docker-compose up -d

Tags: