為什麼選擇 ArozOS#
一直以來,許多 maker 都希望擁有一個屬於自己的高自定義 NAS,因此許多廠商都對目前最火的 SBC— 樹莓派做了適配,所以樹莓派上的 NAS 應用也是五花八門,下面是幾種主要的:
- Nextcloud
也許是目前最火的一個應用了,有插件功能,有 app,功能十分完善。但有個先天的不足 — 它使用 php 編寫,奇慢無比。
- pydio
目前在國內用的還比較少,用 Golang 編寫,速度快,功能較為完整,是我之前一直在糾結的一個選項。
- Seafile
Seafile - 開源的企業私有網盤 私有雲存儲軟件 企業維基 知識管理
國人 C 語言編寫,清華北大之選,功能完善,效率奇高。
- …
說了這麼多,明明它們都不錯啊,為什麼不用呢?
大致有以下這些原因:
- 自定義程度不夠高,雖有插件系統,但是可以自己編寫的地方還是太少了
- 都是公司項目(這點見仁見智)
- 它們都有專業版,這也意味著免費版實力並不能達到飽和
- 都大致只能算是網盤應用,不能像群暉 DSM 一般
- …
而現在我也來真正的介紹一下 ArozoOS
General purposed Web Desktop Operating Platform / OS for Raspberry Pis, Now written in Go!
有些同學會問了,這不是個 NAS 應用嗎,怎麼叫 OS?
沒錯,你可能想到了,ArozOS 的實力要遠遠大於 nextcloud 類的網盤應用,它還擁有 WebApp 與 Subservice 兩大殺器,甚至還是 IoT 控制器。
部分應用程序
WebApp 管理
Subservice 管理
當然,文件分享、音樂影片播放等基礎功能也少不了
文件分享
音樂影片播放
甚至還可以進行文件編輯,代碼編寫。
這才是我們所需要的 NAS 系統!
如何安裝 ArozOS#
目前安裝 ArozOS 有兩種方式
使用已打包好的 img#
已經為你設置好了一切,開箱即用。
你可以直接訪問http:// 樹莓派 ip 地址:8080/ ,註冊用戶了。
手動 build#
- 首先安裝 Golang 1.14+
cd ~/
# 以下四步按照需要自行選用
# 樹莓派 64bit 網絡條件允許
wget https://golang.org/dl/go1.17.3.linux-arm64.tar.gz
# 樹莓派 32bit 網絡條件允許
wget https://golang.org/dl/go1.17.3.linux-armv6l.tar.gz
# 樹莓派 64bit 國內
wget https://golang.google.cn/dl/go1.17.3.linux-arm64.tar.gz
# 樹莓派 32bit 國內
wget https://golang.google.cn/dl/go1.17.3.linux-armv6l.tar.gz
sudo tar -C /usr/local -xzf go*
echo 'export PATH=$PATH:/usr/local/go/bin' >> .bashrc
source ~/.bashrc
go version
- git clone 整個項目
# 國內
git config --global url."https://hub.fastgit.xyz/".insteadOf "https://github.com/"
git config protocol.https.allow always
# 必要
git clone https://github.com/tobychui/arozos.git
- build
# 國內
go env -w GOPROXY=https://goproxy.cn,direct
# build
cd ./arozos/src/
go build
./arozos
- 守護進程
# 在開始前先確定沒有arozos進程
cd /etc/systemd/system/
sudo nano arozos.service
# 添加以下內容
[Unit]
Description=ArozOS Cloud Service
After=systemd-networkd-wait-online.service
Wants=systemd-networkd-wait-online.service
[Service]
Type=simple
ExecStartPre=/bin/sleep 30
WorkingDirectory=/home/pi/arozos/src
ExecStart=/bin/bash /home/pi/arozos/src/start.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl enable systemd-networkd.service systemd-networkd-wait-online.service
sudo systemctl start arozos.service
sudo systemctl enable arozos.service
此時你就可以訪問http:// 樹莓派 ip 地址:8080/ ,註冊用戶了。
啟動器與更新#
ArozOS 自1.119以來支持了啟動器與 OTA 更新。接下來講講如何使用這兩者
如何遷徙到啟動器模式#
在上文中我們學會了用源碼 build。那如何在其上使用啟動器呢?
# 暫停Arozos進程
sudo systemctl stop arozos
# 進入目錄
cd arozos/src
# clone啟動器源碼
git clone https://github.com/aroz-online/launcher.git launche
# 編譯啟動器
cd launche && go build
mv launcher ../
cd ..
# 如果你不是v1.119,請執行以下步驟
mkdir updates
cd updates
wget https://github.com/tobychui/arozos/releases/download/v1.119/arozos_linux_arm64 -O arozos
wget https://github.com/tobychui/arozos/releases/download/v1.119/web.tar.gz
tar -zxvf web.tar.gz
cd ..
# 更改start.sh中的./arozos改為./launcher
eg:
#!/bin/bash
sudo ./launcher -port 80 -tls=true -tls_port 443 -hostname "RPI-NAS"
# 重新啟動arozos
sudo systemctl start arozos
如果成功的話,在瀏覽器上打開鏈接,應該就可以看到效果了
OTA 升級#
Arozos 自 1.119 以來支持了 OTA 升級,你可以直接在 Arozos 更新版本
WebApp & Subservice#
說到 ArozOS,一定繞不過兩個東西,WebApp 與 Subservice。
WebApp#
Arozos 中的 WebApp 是 HTML5 編寫的 Web 應用程序,允許使用模塊安裝程序進行安裝。
安裝#
您可以使用 git repo URL 或 zip 文件安裝 WebApp。您可以在 “系統設置”>“添加和刪除模塊” 選項卡中找到安裝界面
刪除#
要刪除 WebApp,請選擇要從 WebApp 列表中刪除的 WebApp,然後單擊 “卸載”
你也可以手動刪除,以下是刪除名為 “MyWebApp” 的子服務的示例。
sudo systemctl stop arozos
cd ~/arozos/web/
rm -rf MyWebApp
sudo systemctl start arozos
Subservice#
ArozOS 中的 Subservice 是安裝時需要編譯的可執行文件。
安裝#
你需要在 ArozOS 目錄下手動安裝,以下是刪除名為 “MySubservice” 的子服務的示例。
cd ~/arozos/subservice
git clone MySubservice的git地址
cd MySubservice
./build.sh
刪除#
以下是刪除名為 “MySubservice” 的子服務的示例
sudo systemctl stop arozos
cd ~/arozos/subservice/
rm -rf ./MySubservice
sudo systemctl start arozos
啟用與禁用#
要啟用或禁用子服務,請訪問System Setting > Subservice選項卡,然後選擇要啟動 / 禁用的服務。
當然你也可以手動操作
sudo systemctl stop arozos
cd ~/arozos/subservice/MySubservice
touch .disabled
sudo systemctl start arozos
One More Thing#
現在 ArozOS 還在積極地開發,我也曾有幸為其貢獻了一部分代碼。
如果你對這個項目也有一些好主意,歡迎來提 issue 和 pr,也可以加入 telegram 群組,與我們進行交流。
謝謝你的閱讀!