Cómo montarte tu propio servicio de alojamiento de ficheros en cloud tipo Dropbox con ownCloud en Ubuntu en una guía “pa tontos”

Al dedicarnos en esta web a los temas de formación tecnológica nos gusta hacer artículos en donde enseñamos a la gente a hacer cosas como ésta: un dropbox casero. En esta startup tecnológica somos defensores de las tecnologías de software libre y somos fanáticos defensores del mundo apache, php y mysql. Según estudios recientes la mayoría del trabajo a nivel tecnológico en los próximos años estará relacionado con “el cloud computing”, es decir en servicios informáticos basados en internet, conocidos popularmente como la nube. Uno de estos servicios más populares es el de alojamiento de ficheros, que dan empresas como Dropbox, Sugarsync y Box.net. Incluso Google se ha apuntado al carro con Google Drive recientemente, lo cual significa que es una cosa puntera, porque Google no da puntada sin hilo. El problema de estos servicios es que si necesitas mucha capacidad no son gratuitos. Normalmente te suelen ofrecer entorno a 5GB de manera gratuita. De todos ellos yo utilizo Dropbox por su facilidad de uso y porque te permite tener sincronizados “en la nube” los datos en mi caso de un portátil MacBook Pro con arranque dual Mac OSX – Windows 7, un portátil HP Pavilion con un arranque dual Windows 7 – Ubuntu, un netbook con arranque dual Windows XP – Ubuntu Netbook Edition, un iPhone y un iPad, ahí va eso. El recelo que suscita la nube suele venir por el miedo a la integridad y la confidencialidad de los datos, por eso de que confías tus datos a un servicio externo que no controlas. Pero eso se puede subsanar montando tu propio servicio de alojamiento de ficheros por cloud, en donde la capacidad del servicio de cloud depende de la capacidad del disco de tu máquina. (si tienes por ejemplo un disco de 500 GB tendrías aproximadamente 500 GB de datos disponibles, siempre algo menos, porque hay que descontar unos 5 ó 10 GB que es lo que suele ocupar el sistema operativo y el software de cloud).

Pues aquí teneís unas instrucciones “pa tontos” como dicen en mi pueblo, para montar uno de estos servicios. Me basaré en uno que se ha convertido en el más popular últimamente que se llama ownCloud (www.owncloud.org) basado en Apache y PHP (Mysql es opcional porque por defecto instala sqlite). Si uno se va a esta url del producto vienen las instrucciones de instalación para Ubuntu, en esta otra para OpenSuse, Fedora, CentOS5, Gentoo y MacOSX e incluso aquí vienen las instrucciones para Windows.

Yo me restringiré a Ubuntu, porque como saben los que siguen este blog, Ubuntu es mi sistema operativo favorito como podéis ver en este artículo que hice hace 5 años (por cierto HP, en donde trabajo impartiendo formación tecnológica, acaba de certificar sus servidores Proliant para Ubuntu 12.04) A ver si me veo dentro de poco dando cursos de Ubuntu, je,je!

INSTALACION DE UBUNTU

Lo primero que tenemos que hacer es tener una máquina física o virtual con Ubuntu, preferiblemente con la última versión, la 12.04. Yo lo he probado con una máquina física Ubuntu actualizada a 12.04 recientemente en mi netbook y con una máquina virtual de Ubuntu 12.04 en el portátil HP pavilion con VMWare Workstation montado sobre Windows y en ambas funciona perfectamente. La parte de instalación de Ubuntu 12.04 os la dejo aquí en este vídeo muy bien explicado. (primero logicamente hay que bajarse el ISO de la instalación que os la podéis bajar de aquí, concretamente la versión Ubuntu Desktop aunque también podría ser la versión Ubuntu Server)

INSTALACION DE OWNCLOUD

Recién instalado nuestro Ubuntu las instrucciones que tenemos que que lanzar en una consola son las siguientes: (cuando ejecutemos el comando sudo nos pedirá la password de nuestro usuario que nos definimos en la instalación del Ubuntu)

$ sudo apt-get install apache2 php5 php5-sqlite php5-json php5-gd (paquetes necesarios para la instalación de ownCloud)

$ wget http://owncloud.org/releases/owncloud-3.0.0.tar.bz2 (nos bajamos a nuestra máquina la última versión del ownCloud a fecha de hoy , la 3.0)

$ tar -jxvf owncloud-3.0.0.tar.bz2 (la descomprimimos)

$ sudo cp -r owncloud /var/www  (copiamos la carpeta descomprimida al directorio de apache)

$ cd /var/www

$ sudo chown -R www-data:www-data owncloud (hacemos que el directorio que hemos copiado sea accesible por Apache)

$ sudo service apache2 restart (para que la base de datos sqlite arranque correctamente en el interfaz web al haberse instalado apache y sqlite juntos)

