Diferència entre revisions de la pàgina «Collabora Office»

De MAnteniment INformatic Kike VIlchez
Dreceres ràpides: navegació, cerca
(Executant el contenidor i monitoritzant)
(Executant el contenidor i monitoritzant)
 
Línia 151: Línia 151:
 
  sudo docker pull collabora/code
 
  sudo docker pull collabora/code
 
Amb aquesta ordre descarregarà el paquet estable i si ja està descarregat l'actualitzarà. I ara l'engeguem amb:
 
Amb aquesta ordre descarregarà el paquet estable i si ja està descarregat l'actualitzarà. I ara l'engeguem amb:
  sudo docker run -t -d -p 127.0.0.1:9980:9980 -e "domain=mainkivi\\.info" -e "username=admin" -e "password=ContraSenya" --restart always collabora/code:latest
+
  sudo docker run -t -d --network host -e "domain=mainkivi\\.info" -e "username=admin" -e "password=PassW0rd" -e "dictionaries=ca_ES es_ES" --restart always --cap-add MKNOD collabora/code:latest
En aquest exemple executo el docker apuntant al meu domini amb usuari '''admin'' i contrasenya '''ContraSenya''', obviament es pot canviar.
+
En aquest exemple executo el docker apuntant al meu domini amb usuari '''admin'' i contrasenya '''ContraSenya''', obviament es pot canviar. També especifica els diccionaris que tractarem ja que per defecte utilitza: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru. En l'ordre especifica la compatibilitat amb el dicconari ''Espanyol'' i ''Català''.
També podem especificar els diccionaris que tractarem ja que per defecte utilitza: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru. Podem afegir el català i l'espenyols com el següent exemple:
+
L'opció “-p 127.0.0.1:9980:9980” ja no és necessaria per que “--network host” la "bypassa" (el reverse proxy configura el port 9980, així que es relatiu adreçar-lo).
sudo docker run -t -d -p 127.0.0.1:9980:9980 -e "domain=mainkivi\\.info" -e "username=admin" -e "password=PassW0rd" -e "dictionaries=ca_ES es_ES" --restart always collabora/code:latest
 
  
 
  '''Nota''' - més informació dels parametres extra en:
 
  '''Nota''' - més informació dels parametres extra en:
 
  https://www.collaboraoffice.com/code/docker/
 
  https://www.collaboraoffice.com/code/docker/
 +
i al foro:
 +
https://help.nextcloud.com/t/solved-nextcloud-does-not-open-collabora-libreoffice-files/91373/3
 
Podem comprovar el funcionament amb:
 
Podem comprovar el funcionament amb:
 
  https://mainkivi.info/loleaflet/dist/admin/admin.html
 
  https://mainkivi.info/loleaflet/dist/admin/admin.html

Revisió de 13:26, 18 feb 2021

Descripció

Collabora Online és un software que ens permet tenir LibreOffice de manera totalment online, tal com ho fa Google Drive i Office 365. Aquest programari ens permet editar documents amb formats coneguts com DOC, XLS o DOCX com també els formats ODF de LibreOffice. Tanmateix, podem crear nous documents de texte en temps real de manera colaborativa amb altres usuaris.

Es pot obtenir el producte de pagaments en els seus servidors com podem descarregar la versió totalment gratuïta i lliure de CODE ( Collabora Online Development Edition ), a continuació s'explica la instal·lació en un servidor Ubuntu 18.04 via docker.

Instal·lació

Per fer la instal·lació tinc en compte que ja tenim instal·lat un servidor LAMP i Nextcloud. Primer instal·larem la versió corresonent de docker:

sudo apt install docker.io

I descarregarem el directori:

sudo docker pull collabora/code

Això tardarà uns minuts segons la nostra connexió de xarxa. Una vegada descarregat el contenidor ja el podem executar.

En una instal·lació plana

