在 Synology NAS 上架設 Nextcloud:自架 Google Drive 完全指南
Google Drive、iCloud、Dropbox 都有一個共同點:你的資料在別人的伺服器上。
Nextcloud 是完全開源的自架雲端方案,功能不輸商業服務——檔案同步、相片管理、行事曆、聯絡人、Office 文件編輯,全部都有。部署在自己的 NAS 上,資料不出家門。
🎯 這篇適合誰
| 你的情況 | 建議先看哪段 |
|---|---|
| 想先了解跟 Synology Drive 差在哪 | Nextcloud vs Synology Drive |
| 直接看安裝步驟 | 部署步驟 |
| 想啟用 HTTPS | 設定反向代理 |
| 遇到問題 | 常見問題 |
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 設定:
- 新增 Proxy Host
- Domain Name:你的網域(例如
cloud.dairny.com) - Forward Hostname:NAS 的 IP
- Forward Port:
8080 - 勾選 Websockets Support
- 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 是目前最成熟的選項。
🔗 延伸閱讀
- Synology Drive vs Google Drive:該用哪個?
- Nginx Proxy Manager 設定指南:免費 SSL 反向代理
- Synology Container Manager 完全指南
- 把 Docker 資料移到 NVMe:設定方法與注意事項