Después de esto tenemos el servicio de cloud funcionando en local. Si hacemos en el navegador

http://localhost/owncloud nos sale este interfaz

ownCloud-Inicial

en donde tendremos que poner un nombre a la cuenta de administrador (por ejemplo admin) y una password que no se nos debe olvidar por lo que más queráis…

Una vez hecho esto ya tenemos ya la pantalla inicial

pantalla-inicial

Como véis en la parte inferior izquierda hay un icono que despliega herramientas administrativas, como la definición de nuevos usuarios con distintos perfiles que no tienen porqué ser de administrador, e incluso definir grupos de usuarios. Antes de empezar a subir ficheros, donde pone el icono de la fecha hacia arriba al lado de Nuevo, tenemos que modificar unas variables en el php porque si no nos dejará subir ficheros de más de 2 MB.

Editamos el php.ini

$ sudo vi /etc/php5/apache2/php.ini (si tenéis problemas con el vi hacéis sudo gedit /etc/php5/apache2/php.ini y te abre una especie de notepad para windows)

y cambiamos estas variables a estos valores ( o los que queramos que sean el límite de tamaño de fichero gestionable)

post_max_size = 200M
upload_max_filesize = 200M

y finalmente reiniciamos de nuevo apache para que se apliquen los cambios:

$ sudo service apache2 restart

CONFIGURACION DE DNS DINAMICO Y APERTURA DEL PUERTO 80 EN EL ROUTER

Lo siguiente es conseguir que nuestro servicio de ficheros en cloud, que de momento es local, esté accesible desde cualquier sitio en internet. Como el 99% de las líneas ADSL de nuestro país tienen ip pública dinámica tendremos que hacerlo a través de DNS dinámico. La mayor parte de los routers tienen una pantalla de configuración de DDNS en donde se pueden poner las credenciales de un servicio del tipo dyndns o TZO para obtener la dirección dinámica. Nos vamos por ejemplo a www.dyndns.com y nos damos de alta dando la dirección de un host, registrándonos previamente en la web

ddns

A continuación lo que hay que hacer es vincular en el router el nombre de host que nos hemos definido  y nuestro usuario y contraseña de nuestro acceso a www.dyndns.org para que sea el router el que cambie la ip del host grimores.dyndns.org  cada vez que cambie la ip pública del router. Estas instrucciones concretas dependerán del router que tengamos, como ejemplo aquí tenéis las instrucciones para un router Linksys. o este otro para un router Zyxel

También tenemos que abrir el puerto 80 (el de http) en el router a la dirección ip de la máquina linux (se saca con un comando ifconfig en la máquina ubuntu en donde está alojado el servicio de owncloud.También conviene dejar por ip fija la configuración de la ip en el servidor, para que no nos cambie a través de dhcp. Aquí tenéis un pantallazo del mío, pero eso dependerá del router concreto.

apertura-puerto-801

A partir de ahora desde cualquier sitio de internet ya se accerá a nuestro servicio a través de

http://grimores.dyndns.org/owncloud

INSTALACION DE CLIENTES

Aunque el tema de clientes no es estrictamente necesario, porque accediendo desde internet a la url http://grimores.dyndns.org/owncloud tenemos acceso al sistema en cualquier dispositivo, sea windows, mac osx, linux, iphone, ipad, android, etc, viene bien instalarlo porque es muy cómodo ya que el cliente hace una replicación local de los ficheros de la nube y los cambios que hagamos en ellos los sincroniza automáticamente

En este enlace tenéis los distintos clientes, que de momento, a fecha de hoy (2-05-2012), son pocos: hay uno para windows, que he probado, otro para Ubuntu, que no me funciona porque es para Ubuntu 11.04 o 11.10 (yo tengo 12.04) y prometen para pronto clientes para Mac y dispositivos móviles.

Cuando te instalas el cliente windows te genera un directorio clientsync en la estructura de directorios del servidor que sincroniza con lo que metas en el directorio por defecto de sincronización del pc windows (un directorio ownCloud que cuelga del usuario en el que instalamos el cliente, en mi caso c:\users\juanluis\owncloud)

Aunque todavía no hay estos clientes, no significa que no nos podamos conectar al servicio sin navegador, porque realmente lo que nos hemos montado es un servicio WebDAV, con lo que con cualquier cliente webdav nos podremos conectar en un iPad, iPhone, Mac, Linux o lo que sea. Yo me he bajado gratis de la app store uno para el iPad y el iPhone que se llama WebDav Nav en donde definiendóle las credenciales: del servidor WebDAV

URL: http://grimores.dyndns.org/owncloud/files/webdav.php

usuario: admin (o el que nos hubiésemos definido)

password: la que le hayamos puesto

tenemos acceso a los ficheros como podéis ver en este pantallazo

la-foto

 

Fuente: Mi blog personal