ownCloud + BoxGrinder + PageKite: ownCloud Appliance
UPDATE: This post may possibly be inaccurate (partiually/fully) for newer ownCloud/Fedora/BoxGrinder releases.
UPDATE: ownCloud 4 installation is pretty much similar to ownCloud 3 installation and this shell script here will do the job for you on Fedora. One nit: I ran into error messages as this:
As you can see (on opening the screenshot), there is missing header error from ‘/var/www/html/owncloud/apps/files_odfviewer/appinfo/app.php’. This post here told me that it could be due to a empty line. So that;s it. I went to the file and removed the line no. 8 which was an empty line! And it works fine.
In this post, I shall talk about my experiments about creating an ownCloud appliance so that you can have an ownCloud installation running off a virtual machine . This appliance is based on Fedora Linux and I created it using BoxGrinder. To make it visible to the “outside” world, instead of going through the hassle of port-forwarding, I used the awesome PageKite service. Let’s get started:
Understanding ownCloud Installation (on Fedora)
UPDATE: This shell script here does the job for you.
- Install the following packages: ($ sudo yum install)
- Install the php-zip module as outlined here
- Download ownCloud3 sources from here
- Extract and copy the resultant owncloud/ directory to /var/www/html
- ‘cd’ to /var/www/html and set appropriate permission to owncloud directory so that apache can read/write from/to it: $sudo chown -R apache:apache owncloud/
- Start Apache server: $ sudo service httpd start
- Start MySQL server: $ sudo service mysql start and change the root password using $mysqladmin -u root password PASSWORD
- Create a MySQL database that you want ownCloud to use by going to: http://localhost/phpmyadmin (This step is optional if you want to use SQLite database)
- Start ownCloud: http://localhost/owncloud and setup other users or simply start using for storing files
- Use PageKite to make your cloud publicly accessible as detailed here
ownCloud appliance with BoxGrinder
BoxGrinder is a tool to create software appliances for different virtual machine applications and cloud computing providers. It requires an appliance definition file (.appl file) where the base operating system, the software to be installed and other configuration of the appliance is specified.
Next, we shall follow our earlier steps to install ownCloud on Fedora to create an ownCloud appliance based on Fedora with BoxGrinder. The appliance definition file is here.
Most of it is self-explanatory if you have familiarized yourself with the appliance definition structure. Here I shall talk about the last two sections of the appliance definition file:
If you refer to the steps 2 and 3 of the installation steps, you will understand the reason for downloading these two files in /opt.
– “cd /opt;/bin/tar -zxvf zip;cd zip-1.10.2;phpize;./configure;make;make install;/bin/echo ‘extension=zip.so’ >> /etc/php.ini”
– “cd /opt;bunzip2 -d owncloud-3.0.0.tar.bz2; /bin/tar xvf owncloud-3.0.0.tar;cp -r owncloud /var/www/html/;”
– “cd /var/www/html;chown -R apache:apache owncloud/”
– “/usr/bin/curl -s https://pagekite.net/pk/ | /bin/bash”
The first three lines carry out the steps 2-5 of the installation instructions. The last line installs PageKite to enable setting up a public access
Next, we shall build the appliance. We shall build this appliance for use with VirtualBox. Here is the command:
$ boxgrinder-build -p virtualbox f16-owncloud.appl -d local –delivery-config path:/home/gene/builds
This command will build the appliance and place the gzipped .vmdk file (about 1.4G) in /home/gene/builds. The next step is to create the virtual machine with this as the storage media.
Getting Ready to Serve
Once you have created the virtual machine, boot it and login as the root user (the default password is ‘boxgrinder’. (Enable PAE support from Settings->System->Processor). Then carry out steps 6 and 7 from the installation instruction.
Once that is done, setup PageKite: $pagekit.py –signup and follow the steps. Once the sign up is done, setup your kite using $pagekit.py 80 <yourname>.pagekite.me
Next, carry out steps 8 and 9 from ANYWHERE on the web by replacing localhost by: <yourname>.pagekite.me
And you have your very own ownCloud instance running from a Virtual machine. I hope to experiment with creating appliances for EC2 and others.
Thank you for reading. Kindly let me know if something didn’t work the way it should, or something could be improved here.
I faced a couple of issues while building this appliance. I have posted my query to the BoxGrinder forum here.