Vinc a referir-me una instal·lació plana a una instal·lació sobre un servidor web no segura que utilitza el port 80.

sudo docker run -t -d -p 9980:9980 -e "extra_params=--o:ssl.enable=false" collabora/code

Ara només cal obrir el navegador web i entrar a l'adreça, per exemple, si el nostre servidor te la IP 192.168.1.240 escriurem:

http://192.168.1.240:9980

El resultat serà la paraula:

OK.

Ara només cal instal·lar l'extensió Collabora Office i després des dels paràmetres afegir l'adreça web, això ho explico més endavant.

En una instal·lació segura

Vinc a referir-me en una instal·lació Apache amb certificat SSL.

Configurant el servidor WEB

Primer instal·larem els mpòduls que necessitarem:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod ssl
sudo a2enmod proxy_https
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
sudo a2enmod proxy_wstunnel

I recarreguem el servei:

sudo systemctl reload apache2

Ara instal·larem el certificat via certbot:

sudo certbot --authenticator standalone --installer apache -d office.mainkivi.info --pre-hook "service apache2 stop" --post-hook "service apache2 start"
sudo systemctl reload apache2

Aquí dono l'exemple de la creació del certificat sota el domini office.mainkivi.info:

Modificant Apache HTTPS amb el certificat instal·lat

Primer redireccionarem totes les peticions al servidor web ( porta 80 ) a la nostra pàgina principal https:

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

Hauria de quedar similar a aquest exemple:

<VirtualHost *:80>
       ServerName mainkivi.info
       Redirect / https://mainkivi.info/

       ServerAdmin mainkivi@gmail.com
       DocumentRoot /var/www/html
       
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined

       RewriteEngine on
       RewriteCond %{SERVER_NAME} =mainkivi.info
       RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

I ara editem la configuració SSL per les pàgines segures editant el fitxer:

sudo nano /etc/apache2/sites-available/default-ssl.conf

Hauria de quedar similar a això ( fico comentades les linies que s'han d'afegir ):

<IfModule mod_ssl.c>
       <VirtualHost _default_:443>
               ServerAdmin mainkivi@gmail.com

               DocumentRoot /var/www/html
       
               ###Configuració requerida en NextCloud
               Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"

               #LogLevel info ssl:warn

               ErrorLog ${APACHE_LOG_DIR}/error.log
               CustomLog ${APACHE_LOG_DIR}/access.log combined

               #   SSL Engine Switch:
               #   Enable/Disable SSL for this virtual host.
               SSLEngine on
               
               ##Certificat letsencrypt que hem generat
               SSLCertificateFile /etc/letsencrypt/live/mainkivi.info/fullchain.pem
               SSLCertificateKeyFile /etc/letsencrypt/live/mainkivi.info/privkey.pem
               Include /etc/letsencrypt/options-ssl-apache.conf

               
               ##configuració per Collabora Online Developement Edition

                AllowEncodedSlashes NoDecode
               SSLProtocol             all -SSLv2 -SSLv3
               SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
               SSLHonorCipherOrder     on
               
               # Container uses a unique non-signed certificate
               SSLProxyEngine On
               SSLProxyVerify None
               SSLProxyCheckPeerCN Off
               SSLProxyCheckPeerName Off

               # keep the host
               ProxyPreserveHost On

               
               # static html, js, images, etc. served from loolwsd
               # loleaflet is the client part of Collabora Online
               ProxyPass           /loleaflet https://127.0.0.1:9980/loleaflet retry=0
               ProxyPassReverse    /loleaflet https://127.0.0.1:9980/loleaflet

               # WOPI discovery URL
               ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
               ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery

               # Capabilities
               ProxyPass           /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
               ProxyPassReverse    /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities

               # Main websocket
               ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon
               # Admin Console websocket
               ProxyPass   /lool/adminws wss://127.0.0.1:9980/lool/adminws

               # Download as, Fullscreen presentation and Image upload operations
               ProxyPass           /lool https://127.0.0.1:9980/lool
               ProxyPassReverse    /lool https://127.0.0.1:9980/lool

               ##Fi de configuració collabora

               <FilesMatch "\.(cgi|shtml|phtml|php)$">
                               SSLOptions +StdEnvVars
               </FilesMatch>
               <Directory /usr/lib/cgi-bin>
                               SSLOptions +StdEnvVars
               </Directory>

       </VirtualHost>
        
