Install ArozOS, a web desktop operating system

What is ArozOS? The main contents are as follows. I actually tried it and found it most useful to be able to operate it with a browser. I think it has many other applications.

https://arozos.com/

Before installing, let me describe its features: ArozOS is an open source web-based desktop environment and file management system. It runs mainly on Linux and BSD systems and is easy to install and use. Its main features are summarized below. This one has a number of features that are ideal for beginners.

ArozOS Features

  1. Multi-platform support:
    • It runs on a wide variety of operating systems (OS). In particular, it is commonly used on Linux and BSD-like operating systems.
  2. Web-based desktop environment:
    • Provides a graphical desktop interface accessible via a browser. This allows access to the system via the Internet from anywhere.
  3. File Management:
    • Advanced file management features allow users to upload, download, and edit files directly from the web interface.
  4. Modularity and extensibility:
    • The system is highly customizable, with a variety of modules and applications that can be incorporated. Users can also add their own functions.
  5. Integration with IoT devices:
    • The system also has the ability to work with Internet of Things (IoT) devices, allowing users to manage and control devices remotely.
  6. Low resource requirements:
    • Runs on relatively low system resources, so it can be used in environments with older hardware or limited resources.

Conclusion

ArozOS provides a web-based desktop environment that can be accessed remotely and has a wide range of features including file management, system administration, and IoT device integration. Its flexibility and customizability are especially attractive features for technicians and DIY enthusiasts.

Because of its versatility and flexibility, ArozOS can be described from many different perspectives. Thus, different aspects of the description of ArozOS may be emphasized depending on the target audience and context. The explanation for technicians will focus on development details, while the explanation for the average user will focus on ease of use and basic functionality, resulting in differences. Below are the descriptions for technical users.

ArozOS Web Application Development

  • AGI (ArozOS Gateway Interface): An interface to facilitate back-end development of ArozOS web apps, based on a JavaScript virtual machine called Otto and compatible with modern JavaScript syntax.

Creating Web Apps

  • To create a new web app, create a new folder under the ArozOS root . Create a new folder in the ./web/ folder and place the necessary files (e.g. init.agi, index.html ).
  • Startup script (init.agi): This script contains configuration and environment checks to make ArozOS recognize that this folder is a web application.

Front-end development

  • Front-end development for ArozOS is no different from normal web app development.
  • It can be accessed in different modes (Web Desktop mode, Mobile Desktop mode, Standalone mode, PWA mode).

Back-end development

  • AGI script execution: Use the agi_run function of the ao_module.js wrapper to execute AGI scripts from front-end JavaScript code.

AGI related libraries

  • System: A set of functions that can be used at AGI runtime.
  • User: A set of functions that can be used in the user scope.
  • Serverless: Dynamic programming by external AGI calls is possible.
  • File Live: Used for interaction with the file system.
  • App Data: Provides read-only access to files in a web folder.
  • Image Live: Provides basic image processing functions.
  • HTTP: Used to perform GET, POST, HEAD, and download requests.
  • Websocket: Used to upgrade from regular HTTP requests to WebSocket connections.
  • IoT: Provides easy access to IoT device control endpoints.
  • Share: Used to access the ArozOS shared interface and generate UUIDs based on shared files.

Application Examples

  • Telegram bot (serverless): use serverless functionality to handle external HTTP requests.
  • Userspace execution (serverless): used for dynamic script import and execution in userspace.

An overview of developing web applications on ArozOS, the various AGI-based features, and how to develop front- and back-end applications is provided. Install this handy OS on CUI-based ubuntu.

Refer to the following page to proceed.

https://github.com/tobychui/arozos

According to the instructions, you need GO language version 1.20 or higher, plus ffmpeg (probably for Windows). Optionally, you may also need wpa_supplicant or nmcli.

Install on a CUI-based ubuntu 22.04 at home. The LCD is difficult to see, so we will work with an SSH connection.

First, we will install the Go language; get the download link for Linux from the official page.

https://go.dev/dl/

The Go language (also known as Go or Golang) is a programming language developed by Google. Below is a brief description of the main features of the Go language and its usefulness.

Go Language Features

  1. Compilation language:
    • Go is a compiled language, meaning that source code is converted to binary code before execution. This allows for faster execution speed.
  2. Static typing:
    • Static typing is employed, where variable types are determined at compile time. This reduces runtime errors.
  3. Simple, easy-to-read syntax:
    • Go’s syntax is simple, easy to read and understand. This makes code maintenance easy.
  4. Concurrency support:
    • Efficient concurrency is supported using a lightweight threading concept called “goroutines.
  5. Extensive standard libraries:
    • Many standard libraries are provided for networking, encryption, data processing, etc., and can be used to develop a wide variety of applications.
  6. Cross-platform support:
    • Works on many operating systems, including Windows, Linux, and macOS.

