Herramientas de usuario

Herramientas del sitio


proyectos:collabora

Generalidades

Para este escenario se considera que se tiene dos servidores distintos, uno para Nextcloud y otro con Collabora, con estas direcciones IPv4:

  1. IP Nextcloud: 192.168.0.126
  2. IP Collabora CODE: 192.168.0.125

La instalación de Collabora CODE será con las siguientes versiones de software:

  • SO: Debian 10 Buster AMD64
  • Collabora CODE AMD64
    • loolwsd 6.4.3-3
    • code-brand 6.4-11
    • collaboraoffice6.4 6.4.10.19-19
  • Nginx: 1.14.2
  • IP: Dirección IPv4 de la Raspberry 192.168.0.125
  • DOMINIO: collaboran.floresvillatoro.com

Además se considera que:

  • Collabora CODE recibira conexiones en el puerto local 9980 (:::9980) sin certificado
  • Nginx será nuestro servidor proxy que publicara collabora en el puerto 443 con certificado

NOTA: Para generar certificados con el certbot es necesario tener una IPv4 y Dominio Público asociado al servidor. En esta guia aunque se hace alución al dominio publico, se presenta una IPv4 privada 192.168.0.126 por cuestiones de seguridad. Por lo tanto si tiene IPv4 y dominio público utilice el cerbot, sino utilice certificados snakeoil, certificados auto firmados o no utilice certificados (no recomendado para producción).

Collabora 6.4

Instalación de Paquetes

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
sudo echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian10 ./' >> /etc/apt/sources.list
apt update
apt upgrade
apt install loolwsd code-brand
apt install certbot nginx-full

Configuración de Certificados

Para generar un certificado para nuestro dominio publico collaboran.floresvillatoro.com , debemos asegurarnos que tenemos una IP publica y que tenemos abierto los puertos 80 y 443.

Luego hacemos la solicitud para generar nuestro certificado con:

certbot -d collaboran.floresvillatoro.com

Y contestamos las siguientes preguntas:

1: Spin up a temporary webserver (standalone)

  1. Select the appropriate number [1-2] then [enter] : 1
  2. Enter email address (used for urgent renewal and securi70.119.215.239ty notices): su.correo.electronico EN gmail PUNTO com
  3. (A)gree/(C)ancel: A
  4. (Y)es/(N)o: N

Luego verificamos que los certificados estan en: /etc/letsencrypt/live/collaboran.floresvillatoro.com/

ls -lh /etc/letsencrypt/live/collaboran.floresvillatoro.com/

Ahi debe de mostrar cuatro archivos .pem que vamos a utilizar en la configuración del servidr web.

Configuración Nginx

Configuramos los VirtualHosts :

cd /etc/nginx/
ls -lh --color sites-available/
ls -lh --color sites-enabled/

Agregamos la configuración que esta mas abajo y deben de cambiar el dominio collaboran.floresvillatoro.com por el que esten configurando. Además, deben prestarle atención a las siguientes lineas:

  1. ssl_certificate : Que define el certificado del nuestro sitio con su certificado cadena.
  2. ssl_certificate_key: Define la llave privada de nuestro certificado.
  3. proxy_pass http://localhost:9980;: Define a donde envía las solicitudes que recibe; aca las envia a donde esta escuchando Collabora en el puerto 9980 sin certificado de seguridad (http y no https)
