本次部署基于 Ubuntu 系統(桌面版 / Server 版通用,核心操作一致),硬件配置參考如下,低配置主機可順暢運行:
ubuntu服務器配置如下
硬件類型 | 具體型號/參數 |
---|---|
CPU | Intel Core i3-6100T |
內存條 | 8GB(DDR4 2400mhz) |
硬盤 | 東芝(Toshiba)機械硬盤 500GB |
Nextcloud 和 ZeroTier 部署方案
整套方案通過 Docker 實現 Nextcloud 容器化部署,搭配 ZeroTier 構建虛擬局域網,無需公網 IP 即可實現遠程訪問,步驟清晰且隔離性強。
1. 安裝 Docker 和 Docker Compose
首先,我們需要在 Ubuntu 系統上安裝 Docker 和 Docker Compose。
-
更新系統并安裝必要工具:
sudo apt update && sudo apt upgrade -y sudo apt install -y curl ufw vim
-
安裝 Docker:
官方的一鍵安裝腳本非常方便:curl -fsSL https://get.docker.com | sh
-
將當前用戶加入 docker 組(避免每次用
sudo
):sudo usermod -aG docker $USER newgrp docker # 刷新用戶組,或注銷后重新登錄生效
-
安裝 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
-
Docke配置鏡像源:
sudo vim /etc/docker/daemon.json#daemon.json如下所示
{
"registry-mirrors": [
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn"
]
}
- 驗證安裝:
docker --version docker-compose --version
2. 部署 Nextcloud (Docker Compose方式)
使用 Docker Compose 可以通過一個配置文件管理所有服務,非常清晰方便。
-
創建一個專用目錄(例如
nextcloud
)并進入:mkdir ~/nextcloud && cd ~/nextcloud
-
創建
docker-compose.yml
文件:
使用vim
或其他編輯器創建文件:sudo vim docker-compose.yml
將以下內容粘貼到文件中,然后保存退出( 輸入
:wq
, 回車)。version: '3'services:nextcloud:image: nextcloud:latestcontainer_name: nextcloudrestart: unless-stoppedports:- "80:80"- "443:443"environment:- MYSQL_HOST=nextcloud-db- MYSQL_DATABASE=nextcloud- MYSQL_USER=nextcloud- MYSQL_PASSWORD=your_strong_db_password_here # 請修改為一個強密碼!volumes:- nextcloud_data:/var/www/html- ./apps:/var/www/html/custom_apps- ./config:/var/www/html/config- ./data:/var/www/html/datadepends_on:- nextcloud-dbnextcloud-db:image: mariadb:10.6container_name: nextcloud-dbrestart: unless-stoppedenvironment:- MYSQL_ROOT_PASSWORD=your_strong_root_db_password_here # 請修改為一個強密碼!- MYSQL_DATABASE=nextcloud- MYSQL_USER=nextcloud- MYSQL_PASSWORD=your_strong_db_password_here # 此處的密碼要與上面nextcloud服務中的MYSQL_PASSWORD一致!volumes:- db_data:/var/lib/mysqlcommand: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFFvolumes:nextcloud_data:db_data:
重要提示:
- 務必修改
MYSQL_PASSWORD
和MYSQL_ROOT_PASSWORD
的值,并使用強密碼。 - 本例為了簡單,直接將Nextcloud的80和443端口映射到了主機。如果你的主機有其他服務占用這些端口,需要修改前面的主機端口(例如
8080:80
)。
- 務必修改
-
啟動 Nextcloud 服務:
在docker-compose.yml
文件所在目錄運行:docker-compose up -d
-d
表示在后臺運行。Docker 會自動下載鏡像并啟動容器。 -
查看啟動日志(可選):
docker-compose logs -f
-
初步訪問:
啟動完成后,在你同一局域網下的瀏覽器中,訪問http://你的Ubuntu主機IP
(例如http://192.168.1.100
)。你應該能看到 Nextcloud 的初始化頁面,創建管理員賬戶并配置數據庫時,數據庫用戶、密碼、數據庫名等就填寫你在docker-compose.yml
里設置的那些值。
3. 安裝和配置 ZeroTier
Nextcloud 在本地局域網部署好后,我們用 ZeroTier 來實現遠程訪問。
-
安裝 ZeroTier:
curl -s https://install.zerotier.com | sudo bash
-
注冊 ZeroTier 并創建網絡:
- 訪問 ZeroTier 官網 注冊一個賬號。
- 登錄后,在 “Networks” 頁面,點擊 “Create a Network”,這會生成一個新的網絡。記住生成的 Network ID(一串16位的字符)。
-
將你的服務器加入網絡:
sudo zerotier-cli join <你的Network ID>
例如:
sudo zerotier-cli join 1a2b3c4d5e6f7890
-
在官網授權設備:
- 回到 ZeroTier 官網的控制面板,找到你創建的網絡。
- 在 “Members” 選項卡下,你應該能看到你的服務器(通過Node ID識別),勾選前面那個 “Auth?” 復選框,授權它加入網絡。稍等片刻,它會獲得一個虛擬局域網IP(例如
192.168.192.100
)。
-
在其他設備上安裝并加入 ZeroTier:
- 在你需要訪問 Nextcloud 的手機和電腦上也安裝 ZeroTier 客戶端,并加入同一個 Network ID。
- 同樣地,回到官網控制面板,授權這些設備。
- 現在,你的所有設備都在同一個虛擬局域網里了。
-
通過 ZeroTier 訪問 Nextcloud:
- 首次配置需要需改配置 修改方法如下
cd ~/nextcloudsudo vim ./config/config.php
在打開的文件中,找到 'trusted_domains’這一行
'trusted_domains' =>
array (0 => '192.168.1.5', // 你本地的IP1 => '172.25.181.170', // ZeroTier的虛擬IP
),
* 在你手機或電腦的瀏覽器中,直接輸入服務器的 ZeroTier 虛擬IP地址,例如 `http://172.125.181.170`,就可以遠程訪問到你的 Nextcloud 了。
4. 可選優化與調整
- 數據目錄遷移:如果你希望 Nextcloud 的數據存儲在機械硬盤上,可以在
docker-compose.yml
的volumes
部分,將nextcloud_data
和db_data
的映射路徑修改到機械硬盤的掛載點,例如/mnt/your_hdd/nextcloud_data:/var/www/html
。 - 防火墻設置:如果開啟了 UFW(防火墻),記得放行所需端口:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 9993/udp # ZeroTier 的通信端口
常用管理和故障排除命令
- 查看容器狀態:
docker-compose ps
- 停止服務:
docker-compose down
(在當前目錄下運行,會停止并刪除容器,但保留數據卷) - 重啟服務:
docker-compose restart
- 查看日志:
docker-compose logs -f nextcloud
(查看Nextcloud容器的日志) - 進入容器內部(用于調試):
docker exec -it nextcloud bash
這套組合方案(Docker + Nextcloud + ZeroTier)的優點是高度集成、隔離性好、管理方便,并且通過 ZeroTier 實現了安全的點對點直連。
測試圖如下
如果部署過程中遇到任何問題,歡迎在評論區留言討論~