Actualmente dentro de un proyecto en el cual me exige la edición online de Documentos, nos topamos con pared en el mismo, sin embargo gracias al bendito Software Libre encontramos un proyecto reciente llamado Collabora Online el cual tiene como objetivo crear una versión online del ya conocido Libre Office sería muy aventurado decir que es una competencia libre a Google Docs o en su caso a Office 365.
Sin embargo gracias al soporte brindado por la comunidad de Collabora así como NextCloud, podemos encontrar esta opción como un claro proyecto que busca en su momento hacerle competencia, creanme que desde este momento me uno a la comunidad y al proyecto para utilizar esta opción dentro de nuestras aplicaciones.
En el presente tutorial instalaremos Collabora dentro de Ubuntu 18.04, sin utilizar Docker, y paso a paso haremos pruebas para que puedan comprender en su momento como utilizarlo.
Utilizando las instrucciones de la siguiente página:
https://www.collaboraoffice.com/code/linux-packages/
Seguiremos los siguientes pasos:
Paso 1: Importar el key de CollaboraOffice
Para importar el key de CollaboraOffice a nuestra lista de repositorios, ejecutando el siguiente comando:drakofire@drakofire:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D Executing: /tmp/apt-key-gpghome.t6UjMsgnxH/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D gpg: recepción del servidor de claves fallida: Expiró el tiempo de conexión
mmm bueno primer problema... No se si esto es un problema de firewall o algo al respecto, pero! no se preocupen lo resolveremos.
Lo que deberemos de hacer es bajar la llave de pública de forma manual, para ello abrimos la siguiente URL:
https://keyserver.ubuntu.com/
Una vez dentro de la página como lo vemos en la siguiente imagen:
Nos responderá con las llaves del repositorio de Ubuntu, veremos algo como lo siguiente:
Damos clic en donde dice "pub 2048R/F4BA284D 2013-11-27" (la parte del link que de hecho en la imagen que ya di clic).
Nos aparecera la key algo como esto:
Copiamos todo el contenido (todo el contenido de la página donde esta la key) y lo pegamos a un archivo de texto. Guardamos el archivo de texto con el nombre que queramos, yo le puse collabora-key.txt
Una vez realizado esto ahora partimos a ejecutar el siguiente comando que lo que hará es importar la public key para nuestro repositorio:
drakofire@drakofire:~$ sudo apt-key add collabora-key.txt OK
Ya tenemos la key importada, ahora lo que realizaremos es añadir el repositorio de Collabora Online, para ello abrimos con un vim o en su caso kate, nano, lo que uds gusten
drakofire@drakofire:~$ sudo vim /etc/apt/sources.list
Añadimos el siguiente repositorio
## Collabora Office deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./
Guardamos el archivo y partimos a actualizar el apt
drakofire@drakofire:~$ sudo apt update
Si no marco nada extraño vamos de gane 😀
Paso 2: Instalar los paquetes de Collabora Office
Realizados los pasos anteriores instalamos los paquetes con el siguiente comando tomado del link original de Collabora:
drakofire@drakofire:~$ sudo apt update && sudo apt install loolwsd code-brand
Esperamos a termine la intalación de los paquetes.
Paso 3: Configurar Collabora Office
Ya teniendo instalados los paquetes verificamos el servicio que instala con el siguiente comando:
drakofire@drakofire:~$ systemctl status loolwsd ● loolwsd.service - LibreOffice Online WebSocket Daemon Loaded: loaded (/lib/systemd/system/loolwsd.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2019-04-22 17:29:06 CDT; 14min ago Process: 31068 ExecStart=/usr/bin/loolwsd --version --o:sys_template_path=/opt/lool/systemplate --o:lo_template_path=/opt/collaboraoffice6.0 --o:child_root_path=/opt/loo Main PID: 31068 (code=exited, status=70)
Bueno ya tenemos instalado el servicio, y ahora haremos las configuraciones necesarias para poder probar el servicio, primero tendremos que crear el archivo donde se escribirá el log.
drakofire@drakofire:~$ sudo touch /var/log/loolwsd.log drakofire@drakofire:~$ sudo chown lool:lool /var/log/loolwsd.log
El segundo comando fue para cambiar el propietario a lool que es el usuario por default que crea Collabora Office para poder ejecutar el servicio.
Una vez realizado este proceso, partimos a realizar algunas configuraciones dentro del lool para poder ejecutarlo.
Primero abrimos el archivo de configuración el cual es /etc/loolwsd/loolwsd.xml
drakofire@drakofire:~$ sudo vim /etc/loolwsd/loolwsd.xml
(recuerden que pueden usar el editor que mas les plasca! nano, gedit, kate, etc...)
Primero activamos el logfile a esto cambiamos la siguiente línea:
<file enable="false"> <property name="path" desc="Log file path.">/var/log/loolwsd.log</property>
activamos el log solo poniendolo en true
<file enable="true"> <property name="path" desc="Log file path.">/var/log/loolwsd.log</property>
Desactivamos los certificados SSL para poder ejecutarlos de caso contrario deberemos de crearlos y colocar etc. etc, eso quizá lo veremos en otro artículo por el momento simplemente desactivemoslo cambiando el siguiente parametro a false
<ssl desc="SSL settings"> <enable type="bool" desc="Controls whether SSL encryption is enable (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">true</enable>
<ssl desc="SSL settings"> <enable type="bool" desc="Controls whether SSL encryption is enable (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">false</enable>
Ahora deberemos de configurar que permite el acceso y creación de archivos de forma local, esto lo hacemos modificando el siguiente parametro.
<storage desc="Backend storage"> <filesystem allow="false" />
<storage desc="Backend storage"> <filesystem allow="true" />
Con ello damos por terminada la configuración básica.
Paso 4: Inicio y Pruebas de Collabora Office
Una vez realizado esto, podemos iniciar el servicio con el siguiente comando:
drakofire@drakofire:~$ sudo systemctl start loolwsd
Recuerden que podemos ver el log con el siguiente comando:
drakofire@drakofire:~$ tail -f /var/log/loolwsd.log
Para poder revisar el proceso de que esto quedo bien, vamos a la siguiente URL, y verificamos el servicio web en la siguiente URL http://localhost:9980/
Veremos algo como lo siguiente:
Esto significa que nuestro servicios esta funcionando 😁
Muy bien ahora que venga lo interesante. Probaremos el editor Collabora Office
Podemos crear una carpeta en la cual le demos permisos a el usuario lool para que pueda acceder a los archivos. Y ahí colocar nuestros ficheros odt.
Creamos el directorio:
drakofire@drakofire:~$ sudo mkdir /opt/documents drakofire@drakofire:~$ sudo chown lool:lool /opt/documents -R
Copiamos cualquier archivo para editarlo (recuerden los permisos)
drakofire@drakofire:~$ sudo cp hello.odt /opt/documents drakofire@drakofire:~$ sudo chown lool:lool /opt/documents -R
Y ahora accedemos a la siguiente URL:
http://localhost:9980/loleaflet/dist/loleaflet.html?file_path=file:///opt/documents/hello.odt