</IfModule>

I reiniciem el servei web Apache de nou, si no dona cap errada i podem accedir al nostre servidor web podem continuar endavant.

sudo systemctl reload apache2

Referència oficial:

Executant el contenidor i monitoritzant

Ara que ja tenim el servidor web en marxa, podem llençar el docker corresponent a CODE que hem descarregat. Primer executarem:

sudo docker pull collabora/code

Amb aquesta ordre descarregarà el paquet estable i si ja està descarregat l'actualitzarà. I ara l'engeguem amb:

sudo docker run -t -d --network host -e "domain=mainkivi\\.info" -e "username=admin" -e "password=PassW0rd" -e "dictionaries=ca_ES es_ES" --restart always --cap-add MKNOD collabora/code:latest

En aquest exemple executo el docker apuntant al meu domini amb usuari admin i contrasenya ContraSenya', obviament es pot canviar. També especifica els diccionaris que tractarem ja que per defecte utilitza: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru. En l'ordre especifica la compatibilitat amb el dicconari Espanyol i Català. L'opció “-p 127.0.0.1:9980:9980” ja no és necessaria per que “--network host” la "bypassa" (el reverse proxy configura el port 9980, així que es relatiu adreçar-lo).

Nota - més informació dels parametres extra en:
https://www.collaboraoffice.com/code/docker/
i al foro:
https://help.nextcloud.com/t/solved-nextcloud-does-not-open-collabora-libreoffice-files/91373/3

Podem comprovar el funcionament amb:

https://mainkivi.info/loleaflet/dist/admin/admin.html

On mainkivi.info podria ser el nostre domini. El primer que farà es demanar-nos usuari i pass que acabem d'especificar. El següent és mostrar-nos una pàgina d'us del programa, per exemple:

Monitoritzant CODE
NOTA - Si no carrega aquesta web i mostra una errada de Proxy, pot ser donat, sobretot, a que acabem de llençar docker i es necessiten un parell de minuts. Si no és per això, caldria revisar la configuració docker i Apache.

Integrant en Nextcloud

Ara podem integrar-lo en la nostra instal·lació de Nextcloud, per això accedirem amb el nostre compte administrador de Nextcloud i clicar en el nostre logo a dalt a la dreta i afegir l'aplicació Collabora.

text alternatiu

Ara afegim l'aplicacció d'Oficina anomenada Collabora:

text alternatiu

I per últim, tornem a clicar sobre el nostre logo ( a dalt a la dreta ) i anem a Paràmetres. Aquí, a la part inferior esquerra, entre totes les opcions d'administració, hauria d'aparèixer Collabora Online Developement Edition. Ara afegirem la nostra adreça en el quadre URL (i el port) del servidor de Collabora Online.

text alternatiu

Pendent

Afegint plantilles de LibreOffice

Paràmaetres - Administració - Colabora Online Development Edition

URL (i el port) del servidor de Collabora Online
https://mainkivi.info
Aplica
Plantilles: 
https://extensions.libreoffice.org/templates/

Principals inconvenients en CODE

El principal inconvenient és la limitació d'usuaris i treballs que es poden executar a la vegada, en aquest cas, 10 usuaris i 10 documents. Els documents oberts s'executen i es desen des del servidor per tant, caldria una màquina amb grans recursos.

Com alternativa està OnlyOffice.

Monitoritzant docker

sudo docker stats
sudo docker logs
sudo docker ps
sudo docker stats