Integración Collabora online (CODE) - Nextcloud
Instalación sin Docker, con reverse proxy Nginx en la instancia documentada aquí
1. Descarga e instalación de Collabora Online (CODE)
1.1 Repositorio oficial Collabora
curl -fsSL https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg \
| gpg --dearmor -o /usr/share/keyrings/collaboraonline.gpg
echo "deb [signed-by=/usr/share/keyrings/collaboraonline.gpg] \
https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb/ ./" \
> /etc/apt/sources.list.d/collaboraonline.list
apt update
apt install coolwsd code-brand
2. Configuración básica de coolwsd
2.1 Fichero de configuración
Ruta:
/etc/coolwsd/coolwsd.xml
Comandos para el coolwsd-xml
sudo coolconfig set ssl.termination true
sudo coolconfig set net.listen loopback
sudo coolconfig set storage.wopi.host office.nube42.es
sudo coolconfig set-admin-password
Permisos correctos:
chown root:cool /etc/coolwsd/coolwsd.xml
chmod 640 /etc/coolwsd/coolwsd.xml
Notas:
- SSL termina en Nginx
- CODE escucha en loopback IPv6 (::1)
- No forzar cambios si el XML original funciona
3. Reverse proxy Nginx para Collabora
Dominio:
office.nube42.es
3.1 Vhost completo
server {
listen 443 ssl;
http2 on;
server_name office.nube42.es;
error_log /var/log/nginx/office.error;
ssl_certificate /etc/letsencrypt/live/office.nube42.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.nube42.es/privkey.pem;
real_ip_header X-Forwarded-For;
set_real_ip_from 127.0.0.1;
set_real_ip_from ::1;
# static files
location ^~ /browser {
proxy_pass http://[::1]:9980;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass http://[::1]:9980;
proxy_set_header Host $http_host;
}
# Capabilities
location ^~ /hosting/capabilities {
proxy_pass http://[::1]:9980;
proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/cool/(.*)/ws$ {
proxy_pass http://[::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://[::1]:9980;
proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /cool/adminws {
proxy_pass http://[::1]:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
}
Aplicar:
nginx -t
systemctl reload nginx
Verificación:
curl -I https://office.nube42.es/hosting/discovery
4. Preparación de Nextcloud
Instancia:
https://colabora.nube42.es
Usuario PHP:
ncc
4.1 App requerida
Obligatorio: instalar la app Nextcloud Office (richdocuments) desde el frontend de Nextcloud.
Sin esta app, aunque CODE esté operativo y correctamente configurado, no es posible crear ni editar documentos.
4.2 Configuración explícita
sudo -u ncc php occ app:disable richdocumentscode
sudo -u ncc php occ config:app:set richdocuments wopi_url --value="https://office.nube42.es"
sudo -u ncc php occ config:app:set richdocuments public_wopi_url --value="https://office.nube42.es"
sudo -u ncc php occ config:app:set richdocuments use_https --value="yes"
sudo -u ncc php occ config:app:set richdocuments disable_certificate_verification --value="no"
Eliminar allowlist:
sudo -u ncc php occ config:app:delete richdocuments wopi_allowlist
5. Ajustes en config.php (Nextcloud)
'trusted_proxies' => array(
'127.0.0.1',
'::1',
),
'overwriteprotocol' => 'https',
Nota: estos ajustes solo son necesarios si Nextcloud está detrás de un proxy o balanceador que termina TLS o reenvía cabeceras X-Forwarded-*.
En una instalación donde Nginx actúa como frontend directo HTTPS, no son necesarios.
6. Ajuste Nginx Nextcloud
Habilitar la casilla "Permitir acceso a apps externas", y crear un token (NC lo guardará para interactuar con el CODE)
7. Prueba final
Abrir un documento Office desde Nextcloud.
Logs:
journalctl -u coolwsd -f
Resultado esperado:
- Sin CheckFileInfo 403
- Documento editable
- Sesión visible en admin.html
8. Que no tocar
Durante la integración no es necesario modificar:
- Redis
- APCu
- PHP-FPM
- OPCache
- CSP / headers
Si CODE ya funciona con otra instancia, la integración es puramente de configuración.
9. Fuente de referencia
Setup Collabora Online for Nextcloud on Debian without Docker
