pi-dal

pi-dal

All science is either physics or the stamp collecting.
twitter
github
bilibili

樹莓派 ArozOS 指南

https://github.com/tobychui/arozos/blob/master/img/banner.png?raw=true

為什麼選擇 ArozOS#

一直以來,許多 maker 都希望擁有一個屬於自己的高自定義 NAS,因此許多廠商都對目前最火的 SBC— 樹莓派做了適配,所以樹莓派上的 NAS 應用也是五花八門,下面是幾種主要的:

  1. Nextcloud

Nextcloud

https://raw.githubusercontent.com/nextcloud/screenshots/master/files/Files%20Sharing.png

也許是目前最火的一個應用了,有插件功能,有 app,功能十分完善。但有個先天的不足 — 它使用 php 編寫,奇慢無比。

  1. pydio

Pydio

https://raw.githubusercontent.com/pydio/cells-dist/master/resources/v3.0.0/home.png

目前在國內用的還比較少,用 Golang 編寫,速度快,功能較為完整,是我之前一直在糾結的一個選項。

  1. Seafile

Seafile - 開源的企業私有網盤 私有雲存儲軟件 企業維基 知識管理

國人 C 語言編寫,清華北大之選,功能完善,效率奇高。

說了這麼多,明明它們都不錯啊,為什麼不用呢?

大致有以下這些原因:

  1. 自定義程度不夠高,雖有插件系統,但是可以自己編寫的地方還是太少了
  2. 都是公司項目(這點見仁見智)
  3. 它們都有專業版,這也意味著免費版實力並不能達到飽和
  4. 都大致只能算是網盤應用,不能像群暉 DSM 一般

而現在我也來真正的介紹一下 ArozoOS

General purposed Web Desktop Operating Platform / OS for Raspberry Pis, Now written in Go!

Untitled

有些同學會問了,這不是個 NAS 應用嗎,怎麼叫 OS?

沒錯,你可能想到了,ArozOS 的實力要遠遠大於 nextcloud 類的網盤應用,它還擁有 WebApp 與 Subservice 兩大殺器,甚至還是 IoT 控制器。

Untitled

部分應用程序

Untitled 1

WebApp 管理

Untitled 2

Subservice 管理

當然,文件分享、音樂影片播放等基礎功能也少不了

Untitled 3

文件分享

Untitled 1

音樂影片播放

甚至還可以進行文件編輯,代碼編寫。

這才是我們所需要的 NAS 系統!

如何安裝 ArozOS#

目前安裝 ArozOS 有兩種方式

使用已打包好的 img#

已經為你設置好了一切,開箱即用。

你可以直接訪問http:// 樹莓派 ip 地址:8080/ ,註冊用戶了。

手動 build#

  1. 首先安裝 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
  1. 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
  1. build
# 國內
go env -w GOPROXY=https://goproxy.cn,direct

# build
cd ./arozos/src/
go build
./arozos
  1. 守護進程
# 在開始前先確定沒有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。您可以在 “系統設置”>“添加和刪除模塊” 選項卡中找到安裝界面

Untitled 4

刪除#

要刪除 WebApp,請選擇要從 WebApp 列表中刪除的 WebApp,然後單擊 “卸載”

Untitled 5

你也可以手動刪除,以下是刪除名為 “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選項卡,然後選擇要啟動 / 禁用的服務。

Untitled 6

當然你也可以手動操作

sudo systemctl stop arozos

cd ~/arozos/subservice/MySubservice

touch .disabled

sudo systemctl start arozos

One More Thing#

現在 ArozOS 還在積極地開發,我也曾有幸為其貢獻了一部分代碼。

Commits · tobychui/arozos

如果你對這個項目也有一些好主意,歡迎來提 issue 和 pr,也可以加入 telegram 群組,與我們進行交流。

ArozOS Dev

謝謝你的閱讀!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。