雲端儲存不用靠別人,全部放在自己的 NAS。

用 Docker Compose 在 Synology NAS 上部署 Nextcloud,搭配 MariaDB 和 Redis,打造完全自主掌控的私人雲端儲存與協作平台,資料完全在自己手上,不依賴 Google Drive。

在 Synology NAS 上架設 Nextcloud:自架 Google Drive 完全指南

Google Drive、iCloud、Dropbox 都有一個共同點:你的資料在別人的伺服器上。

Nextcloud 是完全開源的自架雲端方案,功能不輸商業服務——檔案同步、相片管理、行事曆、聯絡人、Office 文件編輯,全部都有。部署在自己的 NAS 上,資料不出家門。

🎯 這篇適合誰

你的情況 建議先看哪段
想先了解跟 Synology Drive 差在哪 Nextcloud vs Synology Drive
直接看安裝步驟 部署步驟
想啟用 HTTPS 設定反向代理
遇到問題 常見問題

Nextcloud on Synology NAS 架構概覽


Nextcloud vs Synology Drive

兩個都是 NAS 上的「雲端同步」方案,選擇前先搞清楚差異:

比較項目 Synology Drive Nextcloud
設定難度 簡單(DSM 套件) 中等(Docker Compose)
資料掌控 在你的 NAS 在你的 NAS
外部分享 有限制 完整支援(含密碼保護、到期日)
行事曆/聯絡人 需其他套件 內建(CalDAV / CardDAV)
Office 線上編輯 可搭配 Collabora(LibreOffice)
手機 App Synology Photos / DS file Nextcloud App(iOS/Android)
擴充性 高(大量第三方 App)
維護成本 中(需要自行更新)

結論: 只是個人備份和家用同步,Synology Drive 就夠了,設定簡單。需要對外分享、行事曆同步、多人協作,或想完全脫離 Google 生態,選 Nextcloud。


硬體需求

項目 最低 建議
RAM 4GB 8GB 以上
儲存 HDD NVMe SSD(效能差距明顯)
DSM 7.0 7.2
Docker Container Manager 已安裝

部署步驟

Step 1:建立資料夾結構

在 File Station 或 SSH 建立以下目錄:

/volume1/docker/nextcloud/
├── data/        ← Nextcloud 應用程式資料
├── db/          ← MariaDB 資料庫
└── redis/       ← Redis 快取(選填)

Step 2:建立 docker-compose.yml

SSH 進入 NAS,切換 root 後建立設定檔:

mkdir -p /volume1/docker/nextcloud
nano /volume1/docker/nextcloud/docker-compose.yml

貼入以下內容(記得修改所有密碼):

services:
  nextcloud:
    image: nextcloud:28
    container_name: nextcloud
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - /volume1/docker/nextcloud/data:/var/www/html
    environment:
      - MYSQL_HOST=nextcloud_db
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=你的資料庫密碼
      - REDIS_HOST=nextcloud_redis
      - NEXTCLOUD_TRUSTED_DOMAINS=你的網域或NAS_IP
    depends_on:
      - nextcloud_db
      - nextcloud_redis
    networks:
      - nextcloud_net

  nextcloud_db:
    image: mariadb:11
    container_name: nextcloud_db
    restart: unless-stopped
    volumes:
      - /volume1/docker/nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=你的root密碼
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=你的資料庫密碼
    networks:
      - nextcloud_net

  nextcloud_redis:
    image: redis:alpine
    container_name: nextcloud_redis
    restart: unless-stopped
    networks:
      - nextcloud_net

networks:
  nextcloud_net:
    driver: bridge

Step 3:啟動容器

cd /volume1/docker/nextcloud
docker compose up -d

等待約 1–2 分鐘讓容器初始化完成。

Step 4:完成初始設定

打開瀏覽器,進入:

http://你的NAS_IP:8080

設定管理員帳號和密碼,資料庫選 MySQL/MariaDB,填入:

欄位
資料庫使用者 nextcloud
資料庫密碼 你設定的密碼
資料庫名稱 nextcloud
資料庫主機 nextcloud_db

點擊「安裝」,等待 2–3 分鐘完成初始化。


設定反向代理(HTTPS)

Nextcloud 強烈建議透過 HTTPS 存取,搭配 Nginx Proxy Manager 最簡單。

NPM 設定:

  1. 新增 Proxy Host
  2. Domain Name:你的網域(例如 cloud.dairny.com
  3. Forward Hostname:NAS 的 IP
  4. Forward Port:8080
  5. 勾選 Websockets Support
  6. SSL → 申請 Let's Encrypt 憑證

更新 Nextcloud 信任網域:

SSH 進入 NAS 後執行:

docker exec -u www-data nextcloud php occ config:system:set trusted_domains 1 --value=cloud.你的網域

安裝 Nextcloud App

手機同步

  • iOS: App Store 搜尋「Nextcloud」
  • Android: Play Store 搜尋「Nextcloud」

輸入你的 Nextcloud 網址和帳號即可連線。

桌面同步

下載 Nextcloud Desktop Client,設定同步資料夾,之後就像 Dropbox 一樣自動同步。


效能優化

1. 移到 NVMe

資料夾放在 NVMe 儲存集區,效能差距明顯。參考 把 Docker 資料移到 NVMe 的操作方式。

2. 背景排程

Nextcloud 有排程任務(掃描新檔案、清理快取)。建議用 cron 替代預設的 AJAX 模式:

在 NAS 的「工作排程器」新增任務,每 5 分鐘執行:

docker exec -u www-data nextcloud php -f /var/www/html/cron.php

3. 記憶體快取

Redis 已在 docker-compose.yml 設定,確認 Nextcloud 有正確抓到:

docker exec -u www-data nextcloud php occ config:system:get memcache.distributed

輸出應為 \OC\Memcache\Redis


❓ 常見問題

Q1:更新 Nextcloud 版本怎麼做?

docker compose pull
docker compose up -d

建議不要跳版本更新(例如從 27 直接升 29),逐版更新比較安全。

Q2:上傳大檔案顯示「413 Request Entity Too Large」?

這是 Nginx 的限制。在 NPM 的 Proxy Host → Advanced 加入:

client_max_body_size 10G;

Q3:Nextcloud 掃描不到新上傳的檔案?

直接在 NAS 複製進去的檔案,Nextcloud 不會自動偵測。手動掃描:

docker exec -u www-data nextcloud php occ files:scan --all

Q4:忘記管理員密碼怎麼辦?

docker exec -u www-data nextcloud php occ user:resetpassword 你的帳號

Q5:可以自訂儲存路徑讓不同用戶有不同配額嗎?

可以,在 Nextcloud 後台 → 使用者 → 設定個別配額,或用「External Storage」掛載不同 NAS 共享資料夾。


✨ 總結

Nextcloud 設定比 Synology Drive 複雜,但換來的是更高的彈性和對外分享能力。一旦跑起來,日常維護並不麻煩——更新只需要兩行指令。

如果你需要的不只是備份,而是一個真正可以替代 Google Workspace 的自架環境,Nextcloud 是目前最成熟的選項。


🔗 延伸閱讀

這篇有幫助嗎? 雲端儲存不用靠別人,全部放在自己的 NAS。