Title: readme.txt
Description: Installation guide for 'vDrive'
Author: Vinay Babu Reddy
===================================================================================================
Welcome to 'vDrive' - your own Cloud Drive!
- 'vDrive' is a Cloud File Manager, optimized for media and touch screen
- Unified experience across all platforms - desktop, laptop, tablet, mobile, etc.
- Native app like smooth animations and support for swipe/scroll gestures
- An intuitive file manager with a simple Doc Viewer, Music Player, Photo Viewer and Video Player
- A detailed access logs
Requirements:
- Server: web server (like Apache HTTP) with PHP 5.2+, or AMP server like EasyPHP
- Client: HTML5 compliant browser (Chrome 25+, Firefox 20+, IE 10+, Safari on iOS 6+, Chrome on Android 4.0+)
Installation:
- Download 'vDrive' and uncompress it on your "www" root directory
- Restrict permissions on "_session" to make sure it is not accessible on web
- This folder contains password file with SHA256 encryption and session files
- The default password is 'vdrive'. Needless to say, change the password
- If you are installing on Linux like raspberry pi, refer the below section for installing Apache and PHP
'vDrive' contains 4 Directories:
- 'Docs': You can store - HTML, TXT, PDF, ZIP, DOC(x), XLS(x) and PPT(x) files
- In the current version, thumbnails are not generated
- Docs (pdf, html & txt) are opened in an inbuilt Doc Viewer, the rest are downloaded to local PC
- 'Music': You can store - MP3 and OGG files
- Thumbnails are downloaded from net using "Google" search engine
- Music is played in the custom Music Player
- 'Photos': You can store - JPG, PNG and GIF files
- Thumbnails are generated automatically
- Photos are displayed in custom Photo Viewer
- 'Videos': You can store - MP4 and OGV files
- Thumbnails are generated automatically
- Videos are displayed in an inbuilt Video Player
With vDrive's easy-to-use interface:
- You can browse or search for files/folders
- Create directories, subdirectories and manage files by uploading, renaming or deleting
- App is downloaded to cache to enable smooth interaction; hence, remember to log off if you are on shared PC
Note:
- For optimum performance, keep the file count below 300 in a directory
- Special characters in file names are not allowed except ("_" "." "'" "-" "()" and space)
- "thumbs" is a reserved key word and cannot be used to name a directory
- Directories with name "private" are not shown while browsing. To view the content, enter the full path directly in address bar. Ex: http://mysite/index.html#DATA/Photos/other/private/
- Once logged in, the session is valid for 30 days. The session files are cleaned-up automatically thereafter
- If you are accessing a directory for the first time, the first few attempts may fail - depending on number of files
- This is because the server is generating thumbnails for your files and occurs only if you have copied files via backend
===================================================================================================
vDesk - your own Cloud Desktop:
'vDesk' provides a virtual desktop, where 'vDrive' is installed as one of the Apps
Out of the box, it comes with the below Apps:
- Calculator (courtesy: http://www.calculator.net/)
- Calendar (courtesy: http://www.htmlbestcodes.com/)
- TinyMCE - document editor (courtesy: http://www.tinymce.com/)
- easelJS - Image editor (courtesy: http://code.tutsplus.com/)
- Internet Browser
- vDrive
As with any desktop, you can customize by installing additional Apps or removing any existing Apps
Any HTML and/or php web app will work
Keyboard shortcuts:
- ctrl + tab: Shuffle tabs
- ctrl + Q: Close tab
Installing an App:
- Create a folder in "APPS" directory and place the webapp files there
- APPS/
- calculator/
calc.html
icon.png
- Make an entry in "_config/applist.html":
"Calculator, APPS/calculator/calc.html, APPS/calculator/icon.png"
- To make the webapp available offline, add the file names in "_config/home.appcache"
===================================================================================================
File API:
'vDrive' provides a file API for the Apps to access files in DATA/.
API usage:
Insert the below code in the part of the page where you want to see the file api:
<script id="fileapi_js" type="text/javascript" src="/_config/fileapi.js#Docs"></script>
<div id="fileapi_divfile"></div>
You can replace "Docs" in "src" with other directories like Music, Photos or Videos
The file API button appears which opens 'vDrive'. The selected file/dir name is populated in a textbox.
The below APIs can be used for further operations:
To view content of the selected file:
fileApi.callAPI("readContent",<function to callback>);
To save a text content to the selected file:
fileApi.callAPI("writeContent",<function to callback>,<content of the file>);
To upload a file (like jpg or pdf):
fileApi.callAPI("transferFile",<function to callback>,<base64 encoded file>);
To view a directory list:
fileApi.callAPI("getList",<function to callback>);
The output passed to the callback function is in the below JSON format:
{status: "PASS", message: "File saved"}
status: PASS, FAIL, WARN and INFO
message: contains the output message or actual results when the status is INFO
Example to post an image from canvas:
var canvaspic = canvas_id.toDataURL();
fileApi.callAPI("transferFile",alertStatus,canvaspic);
function alertStatus(xhr_resp) {
alert(xhr_resp.message);
}
Example to read file:
fileApi.callAPI("readContent",populateText);
function populateText(xhr_resp) {
var mytext = document.getElementById('my_textarea');
if (xhr_resp.status == "INFO") mytext.value = xhr_resp.message;
else alert(xhr_resp.message);
}
===================================================================================================
***Installation on Raspberry Pi or any Linux platform***
Run latest updates:
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
Apache and PHP Installation:
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5 php5-gd
sudo service apache2 restart
Static IP Configuration:
ifconfig
netstat -nr
sudo nano /etc/network/interfaces
Add an entry like the below based on the output from "ifconfig" and "netstat -nr"
----
iface www-web inet static
address 192.168.8.200
netmask 255.255.255.0
gateway 192.168.8.1
----
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Add the id_str inside network
----
network={
id_str="www-web"
<along with other details>
}
----
sudo reboot
Optional - add Google NameServer:
sudo nano /etc/resolv.conf
----
nameserver 8.8.8.8
nameserver 8.8.4.4
----
External HDD Auto Mount:
sudo apt-get install ntfs-3g
sudo fdisk –l
sudo mount /dev/sda1 /media/HDD1
Add your username to www-data (apache) group:
sudo usermod -a -G www-data userName
Add an entry for the mount in /etc/fstab file:
id www-data
ls -l /dev/disk/by-uuid/
sudo nano /etc/fstab
----
"<file system> <mount point> <type> <options> <dump> <pass>"
Ex:
"/dev/sda1 /media/HDD1 ntfs-3g defaults,uid=33,gid=33,umask=003 0 0"
"UUID=5482-C3B1 /media/SSD1 vfat uid=33,gid=33,umask=003 0 0"
----
Change www home directory:
sudo nano /etc/apache2/sites-available/000-default.conf
Find the root directory:
DocumentRoot /var/www/html
sudo nano /etc/apache2/apache2.conf
Find the below:
<Directory /var/www/html/>
Options -Indexes
AllowOverride None
Require all granted
</Directory>
and change /var/www/html to your preferred directory in both the locations.
and update AllowOverride None to AllowOverride All - this is to enable .htaccess
To enable items in .htaccess:
For rewrite - sudo a2enmod rewrite
For Headers - sudo a2enmod headers
Misc:
For display port to be changed to RCA, comment the below in /boot/config.txt:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
For USB power jump, add the below in /boot/config.txt:
max_usb_current=1
Optional:
sudo nano /etc/apache2/mods-available/dir.cfn
Add home.html to the list
sudo nano /etc/apache2/ports.conf
Change the listen port
===================================================================================================
** 'vDesk' and 'vDrive' are developed by Vinay Babu Reddy **
** You are free to use and distribute the same, provided the copyright notice and credits are left unchanged **
** The software is provided "as is", without warranty of any kind **
** Do not modify any code. Any recommendations can be sent to vinaybabu_reddy@yahoo.co.in **
** Please also refer the Privacy Policy at http://vinaybabureddy.com **
** Except 'vDrive', all other webapps belong to their respective copyright owners and their terms and conditions apply **
** Icons courtesy: https://www.iconfinder.com/ **