Crea tu propia nube con Raspberry Pi y OwnCloud

Hoy vamos a ver otra de las múltiples aplicaciones para, el ya comentado muchas veces, minicomputador Raspberry Pi. Por solo 35 dólares tenemos ante nosotros un increíble abánico de posibildades y proyectos que harán las delicias de los más manitas y amantes del DIY, Do It Yourself! o ¡Hazlo tu mismo!.

En este caso específico vamos a ver como usar nuestra Raspberry Pi para crear nuestra propia plataforma en la nube. Vamos a utilizar para ello el apodado la comunidad Dropbox Open Source, estamos hablando de Owncloud.
Para quien no lo sepa Owncloud es una increíble plataforma que nos permite por medio de nuestro propio servidor almacenar archivos en línea, además de funcionalidades muy interesantes como son el streaming de música directamente desde el servidor, un editor de textos online, un visor de documentos o una galería de imágenes en línea. Una plataforma que nos dará un control total sobre nuestros archivos desde cualquier dispositivo que usemos.
Para el desarrollo de este proyecto necesitarás a parte de tu Raspberry Pi, un disco duro externo o llave USB que usaremos para almacenar los datos, también podemos utilizar la propia tarjeta SD de nuestra Rasp.
Configurando nuestra conexión e instalando el servidor
Lo primero que haremos será editar el archivo de interfaces de red para darle a la Raspberry una IP fija, usaremos el siguiente comando para editar dicho archivo:
sudo nano /etc/network/interfaces
Una vez abierto el archivo deberás modificarlo para que quede de esta manera, puede que el campo address sea diferente en tu caso.
auto eth0
iface eth0 inet static
address 192.168.1.118
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
Tras editar el archivo usaremos Ctrl+O para guardar el archivo y Ctrl+X para salir del editor. Reiniciaremos entonces nuestro adaptador de red de la siguiente manera:
sudo /etc/init.d/networking restart
Procederemos entonces a actualizar los repositorios y la propia Raspberry Pi y luego instalaremos todo el software necesario para el servidor:
sudo apt-get update
sudo apt-get install apache2 php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl4-openssl-dev php5-curl php5-gd php5-cgi php-pear php5-dev build-essential libpcre3-dev php5 libapache2-mod-php5 php-apc gparted
Configurando PHP y Apache
Una vez descargado todo el software vamos a proceder a configurar paso a paso toda nuestra infraestructura, comenzaremos instalando PHP APC, hará que las paginas carguen de manera más rapida: sudo pecl install apc
Tras la instalación crearemos el archivo apc.ini:
sudo nano /etc/php5/cgi/conf.d/apc.ini
y añadiremos lo siguiente dentro del archivo:
extension=apc.so
apc.enabled=1
apc.shm_size=30
Ahora vamos a modificar el PHP.ini para cambiar el tamaño máximo de los archivos que subamos a nuestra nube y añadiremos la extensión APC. Abrimos el archivo de la siguiente forma:
sudo nano /etc/php5/apache2/php.ini
Cambiaremos los siguientes valores, esto nos permitirá subir archivos hasta 1GB de tamaño y habilitaremos la anteriormente mencionada extensión.
**upload_max_filesize** = 1024M
**post_max_size** = 1200m
**extension** =apc.so
Ahora activaremos SSL en Apache. que hará mas segura nuestra plataforma, primero abrimos este archivo de configuración:
sudo nano /etc/apache2/sites-enabled/000-default
y modificamos el valor Allow over ride a All ,debe estar por defecto en None.
Pasamos ahora a instalar SSL con los siguientes comandos:
sudo a2enmod rewrite
sudo a2enmod headers
sudo openssl genrsa -des3 -out server.key 1024; sudo openssl rsa -in server.key -out server.key.insecure;sudo openssl req -new -key server.key -out server.csr;sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt;sudo cp server.crt /etc/ssl/certs;sudo cp server.key /etc/ssl/private;sudo a2enmod ssl;sudo a2ensite default-ssl
Cuando hayamos hecho todo esto reiniciamos Apache para que los cambios tomen efecto:
sudo service apache2 restart
Descargando e instalando Owncloud en nuestro servidor
Si has llegado hasta aquí te has quitado ya todo el trabajo sucio, solo quedan unos cuantos comandos por ejecutar y tendremos nuestra propia nube perfecta y funcionando. Con los siguientes comandos descargaremos Owncloud, lo copiaremos en nuestro servidor y lo haremos accesible:
wget download.owncloud.org/community/owncloud-5.0.0.tar.bz2
sudo tar -xjf owncloud-4.5.1.tar.bz2
sudo cp -r owncloud /var/www
sudo chown -R www-data:www-data /var/www/owncloud/
Finalmente modificaremos el archivo .htaccess para permitir que el tamaño máximo del archivo cargado sea el mismo que el que pusimos en Php.ini:
sudo nano /var/www/owncloud/.htaccess
Configurando Owncloud
Lo primero que vamos a hacer es permitir que el servidor modifique nuestro dispositivo externo modificando los permisos desde el terminal, de la siguiente manera:
sudo chown -R www-data:www-data /media/owncloud
Ya hemos llegado al final del tutorial, solo nos queda poner en nuestro navegador la dirección http://NUESTRAIP/owncloud , elegiremos un nombre de usuario y una contraseña y en el apartado Avanzado podemos modificar la localización de nuestro almacenamiento. Pulsa en Finish y ya tendrás tu nube lista, podrás subir tus archivos a tu nueva plataforma.