["System Overview"]
Arozos consists of three major components in its folder structure. The folder structure is listed as follows.
Structure Name | Location | Purpose |
---|---|---|
Web | ./web | Directory for storing WebApp scripts (including System GUI elements) |
System | ./system | Directory for storing system folders. Databases, templates and other important files are stored here. This should not be exposed via the storage pool handler. |
Subservice | ./subservice | Subservice that mount to arozos. Allowing arozos to perform reverse proxy access to these web services binaries. |
Arozos Binary | ./arozos (or arozos.exe) | The executable of the main logic of arozos system |
As arozos move away from PHP, there is no way to dynamically add modules or plugins into a pre-compiled binary. Hence, there are two new methods to add plugins into the system.
In the following sections, the structure of the methods will be introduced. For details about developing a plugin for arozos, please see the WebApp and Subservice sections.
Arozos Web Applications (or WebApps) are stored under the ./web folder. Each folder contain a list of html, JavaScript and CSS files that can be served via the arozos internal web server. A generic folder structure of a WebApp should consist of the following files.
Filename | Purpose | Mandatory |
---|---|---|
init.agi | Define the WebApp startup properties | Yes |
index.html | Index of WebApp to serve | Yes |
*/icon.png | The icon for this module | Yes |
*/desktop_icon.png | The icon for showing as a desktop shortcut | No |
embedded.html | The embedded mode UI | Depends |
floatWindow.html | The float window mode UI | Depends |
manifest.json | The required manifest for supporting PWA | Recommend |
Notes that the init.agi is mandatory and it must be placed under your WebApp roots (i.e. ./web/{webapp_name}/init.agi
). Or otherwise, your WebApp will not be scanned by the arozos startup process.
Subservice are web server binaries that are stored under ./subservice folder and provide services that require much higher levels of complexity. A basic subservices contain the following file structures.
Filename | Purpose | Mandatory |
---|---|---|
{subservicename}{platform}_{architecture} | The binary of the subservice | Yes |
.disabled | Flags to disable this subservice on startup | No |
.startscript | Flags to load start script for registration instead of the binary itself | No |
moduleInfo.json | The module information JSON | Depends |
start.sh (or start.bat) | The startup script that replace the -info flag in subservice startup parameter | Depends |
Depending on your platform and subservice name the binary name may differ according.
For example, here is a subservice named “demo” with support linux (arm, arm64 and amd64), MacOS(darwin) and Windows. Its binary files will look like this under Windows’ File Explorer.
In some cases where gluing scripts are used, there might be a few more bash files or extra binaries. In this case, you will need to assign suitable permission to these files before starting arozos core. Permission denied of executing files inside subservice will lead to failure of starting of arozos system.