Convenience

  • Fast development and execution: Simple syntax and fast compilation and execution speed enable rapid development.
  • Ease of concurrency: Implementation of concurrency using goroutines is relatively easy, allowing efficient use of multi-core processors.
  • Stable operation: Static typing and powerful standard libraries allow building stable applications.
  • Compatibility with microservices: Its lightweight and high-speed characteristics make it compatible with microservices architecture.

Conclusion

The Go language is considered very useful in modern software development due to its simplicity, fast execution, and ease of concurrency. In particular, it is widely used in the areas of web services, cloud-based applications, and microservices.

The commands here are installation instructions for the Go language in a Linux environment. The meaning of each command is as follows

  1. wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
    • This command downloads the Go language binary file from the Internet. The URL here is for downloading Go language version 1.15.3 for Linux on ARMv6 architecture. wget is a command to download files from the web.
  2. sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
    • This command will unzip and install the downloaded Go language archive (tar.gz file). sudo is the command to run the command with administrative privileges (if needed). tar is the command used to create and unzip the archive. In this case, the -C /usr/local option specifies the destination directory for decompression, and the -xzf option decompresses the compressed archive.
  3. echo 'export PATH=$PATH:/usr/local/go/bin' >> .bashrc
    • This command adds the path to the Go language executable to the PATH environment variable when the shell starts. echo is a command that prints the specified string, but here it is combined with >> .bashrc to add the string to the end of the .bashrc file. This makes the Go command available in a new terminal session.
  4. source ~/.bashrc
    • This command reads the modified .bashrc file into the current shell session. source executes the commands in the specified file in the current shell session.
  5. go version
    • This command displays the installed version of the Go language. This allows you to verify that Go has been installed correctly.

By following these steps, you have installed the Go language on your Linux system and are ready to use it. Delete the downloaded files as they are no longer needed.

sudo rm go1.21.6.linux-amd64.tar.gz

Next, build araozos with the source code. The contents are the same as the description on GitHub.

git clone https://github.com/tobychui/arozos
cd ./arozos/src/
go mod tidy
go build
./arozos 
#sudo ./arozos for enabling hardware and WiFi management features

The above command sequence explains how to clone the source code of the “arozos” project from GitHub, build it, and execute it. The following is a description of each command.

  1. git clone https://github.com/tobychui/arozos:
    • This command copies (clones) the source code from the repository “arozos” on GitHub.
    • git clone is used to create a copy of a remote repository on your local machine.
  2. cd ./arozos/src/:
    • Use the cd (change directory) command to move to the src folder in the cloned repository.
    • This folder contains the source code to build.
  3. go mod tidy:
    • A command used in Go language projects to organize the project’s dependencies and download required modules.
    • This command organizes the project’s go.mod and go.sum files and automatically resolves necessary dependencies.
  4. go build:
    • A Go language command that compiles the source code to produce an executable binary file.
    • This process creates the files from the source code to actually execute the program.
  5. ./arozos:
    • This is the command to run the built executable arozos.
    • If the build was successful, the arozos program will be started.
  6. sudo ./arozos:
    • This command runs arozos with superuser privileges (root privileges).
    • Running with superuser privileges enables functions that require special privileges, such as hardware and WiFi management functions.

This procedure is a common way to build and run programs directly from source code and requires a basic understanding of the Go language and software development.

With the above steps, ArozOS is ready to be operated in a browser.
http://Server IP address:8080

The first time you do this, you will determine your username and password.

You can then log in with this account to operate ArozOS.

File transfers are also possible between the host and ArozOS. As a test, I transferred a music file and listened to it, and the sound came out. The sound is not produced on the server side, but on the PC that is being operated.

It can also be set up as a file server, and the file transfer protocol can be selected from WebDAV, SFTP, etc.

ArozOS is equipped with basic applications such as a text editor and paint software. These tools are available directly within the ArozOS web-based desktop environment. Specifically, the following functions are included

  1. Text editor:
    • A basic text editor is provided that can be used to create and edit simple text files. It supports basic text processing, such as editing code.
  2. Paint software:
    • Paint applications are available that provide basic drawing and image editing functions. This can be used to create simple graphics and modify images.
  3. File Manager:
    • A file manager is available to manage files and folders, upload and download files, etc.
  4. Other utilities:
    • Often includes basic utilities for daily use, such as a calendar, calculator, and music player.

In addition to these basic applications, ArozOS offers a variety of additional features and customizations. Developers and users can add their own modules and applications to extend the system’s functionality.

There is also a Windows version, but it works by installing Ubuntu Server in VirtualBox and doing the same installation instructions above. You will also need to set up port forwarding. It works not only on a PC to access the system, but also on a smartphone with a browser.

Please share if you like it!
TOC