nano sites-available/collaboran.floresvillatoro.com.conf
server {
    listen       443 ssl;
    server_name  collaboran.floresvillatoro.com;


    client_max_body_size 16G;

    ssl_certificate /etc/letsencrypt/live/collaboran.floresvillatoro.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/collaboran.floresvillatoro.com/privkey.pem;

    # static files
    location ^~ /loleaflet {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
}

Activamos nuestro sitio con:

cd /etc/nginx/
ln -s /etc/nginx/sites-available/collaboran.floresvillatoro.com.conf sites-enabled/

Ahora borramos la configuración por defecto de nginx con:

rm sites-enabled/default

Reiniciamos el nginx y verificamos su estado con:

systemctl restart nginx
systemctl status nginx

Si hay algun error, es de ver los logs en /var/log/syslog

Configuración de Collabora CODE

Modificamos el archivo /etc/loolwsd/loolwsd.xml (nano /etc/loolwsd/loolwsd.xml) modificando las siguientes lineas:

.
.
.
<host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.0\.126</host> 
.
.
.
    <ssl desc="SSL settings">
        <enable type="bool" desc="Controls whether SSL encryption between browser and loolwsd is enabled (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">false</enable>
        <termination desc="Connection via proxy where loolwsd acts as working via https, but actually uses http." type="bool" default="true">true</termination>
.
.
.
<host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.0\.126</host> 
.
.
.
        <ssl desc="SSL settings">
            <as_scheme type="bool" default="true" desc="When set we exclusively use the WOPI URI's scheme to enable SSL for storage">false</as_scheme>
.
.
.
        <username desc="The username of the admin console. Ignored if PAM is enabled.">pepe</username>
        <password desc="The password of the admin console. Deprecated on most platforms. Instead, use PAM or loolconfig to set up a secure password.">lepuf</password>
.
.
.

Agregando la IP del servidor de Nextcloud (192.168.0.126) para que pueda usar el servidor de collabora

Reiniciamos Collabora con:

systemctl restart loolwsd

Interfáz de administración de Collabora CODE: https://collaboran.floresvillatoro.com/loleaflet/dist/admin/admin.html

Collabora 23

Instalación de Paquetes

cd /usr/share/keyrings
sudo wget https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg
 
cat << EOF > /etc/apt/sources.list.d/collaboraonline.sources
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
EOF
 
apt update
apt upgrade
apt install coolwsd code-brand
apt install certbot nginx-full python3-certbot-nginx

Configuración de Certificados

Para generar un certificado para nuestro dominio publico collaboran.floresvillatoro.com , debemos asegurarnos que tenemos una IP publica y que tenemos abierto los puertos 80 y 443.

Luego hacemos la solicitud para generar nuestro certificado con:

certbot --nginx -d collaboran.floresvillatoro.com

Y contestamos las siguientes que hace el cerbot

Luego verificamos que los certificados estan en: /etc/letsencrypt/live/collaboran.floresvillatoro.com/

ls -lh /etc/letsencrypt/live/collaboran.floresvillatoro.com/

Ahi debe de mostrar cuatro archivos .pem que vamos a utilizar en la configuración del servidr web.

Configuración Nginx

Configuramos los VirtualHosts :

cd /etc/nginx/
ls -lh --color sites-available/
ls -lh --color sites-enabled/

Agregamos la configuración que esta mas abajo y deben de cambiar el dominio collaboran.floresvillatoro.com por el que esten configurando. Además, deben prestarle atención a las siguientes lineas:

  1. ssl_certificate : Que define el certificado del nuestro sitio con su certificado cadena.
  2. ssl_certificate_key: Define la llave privada de nuestro certificado.
  3. proxy_pass http://localhost:9980;: Define a donde envía las solicitudes que recibe; aca las envia a donde esta escuchando Collabora en el puerto 9980 sin certificado de seguridad (http y no https)
nano sites-available/collaboran.floresvillatoro.com.conf
server {
    listen       443 ssl;
    server_name  collaboran.floresvillatoro.com;


    client_max_body_size 16G;

    ssl_certificate /etc/letsencrypt/live/collaboran.floresvillatoro.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/collaboran.floresvillatoro.com/privkey.pem;

 # static files
 location ^~ /browser {
   proxy_pass http://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }

 # WOPI discovery URL
 location ^~ /hosting/discovery {
   proxy_pass http://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }

 # Capabilities
 location ^~ /hosting/capabilities {
   proxy_pass http://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }

 # main websocket
 location ~ ^/cool/(.*)/ws$ {
   proxy_pass http://127.0.0.1:9980;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_set_header Host $http_host;
   proxy_read_timeout 36000s;
 }

 # download, presentation and image upload
 location ~ ^/(c|l)ool {
   proxy_pass http://127.0.0.1:9980;
   proxy_set_header Host $http_host;
 }

 # Admin Console websocket
 location ^~ /cool/adminws {
   proxy_pass http://127.0.0.1:9980;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_set_header Host $http_host;
   proxy_read_timeout 36000s;
 }

}

Activamos nuestro sitio con:

cd /etc/nginx/
ln -s /etc/nginx/sites-available/collaboran.floresvillatoro.com.conf sites-enabled/

Ahora borramos la configuración por defecto de nginx con:

rm sites-enabled/default

Reiniciamos el nginx y verificamos su estado con:

systemctl restart nginx
systemctl status nginx

Si hay algún error, es de ver los logs en /var/log/syslog

Configuración de Collabora CODE

Modificamos el archivo /etc/coolwsd/coolwsd.xml (nano /etc/coolwsd/coolwsd.xml) modificando las siguientes lineas:

.
.
      <proto type="string" default="all" desc="Protocol to use IPv4, IPv6 or all for both">IPv4</proto>
      <listen type="string" default="any" desc="Listen address that coolwsd binds to. Can be 'any' or 'loopback'.">loopback</listen>
 
.
.
<host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.0\.126</host> 
.
.
.
    <ssl desc="SSL settings">
        <enable type="bool" desc="Controls whether SSL encryption between browser and loolwsd is enabled (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">false</enable>
        <termination desc="Connection via proxy where loolwsd acts as working via https, but actually uses http." type="bool" default="true">true</termination>
.
.
.
 
<mode type="string" desc="Controls the user interface style. The 'default' means: Take the value from ui_defaults, or decide for one of compact or tabbed (default|compact|tabbed)" default="default">tabbed</mode>
.
.
<alias_groups desc="default mode is 'first' it allows only the first host when groups are not defined. set mode to 'groups' and define group to allow multiple host and its aliases" mode="groups">
 
.
.
.
<group>
       <host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.0\.126</host> 
</group>
 
.
.
.
        <ssl desc="SSL settings">
            <as_scheme type="bool" default="true" desc="When set we exclusively use the WOPI URI's scheme to enable SSL for storage">false</as_scheme>
.
.
.
        <username desc="The username of the admin console. Ignored if PAM is enabled.">pepe</username>
        <password desc="The password of the admin console. Deprecated on most platforms. Instead, use PAM or loolconfig to set up a secure password.">lepuf</password>
.
.
.

Agregando la IP del servidor de Nextcloud (192.168.0.126) para que pueda usar el servidor de collabora

Reiniciamos Collabora con:

systemctl restart coolwsd

Interfáz de administración de Collabora CODE: https://collaboran.floresvillatoro.com/browser/dist/admin/admin.html

Configuración de Nextcloud

Ya en el nextcloud se debe hacer:

  1. Descargar y activar la aplicacion Collabora Online
  2. Dentro de ConfiguraciónAdministraciónCollabora Develment Edition definir Usar su propio servidor con URL https://collaboran.floresvillatoro.com
  3. Verificar que nos muestre el signo de chek verde
  4. Luego probar la edición de documentos.

Agregar nuevas fuentes

Para agregar nuevas fuentes de letras, se debe hacer:

Instalar las fuentes

apt install ttf-ubuntu-font-family ttf-xfree86-nonfree ttf-ancient-fonts ttf-sjfonts  ttf-mscorefonts-installer

Los cuales se guardan en /opt/cool/systemplate/

Actualizar el template de collabora

coolconfig update-system-template

Reiniciar collabora

systemctl  restart coolwsd

Referencias

proyectos/collabora.txt · Última modificación: por manuel.floresv