DEV Community

Cover image for Announcing ArozOS 2.0 - 5 years journey into my own Web Desktop OS
Toby Chui
Toby Chui

Posted on

Announcing ArozOS 2.0 - 5 years journey into my own Web Desktop OS

This is a story about a poor student who wants to build his own storage solution with cheap computers. It all starts with just a few php scripts serving my mp3 files from my server, and now it become one of the most complex and (maybe the) best designed web desktop system out there in the open source world.

2 years ago, I have written another post sharing the v1.0 release and the back story of the system. If you are interested in the evolution of this system starting from 2018, you can check out the following post.

And this is how it looks like now.
Image description

GitHub logo tobychui / arozos

Web Desktop Operating System for low power platforms, Now written in Go!

Image

Features

User Interface

  • Web Desktop Interface
  • Ubuntu remix Windows style startup menu and task bars
  • Clean and easy to use File Manager (Support drag drop, upload etc)
  • Simplistic System Setting Menu
  • No-bull-shit module naming scheme

Networking

  • Basic Realtime Network Statistic
  • Static Web Server (with build in Web Editor!)
  • mDNS discovery + SSDP broadcast
  • UPnP Port Forwarding
  • WiFi Management (Support wpa_supplicant for Rpi or nmcli for Armbian)

File / Disk Management

  • Mount Disk Utilities

    • Local File Systems (ext4, NTFS, FAT etc)
    • Remote File Systems (WebDAV, SMB, SFTP etc)
  • Build in Network File Sharing Servers

    • FTP, WebDAV, SFTP
    • Basic Auth based simple HTTP interface for legacy devices with outdated browser
  • Virtual File System + Sandbox Architecture

  • File Sharing (Similar to Google Drive)

  • Basic File Operations with Real-time Progress (Copy / Cut / Paste / New File or Folder etc)

Security

  • oAuth
  • LDAP
  • IP White / Blacklist
  • Exponential login timeout

