README.md 9.0 KB

Image

中文說明

Updates: As PHP (the lanuage itself) is deprecating, we are moving our system to Go (Or golang) in the coming months. Data migration guideline will be provided later. If you have any questions, feel free to create a new issue.

ArOZ Online System / aCloud

Personal Cloud Platform with Web Desktop Environment for Raspberry Pi 3B+ or 4B. A place to start cloud music and video streaming, data storage, lightweight office work / text processing, 3D printing file previews, Cloud programming IDE and more!

WARNING! THIS SYSTEM IS STILL IN BETA PHRASE.

Getting Started

These instructions will guide you through the deployment of a copy of ArOZ Online System on your own Raspberry Pi or other low power, Linux running SBCs for community review and testing purposes. Read more on the Full System Documentation.

Docker

Follow the instruction from this repo: https://github.com/Saren-Arterius/aroz-dockerize

Prerequisites

The following packages are required for the system to run on your Linux system.

  • apache2
  • libapache2-mod-xsendfile
  • php libapache2-mod-php php-cli php-common php-mbstring php-gd php xml php-zip
  • php-mysql (Optional)
  • libav-tools / ffmpeg (Optional)
  • samba (Optional)

To install the package above, copy and paste the following lines into your ssh terminal line by line.

# Add the following line if you are using a fresh install of Debian Buster
sudo apt-get install unzip net-tools ntfs-3g dosfstools -y
sudo apt-get update
sudo apt-get install -y apache2
sudo apt-get install -y php libapache2-mod-php php-cli php-common php-mbstring php-gd php-xml php-zip 
sudo apt-get install libapache2-mod-xsendfile
# The lines below are optional. But it is recommended to install them for future uses
sudo apt-get install php-mysql
# Use libav-tools instead of ffmpeg if you are still using Debian Jessie
sudo apt-get install ffmpeg
sudo apt-get install samba

Prebuilt Image File

To install ArOZ Online System to your Raspberry pi, you can use the prebuilt image file for Raspberry Pi 4B / 3B+. You can find the image in the link below:

WORK IN PROGRESS

Manual Installation

Overview

ArOZ Online System is only tested on Debian Jessie and Debian Buster. Before installing the ArOZ Online System, you need to install necessary software package as shown in the Prerequisites section.

Configuring PHP

ArOZ Online is not compatiable with the default PHP settings.

Edit php.ini to increase the max file upload size setting. On Debian systems, the php.ini file can usually be found in /etc/php/{php-version}/apache2/php.ini. Change these two lines below as follows:

upload_max_filesize = 2048M
post_max_size = 2048M

Configuring Permissions

Certain features of ArOZ Online System requires explicit authorization through configuration files.

If you are not familiar with sudoer configuration syntax, open /etc/sudoers with nano and add the following to the end of file.

www-data ALL=NOPASSWD: /usr/bin/mount, /sbin/mount.ntfs-3g,  /usr/bin/ntfs-3g, /usr/bin/umount, /sbin/halt, /sbin/reboot, /sbin/poweroff, /sbin/ifconfig, /sbin/ip, /sbin/mkfs.ntfs, /sbin/mkfs.vfat

(Use the above settings only if you are hosting the system in your local area network. Please adjust this to suit your needs if you are allowing the access of the system from the internet.)

If you are familiar and want to have much better control of the system security, add the lines that fits your need according to the selections below.

  • Allow the system to mount and unmount your USB drives

    www-data ALL=NOPASSWD: /usr/bin/mount, /sbin/mount.ntfs-3g, /usr/bin/umount

  • Allow system to be powered off via the Web UI

    www-data ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
    
  • Allow system to access local area network IP address and WiFi network settings

    www-data ALL=NOPASSWD: /sbin/ifconfig, /sbin/ip
    
  • Allow system to format and erase partitions

    www-data ALL=NOPASSWD: /sbin/mkfs.ntfs, /sbin/mkfs.vfat
    

TO BE ADDED

Apache Settings

Edit /etc/apache2/apache2.conf, add the following two lines to the end of file

XSendFile on
XSendFilePath /media

Creating directories

Create directory at /media/storage1 and /media/storage2

sudo mkdir /media/storage1 /media/storage2

Installing ArOZ Online to webroot directory

You will need to download and install the ArOZ Online System to your webroot (/var/www/html/). Navigate into the web root using the following command

cd /var/www/html/

And then download the repo as zip, unzip the src folder into /var/www/html and rename src to AOB. You can do this using WinSCP if you on Windows. Otherwise, you can use git clone command similar to the example below. Make sure you have installed git using sudo apt-get install git before running git command.

git clone https://github.com/tobychui/ArOZ-Online-System/
sudo mv ArOZ-Online-System/src ./AOB
sudo rm -rf ./ArOZ-Online-System
  
sudo mkdir -p "/etc/AOB"
sudo chmod 777 -R "/etc/AOB"
sudo chmod 777 -R ./AOB
sudo chown -R www-data ./

Testing

Open your default browser and visit the http://{Raspberry_Pi_IP_Address}/AOB/ and follow the on scren guide for setting up a new user.

Preview / Screenshots

Image Image Image Image Image Image Image Image

Click here for more preview screenshots

Versioning

Different major change in versioning will lead to an upgrade to the codename. Here are a list of versions currently ArOZ Online System provides.

Version Number Code Name Major Change Type (Barebone / Pre-release / Full* )
Before Beta 1.1.4 Aloplex N/A Full
Before Beta 1.2.8 Sempervivum Tectorum N/A Full
Beta 12-06-2019 aCloud Init Release Pre-release

*Full versions are only available for internal developers or testers for testing purposes only.

Author

Developers

(Blame them if you encounter any bugs within the system)

  • tobychui - Project initiator / System Developer / Core Modules designer and programmer
  • yeungalan - Module maintainer / Network Setting Module developer

Beta Testers

(Find them if you want to know how to use a specific function in the system)

License

Build-in Multimedia Modules (Audio / Photo / Video) - MIT License

Desktop Module (Desktop) and its utilities - All Right Reserved, MIT License ONLY on Raspberry Pi and other ARMv6, v7 or ARM64 based SBC for non-commercial purposes.

All core scripts and binary files under root (./) and System Script Folder (SystemAOB/*) - tobychui feat. ArOZ Online Project, All Right Reserved.

All other files or modules that is not covered by the license above - See the module's license for more information.

THIS SOFTWARE IS ONLY FOR PERSONAL AND NON COMMERCIAL USE ONLY. RE-SELL ,DISTRIBUTE OR CLAIM THIS AS YOUR OWN WORK IS PROHIBITED

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Please seek for author approval if you want to deploy this system for purposes other than personal (e.g. home NAS, private media server, automation control in your room etc) and educational (e.g. school projects, course demos etc)

Acknowledgments

Special thanks for the following projects which bring insights to this project.

TocasUI by Yami Odymel - https://tocas-ui.com/

Threejs by Mrdoob - https://threejs.org/

Q&A

TO BE ADDED

Buy me a coffee

Actually I don't drink coffee. Send me something that would make me feel interested if you really want to send me something :)