PinePhone因其跟樹莓派相似的設計,使得當伺服器成為一種可行的玩法。
在PinePhone上安裝Docker,執行Nextcloud,架設私有雲端硬碟。並透過手機APP,上傳照片到NextCloud備份。
不對PinePhone本身作改造,比方說焊接什麼的,也不要拆螺絲,且PinePhone可以不靠電池繼續運作。
1. 安裝系統至SD卡
之所以選擇安裝至SD卡,是因為之後要回復成手機用途,只要拔掉就好,大不了就是把SD卡整張卡內容DD拷貝到電腦上儲存,軟體也不用重新設定。
要讓PinePhone能選擇從SD卡或eMMC開機,先安裝Tow-Boot。
刷入完成後,在開機第一個紅燈亮起來之後按著音量下鍵,從SD卡開機。開機後更新套件、設定好時區。
PinePhone要是拔掉電池,通訊模組會停擺,所以只能透過Type-C擴充埠外接網路卡或有線網路。我的這張WIFI網卡需要自行下載88x2bu的社群驅動編譯安裝。
2. 安裝Docker
選擇Docker的理由是手工架設過程遇到PHP相依性地獄,不玩啦。
- 安裝Debian的Docker前置套件
|
|
- 加入gpg key後,因為Mobain是bookworm,無release file,要將其修改為bullseye才能安裝docker
|
|
- 安裝Docker
|
|
- 確認Docker執行狀況
|
|
- 安裝docker-compose (官網指示的有bug,Github上說裝這版才對)
|
|
- 確認docker-compose版本
|
|
3. 建立Nextcloud容器
- 建立docker compose檔案
|
|
- 填入以下內容。(MySQL似乎沒有ARM版,所以我使用MariaDB代替。)
|
|
- 部署,等容器下載完。此容器也會在手機開機自動啟動。
|
|
4. 初始化Nextcloud
- 在PinePhone上開啟瀏覽器,網址輸入
localhost
,進入Nextcloud。建立管理員帳戶,點選"Install",等10分鐘安裝完成。

- 接著安裝其他服務,再等個5分鐘安裝完成。

- 執行以下指令,透過docker exec對Nextcloud容器傳送指令,將Android手機的IP加入白名單,“value"後面寫domain。但我加了仍無效果,所以改成任意domain都可以登入(危險,不要在家嘗試)。
|
|
因為PinePhone和Android手機都連線到同一個WIFI,於是在Android手機開啟Nextcloud官方APP,輸入PinePhone的IP,登入Nextcloud。
手機APP登入後,介面就像一般雲端硬碟一樣,可以上傳並檢視檔案。
上傳相片的速度還算不錯,但要等個10秒刷新。
7.之後Nextcloud可以再繼續設定外部儲存空間、讓外部網路也可以連線進來等等的設定。
5. 總結
雖然說Nextcloud容器開機會自動啟動蠻方便的,但是PinePhone完整啟動要2分鐘,尤其是系統裝在SD卡的情況下,關機時間也會變長。
雖是如此,但PinePhone確實能當簡單的伺服器使用,而且緊急時PinePhone還有觸控螢幕能用。
6. 參考資料
- Install Docker Engine on Debian - docker docs
- How to Self-Host a Collaborative Cloud with Nextcloud and Docker - cloud savvy IT
- /usr/local/bin/docker-compose: line 1: Not: command not found #6268 - Github
- Docker (Apple Silicon/M1 Preview) MySQL “no matching manifest for linux/arm64/v8 in the manifest list entries” - stackoverflow
- Add a Trusted Domain to Nextcloud - Laur IVAN | PRO