Introduction: OwnCloud RaspberryPi, Sincronizar Archivos Automaticamente

ownCloud es un servicio similar a Dropbox, pero al tener gran parte openSource, podemos montar nuestro propio servidor para los fines que nos parezcan convenientes.

En mi caso trabajo mucho con código, la mayoría del tiempo estoy programando, al tener un portátil que llevo al trabajo y una PC de escritorio en casa me resultaba incomodo estar sincronizando manualmente, intente hacerlo con git, pero era mas trabajo. Así que decidí montar el servicio de ownCloud en un Raspberry Pi, y hacerlo portátil(aun falta esta parte)! así ademas de que el sincronizar se efectúa automáticamente(solo necesita estar conectado a la red), tengo un respaldo de mis archivos!

Algo importante es que al estar el servidor en la red local la sincronizacion es muy rápida y no molesta la conexión a Internet, para los GAMERS quiere decir que no hará LAG :D

Step 1: Instalar Requisitos

En caso de usar un Raspberry Pi y no tener raspbian instalado puedes seguir este instructable y luego continuar acá!
https://www.instructables.com/id/Raspberry-Pi-SIN-PANTALLA/

Antes de instalar ownCloud en nuestro servidor debemos tener instalado un servidor SQL, un servidor Web, y un interprete de php, a lo que usualmente se le llama LAMP[Linux, Apache, MySQL, PHP] (por aquello, WAMP es es lo mismo pero en Windows).
Para ello ejecutamos esta linea en una terminal de nuestro servidor:

sudo apt-get install apache2 mariadb-server libapache2-mod-php5 php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick

Esto tomara unos minutos, a la mitad de la instalación saldrá una ventana preguntando por una contraseña para el usuario root de la base de datos, crea una suficientemente compleja tendrás que ponerla 2 veces, no la olvides! la ocuparemos luego.



Step 2: Configurando Servidor Web, Apache

Para que ownCloud funcione adecuadamente debemos activar algunos módulos de Apache, para ello ejecutaremos uno a uno los siguientes comandos:

sudo a2enmod rewrite
sudo a2enmod headers sudo a2enmod env sudo a2enmod dir sudo a2enmod mime

Configuraremos el directorio de trabajo de ownCloud, ejecutamos:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Bajamos hasta posicionarnos debajo de la linea que dice :

  • DocumentRoot /var/www/html

Y pegamos el siguiente texto:

<Directory /var/www/html/>

Options +FollowSymlinks AllowOverride All

SetEnv HOME /var/www/html

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/html

SetEnv HTTP_HOME /var/www/html

</Directory>

Para aplicar los cambios reiniciamos el servidor web(apache), para ello ejecutamos el comando:

sudo systemctl restart apache2

Si desde una computadora que este conectada a la misma red que nuestro servidor, abrimos el navegador y accedemos a la dirección http://raspberrypi.local deberías poder ver una pagina de bienvenida de Apache, similar a la ultima imagen de este paso.

Step 3: Configurar Base De Datos, MySQL

Primero vamos a realizar un paso de seguridad para la base de datos, vamos a ejecutar un comando llamado mysql_secure_installation que lo que hacer es hacer una limpieza de cosas inseguras que trae el servidor por defecto.

mysql_secure_installation
  1. Lo primero que nos pide es la contraseña del usuario root (la que tecleamos en el primer paso).
  2. Luego nos pregunta si queremos cambiar la contraseña de el usuario root, n
  3. Remover los usuario anónimos, Y
  4. Deshabilitar el acceso del usuario root remotamente,Y
  5. Eliminar las tablas de pruebas: Y
  6. Recargar los permisos: Y
  7. Y de ultimo nos agradece! :D

Ahora vamos a crear una base de datos y un usuario que pueda usar la misma, para ello usaremos el cliente sql que se instala por defecto con la MySQL, ejecutamos el comando:

mysql -u root -p
  1. Tecleamos la contraseña del usuario root de la base de datos (la que tecleamos en el primer paso)
  2. Creamos la base de datos:
    • CREATE DATABASE owncloud;
  3. Creamos el usuario, OJO: cambiar contrasenia por una contrasenia de verdad, recuerdala por que la necesitaremos mas adelante!
    • CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'contrasenia';
  4. Otorgamos todos los permisos de la base de datos a este usuario:
    • GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost';

  5. Recargamos los permisos:
    • FLUSH PRIVILEGES;

  6. Salimos del cliente sql:
    • quit

Step 4: Instalando OwnCloud

Primero necesitamos descargar el paquete del ownCloud, para ello vamos a el siguiente enlace: https://owncloud.org/install.

Vamos a una parte media enredada por el diseño y construcción de la pagina.

Clikeamos en el Download de Get ownCloud Server, nos salta una pestaña, preguntando si queremos la versión Interprise(de pago), seleccionamos la versión NO Interprise, dice solamente Download ownCloud Server, después de ello llegamos a una pestaña similar a la primera imagen de este paso.

Damos click derecho sobre el boton Download ownCloud Server, y seleccionamos una opción que dice Copiar origen del enlace, varia de un navegador a otro.

Ahora regresamos a la terminal (como la extrañe).

Descargamos ownCoud con el comando wget, en mi caso queda de la siguiente forma:

wget download.owncloud.org/community/owncloud-9.1.4.zip

Descomprimimos el archivo que acabamos de descargar con el comando unzip:

unzip owncloud-9.1.4.zip

Eliminamos la carpeta por defecto de apache:

sudo rm -rf /var/www/html

Movemos ownCloud a la carpeta de apache:

sudo mv owncloud /var/www/html

Cambiamos en dueño de la carpeta:

sudo chown www-data:www-data -hR /var/www/html


Step 5: Configurando OwnCloud

Ahora refrescamos la pagina que habíamos abierto previamente, si la cerraste no importa acá esta el enlace: http://raspberrypi.local ahora luce muy diferente, y nos muestra una pantalla de configuración.

  1. Los dos primeros campos son para el primer usuario administrador y su contraseña!
  2. Los siguientes campos son la configuración de la base de datos, donde la base de datos es owncloud, el usuario es owncloud, la contraseña que cambiaste en el paso 3 y el servidor es localhost
  3. El data folder no hace falta cambiarlo, si lo cambiar debes de asegurar que exista y que el usuario www-data tenga permisos de lectura/escritura.
  4. Das clic en Finish Setup, esto demorara uno o dos minutos, ya que esta creando las tablas en la base de datos y creando una jerarquía de directorios para los datos.

Al terminar de cargar te mostrara una pagina con opciones para descargar los distintos clientes, descarga el que corresponda y configura lo, lo primero que te va a preguntar el el Server Addres, este es http://raspberrypi.local, los demas datos los sabes tu. Antes de finalizar te preguntara que quieres sincronizar, yo cambie la ruta local y puse mis documentos para que se sincronicen de forma automática sin necesidad de moverlos a ningún lugar.

Con esto ya tenemos nuestro servidor de datos local configurado y andando!

Espero les sea de utilidad.