Collabora Online Development Edition (CODE) es una solución de colaboración en línea basada en la nube que permite a los usuarios editar y colaborar en documentos de manera simultánea. Está basado en el paquete de software libre LibreOffice y proporciona un conjunto completo de herramientas de productividad, incluyendo procesador de texto, hoja de cálculo, presentación y más.
CODE está diseñado para ser fácil de instalar y configurar, y se puede utilizar tanto en entornos de servidor autohospedado como en la nube. Además, proporciona soporte para una amplia variedad de formatos de archivo, lo que significa que los usuarios pueden trabajar con documentos de Microsoft Office y otros formatos sin problemas.
Afortunadamente Collabora proporciona paquetes nativos para distribuciones de Linux seleccionadas: Debian 9, Debian 10, Debian 11, Ubuntu 16.04, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, CentOS 7 (al menos 7.2), CentOS 8, SLE 15.x y openSUSE Leap 15.x.
A continuación se describen los pasos a seguir para la instalación y las configuraciones iniciales.
Importar la llave
El primer paso es importar la clave de firma. Todos los paquetes de CODE están firmados digitalmente por Collabora Productivity Ltd.
En distribuciones basadas en deb (Debian y Ubuntu), usar el siguiente comando:
cd /usr/share/keyrings
wget https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg
En distribuciones basadas en rpm (CentOS y openSUSE), usar el siguiente comando:
wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo rpm --import repomd.xml.key
Adicionar los repositorios de los paquetes
En distribuciones basadas en deb (Debian y Ubuntu), crear el archivo collaboraonline.sources
nano /etc/apt/sources.list.d/collaboraonline.sources
Con el siguiente contenido:
Debian 9:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian9
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
Debian 10:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian10
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
Debian 11:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian11
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
Ubuntu 16.04:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
Ubuntu 18.04:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
Ubuntu 20.04:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
Ubuntu 22.04:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2204
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
ARM64 – Ubuntu 18.04:
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-arm64-ubuntu1804
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
En distribuciones basadas en rpm (CentOS, RHEL, SUSE), usar los siguientes comandos:
CentOS 7:
yum-config-manager --add-repo https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7
CentOS 8:
yum-config-manager --add-repo https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos8
openSUSE Leap 15.x (and SLE 15):
sudo zypper ar 'https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-opensuse15' 'CODE'
sudo zypper mr -r 'CODE' # enable auto refresh
Instalar los paquetes
En distribuciones basadas en deb (Debian y Ubuntu), usar el siguiente comando
sudo apt update && sudo apt install coolwsd code-brand
En Centos usar el siguiente comando:
sudo yum install coolwsd CODE-brand
En openSUSE Leap usar el siguiente comando:
sudo zypper ref && sudo zypper in coolwsd CODE-brand
Los anteriores comando permiten realizar una instalación mínima, sin localizaciones. Para una instalación completa, instalar los paquetes ‘collaboraoffice*’.
Configurar idioma español
Ejecutar el siguiente comando:
apt install collaboraoffice*es
Configuración certificado SSL
Certificado autofirmado
Ejecutar los siguientes comandos:
openssl genrsa -out /etc/coolwsd/privatekey.pem 4096
openssl req -batch -new -x509 -sha512 -days 3650 -key /etc/coolwsd/privatekey.pem -out /etc/coolwsd/fullchain.pem
coolconfig set ssl.cert_file_path /etc/coolwsd/fullchain.pem
coolconfig set ssl.key_file_path /etc/coolwsd/privatekey.pem
coolconfig set ssl.ca_file_path ''
Certificado Let´s Encrypt
La ruta del archivo /etc/letsencrypt/live/ no tiene los mismos permisos. También deberá obtener los Certificados intermedios de letsencrypt.
Por este motivo se debe crear una carpeta dentro de la instalación CODE para almacenar los certificados de Let´s Encrypt:
mkdir -p /etc/coolwsd/letsencrypt
Ahora copiaremos todos los archivos de Let´s Encrypt en la nueva carpeta:
cd /etc/coolwsd/letsencrypt/
rsync -a /etc/letsencrypt/ ./
chown -R cool:cool /etc/coolwsd/letsencrypt/
chmod -R 775 /etc/coolwsd/letsencrypt/
Ejecutar los siguientes comandos:
coolconfig set ssl.cert_file_path /etc/coolwsd/letsencrypt/live/ejemplo.com/fullchain.pem
coolconfig set ssl.key_file_path /etc/coolwsd/letsencrypt/live/ejemplo.com/privkey.pem
coolconfig set ssl.ca_file_path ''
Finalmente cambiar el propietario de la carpeta y reiniciar el servicio:
chown -R cool:cool /etc/coolwsd/
systemctl restart coolwsd
Para verificar que el servicio se esta ejecutando
journalctl -u coolwsd
● coolwsd.service - Collabora Online WebSocket Daemon
Loaded: loaded (/lib/systemd/system/coolwsd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-12-21 10:31:37 -04; 33s ago
Main PID: 6484 (coolwsd)
Tasks: 15 (limit: 19068)
Memory: 169.9M
CPU: 9.922s
CGroup: /system.slice/coolwsd.service
También se puede verificar el servicio ejecutando este otro comando:
ss -tlnp | grep 9980
LISTEN 0 64 *:9980 *:* users:(("coolwsd",pid=6484,fd=16))
Automatizar copia de certificados de Let’s Encrypt
Crearemos un archivo llamado actualizaWildcard.sh
nano actualizaWildcard.sh
El contenido del archivo serán los siguientes comandos:
cd /etc/coolwsd/letsencrypt/
rsync -a /etc/letsencrypt/ ./
chown -R cool:cool /etc/coolwsd/letsencrypt/
chmod -R 775 /etc/coolwsd/letsencrypt/
Otorgaremos permisos de ejecución para el archivo:
chmod +x /home/admin/actualizaWildcard.sh
Crearemos la tarea programada mediante crontab
apt install cron
crontab -e
Debemos realizar 2 acciones ejecutar nuestro archivo y reiniciar el servicio de CODE, por eso lo programaremos en un horario que tengamos pocos usuarios:
20 3 * * * /home/admin/actualizaWildcard.sh
30 3 * * * systemctl restart coolwsd
Configuraciones adicionales
nano /etc/coolwsd/coolwsd.xml
<group_download_as default="true" desc="If set to true, groups download as icons into a dropdown for the notebookbar view." type="bool">false</group_download_as>
Iniciar el servicio
El servicio Collabora Online (coolwsd) se ejecuta a través de systemd.
Para aplicar cualquier cambio en el archivo de configuración /etc/coolwsd/coolwsd.xml, se debe reiniciar el servicio:
systemctl restart coolwsd
Collabora Online inicia sesión en systemd journal de forma predeterminada. Es posible consultar el registro con el comando:
sudo journalctl -u coolwsd
Borrar logs para facilitar la búsqueda de errores
En algunas ocasiones puede resultar difícil rastrear un error, para facilitar la revisión de los registros se pueden ejecutar los siguientes comandos:
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
Consola de administrador
Antes de acceder a la consola del administrador será necesario configurar el usuario y contraseña de administrador con el comando:
coolconfig set-admin-password
Luego reiniciar el sistema:
systemctl restart coolwsd
Probar el acceso:
https://<IP_DEL_SERVIDOR>:9980/browser/dist/admin/admin.html
Scripts Python
Adicionalmente si se requiere utilizar scripts escritos en python para manipular los documentos creados será necesario instalar los siguientes paquetes:
apt install collaboraofficebasis-python-script-provider
apt install collaboraofficebasis-pyuno