Cicle formatiu: CFGS Administració de Sistemes Informàtics en Xarxa (ASIX)
Mòdul: 0376 - Implantació d’aplicacions web
Sistema operatiu: Ubuntu Server 26.04 LTS
Aquest document explica com instal·lar un servidor Nextcloud —una plataforma de núvol privat per emmagatzemar i compartir fitxers— integrat amb Collabora Online (CODE), un servidor d’edició ofimàtica col·laborativa que permet obrir i editar documents de text, fulls de càlcul i presentacions directament des del navegador, sense necessitat d’instal·lar cap programa al client.
Es parteix d’una màquina amb Ubuntu Server ja
instal·lat (es recomana una versió LTS recent: 24.04 o 26.04),
amb accés a una consola amb privilegis root o sudo, i connexió a Internet. La instal·lació es farà
mitjançant paquets apt, sense recórrer a Docker ni a
contenidors.
Abans d’entrar en matèria, és útil tenir clar com s’encaixen les peces que es muntaran:
- Apache2: servidor web que atén les peticions HTTP/HTTPS i serveix l’aplicació Nextcloud (escrita en PHP).
- PHP: llenguatge en què està programat Nextcloud; Apache delega l’execució del codi PHP a l’intèrpret instal·lat.
- MariaDB: sistema de gestió de bases de dades on Nextcloud desa metadades (usuaris, permisos, estructura de carpetes, etc.). Els fitxers en si es desen al sistema de fitxers, no a la base de dades.
- Collabora Online (coolwsd): dimoni independent que s’executa en el mateix servidor (o en un altre) i que Nextcloud invoca quan un usuari vol editar un document ofimàtic. Es comunica amb Nextcloud mitjançant una API pròpia (WOPI) sobre HTTPS.
- Certificats SSL: tant Apache com Collabora necessiten xifrar les seves comunicacions; per això es generaran certificats autosignats per a totes dues bandes.
Amb aquesta visió general, es pot seguir cada pas entenent on s’encaixa dins del conjunt.
root o sudo.nextcloud.thos.local, pensat per a proves en una xarxa
local.apt, gestió de serveis amb systemctl.Substitueix el nom de domini, les contrasenyes i les dades de l’organització que apareixen en aquest document pels valors propis del teu entorn.
/etc/hostssudo nano /etc/hosts127.0.0.1 localhost
127.0.1.1 nextcloud.thos.local server
Collabora Online no es distribueix als dipòsits oficials d’Ubuntu, de
manera que cal afegir manualment el dipòsit del projecte i la seva clau
de signatura, seguint el mateix mecanisme que apt utilitza
per a qualsevol dipòsit extern.
keyrings)Les versions modernes de apt recomanen desar les claus
GPG de tercers a /etc/apt/keyrings/ en lloc d’afegir-les
directament al clauer del sistema (el vell apt-key ja està
en desús).
Crea la carpeta de claus:
sudo mkdir -p /etc/apt/keyringsDesplaça’t a la carpeta creada:
cd /etc/apt/keyringssudo wget -O collaboraonline-release-keyring.gpg https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpgAquesta clau permetrà a apt verificar que els paquets
descarregats del dipòsit de Collabora estan signats pel projecte
original i no han estat manipulats.
sudo tee /etc/apt/sources.list.d/collaboraonline.sources > /dev/null << 'EOF'
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb
Suites: ./
Signed-By: /etc/apt/keyrings/collaboraonline-release-keyring.gpg
EOFAquest fitxer utilitza el format .sources (DEB822), el
format estructurat que ha anat substituint l’antic format d’una sola
línia als fitxers .list. Cada camp té un significat
concret:
Types: debindica que es tracta de paquets binaris.URIsapunta a la ubicació del dipòsit.Suites: ./indica que els paquets es troben directament a l’arrel de l’URL (no organitzats per “distribucions” com a Debian/Ubuntu oficial).Signed-Byapunta a la clau que ha de validar la signatura dels paquets.
Amb el nou dipòsit afegit, cal actualitzar la llista de paquets disponibles (que ara inclou també els de Collabora) i aplicar les actualitzacions pendents del sistema.
Actualitza la llista de paquets:
sudo apt updateActualitza els paquets:
sudo apt upgradeTota la pila de programari es pot instal·lar amb una sola ordre:
sudo apt install apache2 libapache2-mod-php mariadb-server php php-apcu \
php-bcmath php-bz2 php-curl php-gd php-gmp php-imagick php-intl \
php-ldap php-mbstring php-mysql php-xml php-zip unzip coolwsd code-brandNota sobre versions de PHP: a Ubuntu, el paquet php instal·la automàticament la versió de PHP inclosa al
dipòsit de la distribució. Si es necessita una versió concreta diferent
de la que ve per defecte, es pot afegir el dipòsit PPA ondrej/php i especificar el número de versió a cada paquet
(per exemple, php8.3-curl).
Val la pena entendre per a què serveix cada bloc:
Servidor web i PHP
apache2: el servidor web.libapache2-mod-php: mòdul que permet a Apache executar codi PHP directament (en lloc de necessitar PHP-FPM com a procés separat).php: l’intèrpret de PHP.
Extensions de PHP requerides per Nextcloud
Nextcloud necessita diverses extensions de PHP per funcionar correctament; cadascuna habilita una funcionalitat concreta:
php-gdiphp-imagick: generació de miniatures d’imatges.php-curl: comunicació HTTP amb serveis externs (per exemple, amb el mateix Collabora).php-mysql: connexió amb la base de dades MariaDB/MySQL.php-ldap: integració amb directoris LDAP per a autenticació centralitzada.php-mbstringiphp-xml: processament de text i XML.php-zip: gestió de fitxers comprimits (necessari per a l’app store de Nextcloud).php-apcu: sistema de memòria cau que millora significativament el rendiment de Nextcloud.php-bcmathiphp-gmp: operacions matemàtiques de precisió arbitrària, usades per algunes funcions de xifratge.php-bz2iphp-intl: compressió i internacionalització.
Base de dades
mariadb-server: el motor de base de dades on Nextcloud desarà totes les seves metadades.
Collabora Online
coolwsd: el dimoni (Collabora Online WebSocket Daemon) que renderitza i gestiona l’edició dels documents.code-brand: el paquet amb la interfície i marca de la versió comunitària (Collabora Online Development Edition).
Utilitats
unzip: necessari per descomprimir el paquet de Nextcloud, que es distribueix en format.zip.
Mou-te a la carpeta temporal:
cd /tmpDescarrega l’última versió de Nextcloud:
wget -c https://download.nextcloud.com/server/releases/latest.zipDescarrega el fitxer de comprovació de sumes:
wget -c https://download.nextcloud.com/server/releases/latest.zip.sha256L’URL latest.zip sempre apunta a l’última versió estable
publicada, de manera que aquest mateix procediment funcionarà igual
d’aquí a un any, descarregant la versió vigent en aquell moment.
Quan es descarrega programari per Internet, sempre hi ha el risc de descàrregues incompletes (per talls de connexió) o, en casos més greus, de manipulació malintencionada del fitxer. Verificar la suma SHA256 permet detectar-ho:
sha256sum latest.zip | sha256sum -cSortida esperada:
latest.zip: OKSi la suma calculada coincideix amb la publicada per Nextcloud,
l’ordre mostrarà latest.zip: OK. Si no coincideix,
cal aturar-se aquí i tornar a descarregar el fitxer
abans de continuar; no s’ha de desplegar un paquet que no hagi passat
aquesta verificació.
sudo unzip latest.zip -d /var/wwwAquesta ordre descomprimeix el contingut a /var/www/nextcloud/, que serà l’arrel del codi de
l’aplicació.
Canvia el propietari:
sudo chown -R www-data:www-data /var/www/nextcloudCanvia els permisos:
sudo chmod -R 755 /var/www/nextcloud/L’usuari www-data és el compte amb el qual s’executa el
procés d’Apache (i, per tant, els scripts PHP). Cal que aquest usuari
sigui propietari dels fitxers de Nextcloud perquè pugui llegir-los i,
sobretot, escriure’ls (Nextcloud actualitza fitxers de configuració i en
crea de nous dinàmicament, com el directori data o config.php).
El permís 755 (lectura i execució per a tothom,
escriptura només per al propietari) és un punt de partida raonable,
encara que durant el funcionament normal Nextcloud pot necessitar
ajustar permisos de subdirectoris concrets (típicament ho gestiona el
mateix script occ de manteniment).
Crea la carpeta de dades:
sudo mkdir /var/dadesnuvolCanvia el propietari de la carpeta de dades:
sudo chown -R www-data:www-data /var/dadesnuvolEs crea una carpeta fora de l’arrel del codi
(/var/www/nextcloud) per emmagatzemar-hi els fitxers reals
dels usuaris. Separar el codi de les dades és una bona pràctica per
diversos motius: facilita les actualitzacions de Nextcloud sense afectar
les dades, simplifica les còpies de seguretat, i evita que els fitxers
d’usuari quedin accessibles directament des de l’arrel web si en algun
moment es canvia la configuració d’Apache.
sudo rm latest.zip latest.zip.sha256Torna al teu home:
cdEls valors per defecte de PHP a Ubuntu són conservadors i
insuficients per a un ús normal de Nextcloud (pujar fotos, vídeos o fer
còpies de seguretat des del client d’escriptori, per exemple). Cal
localitzar el fitxer php.ini que utilitza Apache (la ruta
depèn de la versió de PHP instal·lada, per exemple /etc/php/8.5/apache2/php.ini) i editar-hi els paràmetres
següents:
Edita el fitxer /etc/php/8.5/apache2/php.ini:
sudo nano -l /etc/php/8.5/apache2/php.iniModifica la línia 430:
memory_limit = 512M
Modifica la línia 693:
post_max_size = 200M
Modifica la línia 851:
upload_max_filesize = 200M
Modifica la línia 854:
max_file_uploads = 200
Modifica la línia 964:
date.timezone = Europe/Madrid
Modifica la línia 1693:
opcache.interned_strings_buffer=16
Cada paràmetre té un propòsit concret:
memory_limit: la quantitat màxima de memòria RAM que un sol script PHP pot consumir. Nextcloud recomana com a mínim 512 MB, especialment si s’utilitzen apps addicionals (com el reconeixement facial o l’escaneig de virus).post_max_size: la mida màxima total d’una petició HTTP de tipus POST (ha de ser igual o superior aupload_max_filesize, ja que la pujada de fitxers es fa per aquest mètode).upload_max_filesize: la mida màxima d’un fitxer individual que es pot pujar en una sola petició HTTP. Sense augmentar-ho, no es podrien pujar fitxers grans (vídeos, arxius comprimits, etc.).max_file_uploads: el nombre màxim de fitxers que es poden pujar en una sola petició (rellevant quan es pugen carpetes senceres amb molts fitxers petits).date.timezone: la zona horària per defecte de PHP; si no es configura, PHP genera avisos i pot mostrar hores incorrectes als registres i a la interfície.opcache.interned_strings_buffer: controla la mida (en MB) d’una zona de memòria compartida que OPcache reserva específicament per emmagatzemar cadenes de text internades (interned strings).
Desactiva el JIT a PHP:
sudo nano -l /etc/php/8.5/cli/php.iniModifica la línia 1043:
pcre.jit=0
Nextcloud necessita una base de dades pròpia (en aquest cas, MariaDB) i un usuari amb permisos exclusius sobre ella, seguint el principi de mínim privilegi (l’usuari de Nextcloud no hauria de tenir accés a altres bases de dades del servidor).
sudo mysql -u root << 'EOF'
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'usuari'@'localhost' IDENTIFIED BY 'contrasenya';
FLUSH PRIVILEGES;
EOFLes tres instruccions SQL fan, respectivament:
CREATE DATABASE nextcloud: crea una base de dades buida anomenadanextcloud.GRANT ALL PRIVILEGES ... IDENTIFIED BY 'contrasenya': crea l’usuariusuari(si no existeix) amb la contrasenya indicada, i li atorga tots els privilegis, però només sobre la base de dadesnextcloud(no sobre cap altra) i només des de connexions locals (@'localhost').FLUSH PRIVILEGES: força MariaDB a recarregar la taula de privilegis immediatament.
La contrasenya 'contrasenya' és només un exemple. Cal
substituir-la per una contrasenya forta abans d’executar l’ordre, ja que
aquestes credencials s’introduiran posteriorment a l’assistent
d’instal·lació web de Nextcloud i donen accés complet a totes les dades
de l’aplicació.
HTTPS és imprescindible en qualsevol desplegament de Nextcloud, ja que les credencials d’accés i els fitxers viatgen per la xarxa. Quan no es disposa (encara) d’un certificat emès per una autoritat de certificació reconeguda, es pot generar un certificat autosignat: xifra igualment la connexió, però el navegador no pot verificar automàticament la identitat del servidor i mostrarà un avís de seguretat que l’usuari haurà d’acceptar manualment.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/nextcloud.key \
-out /etc/ssl/certs/nextcloud.crt \
-subj "/C=ES/ST=Catalunya/L=Mataro/O=IES Thos i Codina/OU=Informatica/CN=nextcloud.thos.local"Desglossant les opcions:
-x509: genera directament un certificat autosignat (en lloc d’una sol·licitud de certificat, CSR, que caldria enviar a una CA).-nodes: la clau privada no es xifra amb cap contrasenya (necessari perquè Apache la pugui carregar automàticament en arrencar, sense intervenció humana).-days 365: validesa d’un any.-newkey rsa:2048: genera alhora una nova clau privada RSA de 2048 bits.-subj "...": proporciona totes les dades del certificat (país, província, localitat, organització, unitat organitzativa i Common Name —que ha de coincidir amb el nom de domini—) directament a l’ordre, evitant queopensslles demani de forma interactiva.
Collabora utilitza el seu propi parell de certificats, independent del d’Apache:
sudo openssl genrsa -out /etc/coolwsd/privatekey.pem 4096
sudo openssl req -batch -new -x509 -sha512 -days 3650 \
-key /etc/coolwsd/privatekey.pem -out /etc/coolwsd/fullchain.pem \
-subj "/C=ES/ST=Catalunya/L=Mataro/O=IES Thos i Codina/OU=Informatica/CN=nextcloud.thos.local"Aquí es genera primer una clau RSA de 4096 bits i després el
certificat autosignat associat, amb una validesa de 10 anys
(-days 3650) i l’opció -batch, que evita
preguntes interactives utilitzant valors per defecte.
Cal indicar explícitament el -subj amb un CN (Common Name) coincident amb el domini
(nextcloud.thos.local), igual que es va fer amb el
certificat d’Apache. Un certificat generat sense -subj no
té cap Common Name, i Nextcloud/el navegador no podran ni tan
sols llegir-ne el nom en intentar validar-lo (error típic: SSL: unable to obtain common name from peer certificate).
Canvia el propietari:
sudo chown cool:cool /etc/coolwsd/privatekey.pem /etc/coolwsd/fullchain.pemCanvia els permisos:
sudo chmod 640 /etc/coolwsd/privatekey.pemI es configura coolwsd perquè utilitzi aquests fitxers
mitjançant la seva eina de configuració:
sudo coolconfig set ssl.cert_file_path /etc/coolwsd/fullchain.pemsudo coolconfig set ssl.key_file_path /etc/coolwsd/privatekey.pemcoolconfig és una utilitat que modifica el fitxer de
configuració XML de coolwsd
(/etc/coolwsd/coolwsd.xml) sense necessitat d’editar-lo
manualment.
El paquet coolwsd porta per defecte el camp ca_file_path apuntant a /etc/coolwsd/ca-chain.cert.pem, un fitxer que no
existeix en aquest tipus de desplegament (no s’utilitza cap CA
externa, ja que el certificat és autosignat). Si no es corregeix, el
servei falla en arrencar amb l’error Failed to initialize COOLWSD: File not found: /etc/coolwsd/ca-chain.cert.pem
al journalctl, i mai arriba a escoltar al port 9980.
Comprova el valor actual:
sudo grep -A1 -B1 "ca_file_path" /etc/coolwsd/coolwsd.xmlSi mostra aquesta ruta inexistent, buida el camp perquè quedi com a etiqueta autotancada (el valor correcte per a un certificat autosignat, igual que en el cas anterior):
sudo sed -i 's|<ca_file_path desc="Path to the ca file" relative="false" type="path">/etc/coolwsd/ca-chain.cert.pem</ca_file_path>|<ca_file_path desc="Path to the ca file" relative="false" type="path"/>|' /etc/coolwsd/coolwsd.xmlsudo tee /etc/apache2/sites-available/nextcloud-ssl.conf > /dev/null << 'EOF'
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName nextcloud.thos.local
DocumentRoot /var/www/nextcloud
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/nextcloud.crt
SSLCertificateKeyFile /etc/ssl/private/nextcloud.key
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
EOFPer evitar que algú accedeixi accidentalment (o intencionadament) per HTTP sense xifrar, es defineix un segon VirtualHost al port 80 que redirigeix totes les peticions cap a la versió HTTPS:
sudo tee /etc/apache2/sites-available/nextcloud.conf > /dev/null << 'EOF'
<VirtualHost *:80>
ServerName nextcloud.thos.local
Redirect permanent / https://nextcloud.thos.local/
</VirtualHost>
EOFLa directiva Redirect permanent envia un codi d’estat
HTTP 301 (redirecció permanent), de manera que els navegadors recordin
la redirecció.
sudo a2enmod rewrite headers env dir mime sslAquests mòduls són necessaris perquè Nextcloud funcioni correctament:
rewrite: permet reescriure URL, imprescindible per al fitxer.htaccessde Nextcloud, que genera enllaços “nets” (sense paràmetres visibles a l’URL).headers: permet afegir capçaleres HTTP de seguretat (comStrict-Transport-Security), que Nextcloud recomana i que el seu panell d’administració verifica.env: permet passar variables d’entorn a scripts, usat per algunes configuracions de Nextcloud.dir: gestiona els documents índex per defecte (comindex.php) quan s’accedeix a una carpeta.mime: determina el tipus de contingut (Content-Type) que s’envia segons l’extensió del fitxer.ssl: habilita el suport per a connexions xifrades amb TLS/SSL, imprescindible per a HTTPS.
sudo a2ensite nextcloud.conf nextcloud-ssl.confa2ensite crea els enllaços simbòlics necessaris a /etc/apache2/sites-enabled/ perquè Apache carregui aquestes
configuracions en arrencar (de manera anàloga a com a2enmod
activa els mòduls).
sudo systemctl restart mariadb.servicesudo chown -R cool:cool /etc/coolwsd/El paquet coolwsd crea un usuari de sistema dedicat
(cool) per executar el dimoni amb privilegis reduïts,
seguint el principi de mínim privilegi: si el procés de Collabora és
comprès per algun atac, l’atacant no obté privilegis d’administrador del
sistema. Cal que aquest usuari sigui propietari dels seus propis fitxers
de configuració (inclosos els certificats generats al punt 10.2) per poder-los
llegir en arrencar.
sudo coolconfig set-admin-passwordAquesta ordre és interactiva: demanarà un nom d’usuari i una contrasenya, que s’utilitzaran per accedir al panell d’administració web de Collabora Online (independent del panell d’administració de Nextcloud).
Enter admin username [admin]:
Enter admin password:
Confirm admin password:
Saving configuration to : /etc/coolwsd/coolwsd.xml ...
Savedsudo systemctl edit apache2.serviceAfegeix aquestes línies:
[Service]
ReadWritePaths=/var/dadesnuvol
ReadWritePaths=/var/www/nextcloud/config
MemoryDenyWriteExecute=no
Reinicia Collabora:
sudo systemctl restart coolwsd.serviceReinicia Apache:
sudo systemctl restart apache2.serviceCal reiniciar tots dos serveis perquè recullin tots els canvis de configuració fets fins ara (certificats, vHosts, paràmetres de PHP, etc.).
/etc/hosts)Perquè el navegador del client pugui localitzar el servidor pel nom nextcloud.thos.local (en lloc de fer-ho per IP), cal que
aquest nom es resolgui a alguna adreça. En un entorn de producció això
es faria amb un servidor DNS (intern o públic), però per a proves locals
n’hi ha prou amb afegir una entrada al fitxer /etc/hosts,
que el sistema consulta abans de fer cap consulta DNS:
echo "192.168.1.10 nextcloud.thos.local" | sudo tee -a /etc/hostsLa IP 192.168.1.10 correspon a la IP del servidor Nextcloud en aquest exemple de configuració. Substitueix-la per la IP del teu servidor.
Amb tota la part de servidor preparada, cal completar la configuració des de la interfície web:
Accedeix a Nextcloud: obre https://nextcloud.thos.local en un navegador. Com que el
certificat és autosignat, el navegador mostrarà un avís de seguretat
(normalment cal clicar “Avançat” i després “Accepto el risc i vull
continuar” o similar, segons el navegador).
Assistent d’instal·lació de Nextcloud: en accedir per primera vegada, Nextcloud mostra un formulari per crear el primer compte d’administrador i configurar la connexió a la base de dades:
/var/dadesnuvol (creada a la secció 7.2).
Aplicacions recomanades: Nextcloud et suggereix d’instal·lar algunes aplicacions recomanades. Et demanarà diverses vegades la contrasenya d’administrador.
És conegut que l’última versió estable, 34.0.2 a la data d’edició d’aquest document, conté un bug conegut. Et demanarà diverses vegades la contrasenya d’administrador.
Un cop dins de Nextcloud com a administrador, cal vincular l’aplicació amb el servidor de Collabora que s’ha instal·lat. Aquest pas és el que permet que, en obrir un document de text, full de càlcul o presentació, Nextcloud sàpiga a qui ha de demanar que el renderitzi.
Des del navegador accedeix a l’URL del servidor de Collabora i accepta el risc de seguretat.
https://nextcloud.thos.local:9980Ves als Paràmetres d’administració.
Tria Nextcloud Office (Collabora).
Tria Utilitza el teu propi servidor i introdueix l’URL del servidor Collabora instal·lat:
https://nextcloud.thos.local:9980
Just sota la configuració del servidor, el mateix panell Oficina Nextcloud mostra un bloc de Paràmetres avançats amb diverses opcions addicionals. No són obligatòries per fer funcionar la integració bàsica, però val la pena conèixer-les:
- Fes servir Office Open XML (OOXML) en lloc del format OpenDocument (ODF): per defecte, Nextcloud crea els documents nous en format obert ODF (
.odt,.ods,.odp). Si la majoria d’usuaris treballen amb Microsoft Office o necessiten màxima compatibilitat amb fitxers.docx,.xlsxi.pptx, val la pena activar aquesta casella perquè els documents nous es creïn directament en aquest format.- Restringeix l’ús a grups específics: per defecte, Oficina Nextcloud està disponible per a tots els usuaris del servidor. Activant aquesta opció apareix un selector per triar quins grups concrets hi tindran accés, útil si només es vol oferir l’edició ofimàtica a determinats departaments o cursos.
- Restringeix l’edició a grups específics: similar a l’anterior, però més granular: permet que tothom pugui veure els documents amb Collabora, però que només els grups seleccionats puguin editar-los. Per defecte, qualsevol usuari amb permisos d’edició sobre un fitxer el pot modificar amb Collabora.
- Fes servir webroot Canònic: opció pensada per a desplegaments amb una configuració de xarxa més complexa (per exemple, quan Nextcloud s’exposa a través d’un proxy invers amb una ruta diferent de l’arrel). En la majoria d’instal·lacions senzilles com la d’aquest document no cal tocar-la.
- Activa l’accés a les aplicacions externes: habilita el mecanisme que permet a Collabora (o a altres apps externes compatibles) integrar-se més profundament amb Nextcloud més enllà de la simple edició de documents. Només cal activar-ho si s’utilitzen extensions o integracions addicionals que ho requereixin explícitament.
- Allow list for WOPI requests: aquest és el camp més rellevant des del punt de vista de seguretat. WOPI (Web Application Open Platform Interface) és el protocol que Nextcloud i Collabora utilitzen per comunicar-se: Collabora demana a Nextcloud el contingut del fitxer i, quan acaba, li retorna els canvis. Aquest camp defineix des de quines adreces IP s’accepten aquestes peticions WOPI cap al servidor Nextcloud.
Per defecte sol aparèixer el valor 0.0.0.0/0, que vol
dir “qualsevol adreça IPv4” (és a dir, sense restricció). Aquest valor
és còmode per fer proves ràpides, però en un entorn real convé
restringir-lo a la IP (o xarxa) concreta del servidor on
s’executa coolwsd, per exemple 192.168.1.0/24
si Collabora corre en una màquina amb aquesta xarxa, o 127.0.0.1/32 si Collabora i Nextcloud comparteixen el
mateix servidor i només s’hi accedeix en local. Es poden indicar
diversos valors separats per comes. Restringir aquesta llista evita que
un tercer pugui suplantar el servidor de Collabora i fer-se passar per
ell per llegir o manipular documents dels usuaris.
Un cop modificat el valor, cal clicar el botó Desa que apareix al costat mateix del camp (és un botó independent de la resta del formulari).
Com que tant Nextcloud com Collabora utilitzen certificats autosignats (generats a la secció 10), és freqüent topar amb errors de verificació de certificat en aquest punt. Algunes situacions habituals:
- “Could not establish connection to the CODE server” o error similar: sol indicar que el port 9980 no és accessible des del servidor de Nextcloud (per tallafocs, o perquè
coolwsdno s’ha arrencat correctament — es pot comprovar ambsudo systemctl status coolwsd).- Avís relacionat amb el certificat SSL: a la mateixa pantalla de configuració de l’app “Oficina Nextcloud” sol aparèixer una opció avançada per desactivar la verificació del certificat quan s’utilitzen certificats autosignats. És útil per a proves o entorns interns, però no es recomana en producció, ja que elimina una capa de protecció contra atacs d’intermediari (man-in-the-middle). La solució correcta a llarg termini és substituir els certificats autosignats per certificats vàlids (per exemple, amb Let’s Encrypt).
- El servidor respon, però els documents no s’obren: convé revisar que el
ServerNameconfigurat al vHost de Collabora coincideixi amb l’adreça introduïda aquí, i que el tallafocs permeti tràfic WebSocket (no només HTTP normal) cap al port 9980, ja que Collabora utilitza WebSockets per a l’edició en temps real.cURL error 60: SSL: unable to obtain common name from peer certificate: el certificat de Collabora s’ha generat sense-subj(sense Common Name). Regenera’l seguint el punt 10.2 incloent el paràmetre-subjamb elCNcorresponent.- El navegador no es pot connectar a
https://<servidor>:9980en obrir un document, tot i que la comprovació de connexió del formulari ha estat correcta: cal acceptar manualment el certificat autosignat de Collabora al navegador, visitant directament aquesta adreça en una pestanya nova i acceptant l’avís de seguretat (vegeu la nota a la secció 15.2).
Ves a Fitxers.
Clica al botó + Nou i selecciona, per exemple, Document.
Si la integració és correcta, el document s’obrirà directament al navegador amb l’editor de Collabora (interfície similar a LibreOffice Writer), sense necessitat de descarregar cap fitxer ni instal·lar cap programa addicional.
A banda del panell de Nextcloud, Collabora Online disposa d’una consola d’administració pròpia per supervisar documents oberts i sessions actives:
https://<IP_SERVER>:9980/browser/dist/admin/admin.htmlS’hi accedeix amb les credencials definides a la secció 12.3
(coolconfig set-admin-password).
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
sudo -u www-data php /var/www/nextcloud/occ maintenance:repair --include-expensive
sudo -u www-data php /var/www/nextcloud/occ config:system:set maintenance_window_start --type=integer --value=1
sudo -u www-data php /var/www/nextcloud/occ config:system:set allow_local_remote_servers --type=bool --value=true
sudo -u www-data php /var/www/nextcloud/occ config:system:set default_phone_region --value="ES"
sudo -u www-data php /var/www/nextcloud/occ config:system:set memcache.local --value='\OC\Memcache\APCu'
sudo -u www-data php /var/www/nextcloud/occ config:system:set filelocking.enabled --value=true
sudo -u www-data php /var/www/nextcloud/occ config:system:set memcache.locking --value='\OC\Memcache\APCu'
sudo systemctl restart apache2.serviceCanvia a cron del sistema, que és l’opció recomanada per Nextcloud en producció:
Afegeix una entrada de crontab per a www-data:
sudo crontab -u www-data -e*/5 * * * * php -f /var/www/nextcloud/cron.php
A Nextcloud, com a usuari administrador ves a Paràmetres d’administració → Paràmetres Bàsics → Tasques de fons i selecciona Cron en lloc d’AJAX.
- Contrasenyes: cal substituir totes les contrasenyes d’exemple (base de dades, administrador de Collabora) per valors robustos i únics, i no reutilitzar-les entre serveis.
- Certificats en producció: els certificats autosignats són adequats per a proves o xarxes internes tancades, però en un entorn accessible des d’Internet és recomanable utilitzar certificats vàlids (per exemple, mitjançant Let’s Encrypt i Certbot), per evitar avisos al navegador i garantir la confiança dels usuaris.
- Tallafocs: només cal exposar els ports estrictament necessaris. Si Collabora només l’utilitza Nextcloud des del mateix servidor, el port 9980 no caldria obrir-lo cap a Internet.
- Còpies de seguretat: cal establir una política periòdica de còpia de seguretat tant de la base de dades (
mysqldump) com de la carpeta de dades (/var/dadesnuvol) i del fitxerconfig.phpde Nextcloud.- Actualitzacions: tant el sistema (
apt update && apt upgrade) com la mateixa aplicació Nextcloud (des del seu panell d’administració o amb l’einaocc upgrade) reben actualitzacions de seguretat periòdiques que convé no deixar acumular.- Usuari LDAP/AD: si l’entorn ja disposa d’un directori d’usuaris, es pot configurar Nextcloud per autenticar-se contra aquest directori en lloc de gestionar comptes locals, evitant duplicar la gestió d’usuaris.