Integrant Collabora Online amb NextCloud
Bo, en aquest document, volia mostrar com integrar Collabora a Nextcloud, algú no coneix Collabora? T'imagines tenir el teu propi Google Docs? o el teu Office 365? seria genial, no? Bo doncs Collabora ens permetrà això mateix però de forma totalment gratuïta, tot això basat en LibreOffice. Podrem editar online documents d'ofimàtica i treballar de forma col·laborativa!
Aquest document no només aconseguirem això, sinó que l'integrarem en una màquina amb Nextcloud que ja tenim prèviament preparada. Podent tenir el nostre núvol privat, emmagatzemant les nostres dades al nostre propi CPD, ara podrem permetre que els usuaris treballin amb els documents d'Office de manera en línia, que els editin des del propi navegador, i a més múltiples usuaris poden treballar alhora amb els mateixos documents!
En basar-se en LibreOffice, que per cert, coneixeu la nova versió, no? És impressionant, des que es van separar d'OpenOffice… Bo, el que s' ha dit, els documents que podrem editar en línia, tenen entre altres més, els formats següents: documents DOC, DOCX, fulls de càlcul tipus ODF, XLS, XLSX, o presentacions de PPT i PPTX; a més de visualitzar arxius de Visio, Editor.
Instal·lació de Collabora,
Ens basarem en una imatge de Docker que ja està preparada com a contenidor, que podrem executar directament en el nostre entorn. Aquest document serà una mica diferent, ja que copiarem del contenidor a la màquina Nextcloud tots els fitxers necessaris per no haver d'executar també amb Docker.
Primer doncs, instal·lem Docker mitjançant:
[sourcecode]sudo apt-get update
sudo apt-get install docker.io[/sourcecode]
Amb les següents comandes, executarem Docker com a servei, a més de descarregar i instal·lar la imatge ‘collabora/code’ del repositori, la arrancarem indicant el port (9980 x defecte) a més d'indicar el domini FQDN del servei. I confirmarem quan finalitzi si està en funcionament (anotem l'identificador del contenidor).
[sourcecode]sudo systemctl enable docker
sudo docker pull collabora/code
sudo docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=datos.tundra-it.com’ –restart always –cap-add MKNOD collabora/code
sudo docker ps -a[/sourcecode]
Copiem els següents directoris i arxius necessaris, posteriorment aturarem el contenidor acabat de descarregar i l'eliminarem, ja no serà necessari més.
[sourcecode]sudo docker cp 87ffdce147c8:/opt/collaboraoffice5.1/ /opt/
sudo docker cp 87ffdce147c8:/usr/bin/loolforkit /usr/bin/
sudo docker cp 87ffdce147c8:/usr/bin/loolmap /usr/bin/
sudo docker cp 87ffdce147c8:/usr/bin/loolmount /usr/bin/
sudo docker cp 87ffdce147c8:/usr/bin/looltool /usr/bin/
sudo docker cp 87ffdce147c8:/usr/bin/loolwsd /usr/bin/
sudo docker cp 87ffdce147c8:/usr/bin/loolwsd-systemplate-setup /usr/bin/
sudo docker cp 87ffdce147c8:/etc/loolwsd/ /etc/
sudo docker cp 87ffdce147c8:/usr/share/loolwsd/ /usr/share/
sudo docker cp 87ffdce147c8:/usr/lib/libPocoCrypto.so.45 /usr/lib/
sudo docker cp 87ffdce147c8:/usr/lib/libPocoFoundation.so.45 /usr/lib/
sudo docker cp 87ffdce147c8:/usr/lib/libPocoJSON.so.45 /usr/lib/
sudo docker cp 87ffdce147c8:/usr/lib/libPocoNet.so.45 /usr/lib/
sudo docker cp 87ffdce147c8:/usr/lib/libPocoNetSSL.so.45 /usr/lib/
sudo docker cp 87ffdce147c8://usr/lib/libPocoUtil.so.45 /usr/lib/
sudo docker cp 87ffdce147c8://usr/lib/libPocoXML.so.45 /usr/lib/
sudo docker stop 87ffdce147c8
sudo docker rm 87ffdce147c8[/sourcecode]
A continuació, haurem d’instal·lar un certificat vàlid a la nostra màquina si no el tenim. El més còmode en el meu cas, ja tinc el PFX per aquí, així que me’l copio amb WinSCP o similar i extrec el certificat i la clau privada, els posem al directori corresponent. A més, haurem de generar un fitxer amb els certificats de les entitats emissores intermedies i/o arrel que exportarem en base64, & enganxarem el contingut dels certificats en aquest fitxer.
[sourcecode]openssl pkcs12 -in wildcard.tundra-it.com_2017.pfx -clcerts -nokeys -out wildcard.tundra-it.com_2017.cer
<pre>openssl pkcs12 -in wildcard.tundra-it.com_2017.pfx -nocerts -nodes -out wildcard.tundra-it.com_2017.key
sudo cp wildcard.tundra-it.com_2017.cer /etc/loolwsd/
sudo cp wildcard.tundra-it.com_2017.key /etc/loolwsd/
sudo vim /etc/loolwsd/ca_tundra.cer[/sourcecode]
Editamos el fichero de configuración donde indicaremos el FQDN del sitio además del usuario y contraseña del administrador de Nextcloud.
[sourcecode]sudo vim /etc/loolwsd/loolwsd.xml
…
<host desc="Regex pattern of hostname to allow or deny." allow="true">datos.tundra-it.com</host>
…
<host desc="Hostname to allow" allow="false">datos.tundra-it.com</host>
…
<username desc="The username of the admin console. Must be set.">ncadmin</username>
<password desc="The password of the admin console. Must be set.">XXXXXXX</password>
…
<cert_file_path desc="Path to the cert file" relative="false">/etc/loolwsd/wildcard.tundra-it.com_2017.cer</cert_file_path>
<key_file_path desc="Path to the key file" relative="false">/etc/loolwsd/wildcard.tundra-it.com_2017.key</key_file_path>
<ca_file_path desc="Path to the ca file" relative="false">/etc/loolwsd/ca_tundra.cer</ca_file_path>[/sourcecode]
També editem el fitxer del lloc segur d'Apache i introduïm les rutes correctes als certificats:
[sourcecode]sudo vim /etc/apache2/sites-available/nextcloud_ssl_domain_self_signed.conf
SSLCertificateFile /etc/loolwsd/wildcard.tundra-it.com_2017.cer
SSLCertificateKeyFile /etc/loolwsd/wildcard.tundra-it.com_2017.key[/sourcecode]
Bé, ara és temps d'instal·lar l'aplicació de Collabora Online Connector, un cop iniciada la sessió com a administrador de Nextcloud, a Apps.
Un cop activat, des de “Administració” > “Configuració addicional”, podrem posar la URL correcta a ‘Servidor Collabora Online’ en format https://fqdn:9980
Bé, creem l'usuari ‘lool’ i realitzem correccions de permisos, arranquem la plantilla de sistema i creem el servei.
[sourcecode]sudo useradd lool
sudo setcap cap_fowner,cap_mknod,cap_sys_chroot=ep /usr/bin/loolforkit
sudo setcap cap_sys_admin=ep /usr/bin/loolmount
sudo mkdir /var/cache/loolwsd/
sudo mkdir /opt/lool/
sudo mkdir /opt/lool/child-roots/
sudo chown lool:lool /var/cache/loolwsd/ -R
sudo chown lool:lool /opt/lool/child-roots/ -R
sudo /usr/bin/loolwsd-systemplate-setup /opt/lool/systemplate /opt/collaboraoffice5.1/
sudo chown lool:lool /opt/lool/systemplate -R
sudo vim /etc/systemd/system/loolwsd.service[/sourcecode]
Creem el servei ‘/etc/systemd/system/loolwsd.service’ amb el contingut següent:
[sourcecode]
[Unit]
Description=loolwsd com a servei
[Service]
User=lool
ExecStart=/usr/bin/loolwsd –o:sys_template_path=/opt/lool/systemplate –o:lo_template_path=/opt/collaboraoffice5.1 –o:child_root_path=/opt/lool/child-roots –o:file_server_root_path=/usr/share/loolwsd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Reiniciare=en-cas-de-fallada
[Install]
WantedBy=multi-user.target
[/sourcecode]
Habilitem el servei i reiniciem tots els serveis per tornar a llegir les configuracions, posteriorment amb ‘sudo netstat -lnpt’ podrem verificar que tenim els ports 443tcp i 9980tcp oberts.
[sourcecode]
sudo systemctl enable /etc/systemd/system/loolwsd.service
sudo systemctl daemon-reload
sudo systemctl start loolwsd.service
sudo systemctl restart apache2[/sourcecode]
Modificarem el ‘/etc/hosts’ afegint el nostre fqdn extern amb resolució local.
Finalment, no ens oblidarem de treure Docker, ja que no serà necessari i a part consumirà recursos 😉
[sourcecode]sudo apt-get remove docker.io[/sourcecode]
I res, ja només queda provar-ho! Obrirem el nostre Nextcloud i qualsevol fitxer d’ofimàtica que tinguem ja el podrem editar i treballar en línia. Si lo tenemos compartido, a més, veremos de forma simultánea qué usuario está modificando quina part del document.























