Extensibility

  • ECMA5 (JavaScript…

Why v2.0?

The ArozOS v1 is a nice, stable system that enable me to access my files anywhere with internet and a browser from any kind of devices. It perfectly fits my needs when I am a university student studying in a local university. However, as I have started my Master research in another country, now I need to worry about redundancy and remote management issues.

That is why I have rewritten ArozOS to support mounting and sandbox network file shares into virtual drives. As this is not a technical post, I will simply summarize the update as: I rewrote the base of the whole system so that I can have multiple servers around the world and access them through one single gateway nodes. Just like your PC with mounted network drives!

How ArozOS looks like after 5 years

After 5 years of development, it finally matches the definition of modern OS design in all sense.

Image description

We rewritten the UI for the File Manager, which I will describe in details in later sections.
Image description

As usually, the system comes with build in players for all kind of media files. From music, video and photo to professional formats like psd and raw (support via 3rd party plugins)

Image description

We continue to work on a simple web development tools that allows users with little to no web development experience to create and host their website on ArozOS with a few clicks.

Image description

For professional use cases, we also provided a new tools that provide Serverless API script powered by ECMA5 (JavaScript like stuffs). So you can host some basic API services with your ArozOS running on your home network. More details below.

File Manager

The largest update of ArozOS v2 is the File Manager. The File Manage now contain much better RWD interface for mobile and desktop devices with different screen sizes.

Image description

As requested by a lot of users, the File Manager have a new "Detail" viewing mode. This mode allow a simple overview of all file properties within the current folder.

Image description

A properties sidebar is added to provide detail views over the selected item. This is very helpful when you do not want the "Details" / "Grid" view in a folder containing tons of files while wanting to have a quick way to check the properties of the selected file.

Image description

I also toke a lot of time optimizing the minor places to make user experience much better than the old versions. Including a dynamic adjusted folder path viewer (instead of the old version where it is hard coded to show only 3 folder name at a time)

Image description

And it even support inline editing function!

Image description

We optimized the rename workflow for desktop users. Instead of a popup window asking for the new file name, now we got inline filename editing as well.

Image description

Operation popups are moved to the side. So as to optimize for mobile interfaces as well as making the css less painful to maintain due to the old vertical align center design.

Image description

Storage Pools

In ArozOS v2, we get a brand new design in the Storage Pool setting interface as well as the backend architecture. In v1.0, you can only mount local disk into ArozOS as "virtual drive", which is basically a mount point on ArozOS, to v2.0's file system abstraction driver design, where you can mount anything that resemble a file system. From local disk, ram disk, network file sharing protocols like SMB, WebDAV, SFTP and FTP, all of them can be mounted as a "disk" in the new ArozOS system.

Image description

You can easily add new disk into ArozOS via the (+) button. By mounting another ArozOS server into your gateway server, you can access all ArozOS storage pools within a single server, making it much easier to manage.

Image description

We also redesigned the File System Handler properties editor to make it more simplistic and automated. Now many settings are default hidden and only show if you pick something related to it. Making it much more user friendly.

Image description

File Servers

What happens if you want to share files from ArozOS to your devices? In v2.0, you can do it in a lot of ways. For starters, you can use the Share API to share a file from File Manager.

Share API

Image description

In the new Share API, we added new Share modes so you can share to a particular user group or people you want.

Image description

The share interface got a bit update as well.

Image description

Under each of the preview interface, if it is a web compatible file, you will see an automatically generated embed link, where you can use it in your website like wordpress.

Image description

In order to make the share looks pretty on social network platforms, I added open graph support to the share API, so when you share the link to others, like discord for example, the preview will show up as a background rendered summary image file.

Image description

Network File Servers

If you want to access the file on other computers without browser, you can use the build in file server functions.

Image description

The build in file server support WebDAV, SFTP and FTP, where if you have a corresponding client like WinSCP or MacOS build in "Connect to server" function, you can access your file remotely from any devices.

Legacy Browsers Support

Legacy support is always important for ArozOS because even it is 2023, there are still people using Windows 7 or even Windows XP. That is why having backward compatibility is important. In v2.0, I have added a "Directory Server" function in which you can use basic auth to login to your ArozOS and download files from them.

Image description

This interface provide the most basic css and html where it takes little to no resources to load. I guess it might even works on NDS's browser. Note that basic auth is generally considered not safe. After you are done with it, you should turn it off.

Web Development and Serverless

The last update is about web development and serverless. Many of the ArozOS client are design professionals who seeks for a webpage for showcasing their work. That is why in ArozOS, we included some basic web development tools to get people started with their self hosted webpage.
Personal webpage can be enabled in System Settings

Image description

A few of my friends who are using ArozOS have a bit of programming skills. With request from them and my interest to try out Serverless, we added the Serverless app, where you can insert a ECMA5 code and let it run when a GET or POST request is received.

Image description

He also insert another script into scheduler so the currency exchange rage will be updated every night just to make his Telegram currency conversion bot works. In my opinion this is just another cool hacky way to use ArozOS to make things works!

Image description

More?

In this update, we added a lot of minor changes to make the UX better from the v1 releases. From Network Statistic Graphs

Image description

to background tasks viewers
Image description

and brand new document viewer
Image description

If you want to experience this wonderful system yourself, the system can be easily set up using a Raspberry Pi, old PC or laptop with a few line of bash command.

Hope you like this project! We are continuing updating the modules of this system to better fit our use cases. If you are interested to try it out or even contribute to this project, feel frees to find the source code and give us a star 🌟 in the attached Github link below.

GitHub logo tobychui / arozos

Web Desktop Operating System for low power platforms, Now written in Go!

Image

Features

User Interface

  • Web Desktop Interface
  • Ubuntu remix Windows style startup menu and task bars
  • Clean and easy to use File Manager (Support drag drop, upload etc)
  • Simplistic System Setting Menu
  • No-bull-shit module naming scheme

Networking

  • Basic Realtime Network Statistic
  • Static Web Server (with build in Web Editor!)
  • mDNS discovery + SSDP broadcast
  • UPnP Port Forwarding
  • WiFi Management (Support wpa_supplicant for Rpi or nmcli for Armbian)

File / Disk Management

  • Mount Disk Utilities

    • Local File Systems (ext4, NTFS, FAT etc)
    • Remote File Systems (WebDAV, SMB, SFTP etc)
  • Build in Network File Sharing Servers

    • FTP, WebDAV, SFTP
    • Basic Auth based simple HTTP interface for legacy devices with outdated browser
  • Virtual File System + Sandbox Architecture

  • File Sharing (Similar to Google Drive)

  • Basic File Operations with Real-time Progress (Copy / Cut / Paste / New File or Folder etc)

Security

  • oAuth
  • LDAP
  • IP White / Blacklist
  • Exponential login timeout

Extensibility

  • ECMA5 (JavaScript…

Top comments (0)