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

谢谢你的阅读!

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。