Divendres, octubre 17, 2025
APLICATIUS

Crear i compartir documents col·laboratius amb OnlyOffice al teu servidor

OnlyOffice és una suite ofimàtica web que pot desplegar-se en servidors propis i permet l’edició col·laborativa de documents de text, fulls de càlcul i presentacions. La interfície és similar a la de Microsoft Office i funciona bé tant en navegadors moderns com en entorns mòbils. A diferència de Google Docs, pots allotjar-lo a la teva infraestructura i controlar completament l’accés a les dades.

Si treballes amb equips que necessiten col·laborar en documents sense dependre de serveis externs o vols integrar edició col·laborativa en una plataforma com Nextcloud, OnlyOffice és una opció raonable. Però el desplegament no és trivial. Requereix prendre decisions concretes sobre com l’has de fer servir, com has de mantenir-lo i què necessites realment.

OnlyOffice com a suite integrada o com a servei independent?

El primer és entendre què has d’ instal·lar. OnlyOffice té diverses parts:

  • Document Server: el motor que renderitza i edita els documents al navegador. És el component central.
  • Community Server: una espècie d’intranet col·laborativa amb correu, CRM, projectes, etc. No cal si només vols editar documents.
  • Mail Server: autoinstal·lable al costat del Community Server, però no es recomana si no tens experiència administrant correu.

Si tot el que necessites és edició col·laborativa en un entorn controlat, el més directe és desplegar OnlyOffice Document Server i connectar-lo a una plataforma que ja facis servir (com Nextcloud o la teva pròpia aplicació web).

Requisits del sistema: no subestimis els recursos

Encara que pugui semblar llivià per ser una app web, OnlyOffice Document Server requereix força CPU i RAM. Per a treballar amb fluïdesa amb diversos documents oberts per diversos usuaris, necessites almenys:

  • CPU: 2 cores moderns (millor si pots reservar 4)
  • RAM: 4 GB com a mínim. 8 GB si esperes més de 5 usuaris concurrents.
  • Disc: 2 GB per a la instal·lació base, més el que ocupin els teus documents (ideal amb SSD).

El Document Server fa servir Node.js, Nginx, PostgreSQL i Libreoffice internament. També llença diversos workers. En servidors amb poca RAM comença a fer swap ràpid, i l’edició col·laborativa se’n ressent.

Mètode d’instal·lació recomanat: Docker

La forma més senzilla i mantenible de desplegar OnlyOffice Document Server és fer servir el contenidor oficial. Instal·lar-lo des de paquets (.deb) és possible, però té moltes més dependències, i actualitzar-lo pot trencar dependències del sistema.

Abans de començar, assegura’t de tenir Docker i Docker Compose:

apt install docker.io docker-compose -y

Després, crea un directori per a la teva instància i afegeix aquest docker-compose.yml bàsic:

version: '3.5'
 
services:
  onlyoffice-documentserver:
    image: onlyoffice/documentserver
    container_name: onlyoffice-docs
    restart: always
    ports:
      - "8080:80"
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=changemeverytime
    volumes:
      - ./data:/var/www/onlyoffice/Data

Aquest arxiu llença el servidor de documents escoltant al port 8080. La clau JWT es fa servir per a signar les peticions entre el Document Server i el client que es connecta (per exemple, Nextcloud). Si no la configures igual en ambdós llocs, no podràs editar.

Després simplement:

docker-compose up -d

I ja tens OnlyOffice corrent a http://la-teva-ip:8080

Consell: no el posis directament en producció sense un proxy HTTPS davant. L’edició de documents passa tot per HTTP i no voldràs que això viatgi en pla.

Servir OnlyOffice amb Nginx i HTTPS

La forma més comuna d’exposar OnlyOffice és posar-lo darrere de Nginx amb un certificat TLS, fent servir Let’s Encrypt. Un exemple bàsic de nginx.conf per a proxy revers:

server {
    listen 80;
    server_name docs.domini.com;
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl;
    server_name docs.domini.com;
 
    ssl_certificate /etc/letsencrypt/live/docs.domini.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/docs.domini.com/privkey.pem;
 
    location / {
        proxy_pass http://localhost:8080/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Renova el certificat amb certbot i assegura’t que Nginx pot reiniciar-se després de la renovació.

Integració amb Nextcloud: el que realment cal configurar

Nextcloud té integració nativa amb OnlyOffice, però hi ha diverses coses que poden fallar si no estan ben ajustades.

  • Instal·la el plugin “OnlyOffice” des de l’App Store de Nextcloud (no confondre amb Collabora).
  • Ves a Administració > OnlyOffice.
  • Configura:
Servei d’ edició de documents: https://docs.domini.com/
Clau secreta: changemeverytime
  • Si actives JWT al Document Server (el recomanat), la clau ha de coincidir amb la que poseu al docker-compose.yml.
  • Si estàs darrere d’un revers proxy, assegura’t que la IP pública de Nextcloud arriba al servidor d’OnlyOffice per HTTPS.

Error comú: si tens Nextcloud i OnlyOffice al mateix host però fas servir localhost o 127.0.0.1 a la URL del connector, fallarà la validació d’origen. Fes servir sempre noms de domini i assegura’t que ambdós serveis es veuen entre si per xarxa.

Documents col·laboratius: com es comporta en realitat

OnlyOffice permet l’edició col·laborativa en temps real, però amb certs matisos que convé entendre des del començament:

  • Els canvis s’apliquen al navegador de cada usuari, i se sincronitzen amb el servidor cada pocs segons.
  • Si dues persones editen una cel·la (en full de càlcul) o un paràgraf (en document), guanya el que va fer l’últim commit. No hi ha bloqueig de seccions com a Google Docs.
  • Hi ha manera de revisió amb canvis, però cada usuari pot acceptar-los o rebutjar-los. Si no hi ha acords clars, això pot generar conflictes.

A la pràctica, funciona bé per a co-edició en documents petits i mitjans. Si l’ equip edita activament durant una trucada o sessió conjunta, no hi ha problemes. Però si diverses persones entren i surten en moments diferents, convé activar el mode de revisió.

Control d’accés: OnlyOffice no gestiona usuaris

Una diferència important respecte a Google Docs o fins i tot Collabora Online és que OnlyOffice Document Server no té sistema d’autenticació propi. Sempre depèn d’una plataforma externa (com Nextcloud o una app personalitzada) per a gestionar els permisos d’accés.

Això significa que:

  • Si comparteixes un enllaç a un document, ha de passar per la plataforma que el gestiona.
  • OnlyOffice mai emmagatzema els arxius per si mateix, només els renderitza temporalment mentre s’editen.
  • Si algú accedeix directament a https://docs.domini.com/, veurà una pàgina de benvinguda, però no pot obrir res sense integració.

Això té avantatges de seguretat: els documents no es queden al Document Server, no hi ha base de dades que gestionar ni comptes que protegir en aquest servei.

Actualitzacions i manteniment

OnlyOffice actualitza regularment el seu Document Server, i no sempre amb retro-compatibilitat total. Les principals versions (per exemple, de 7.2 a 7.3) poden requerir reinici de contenidors i canvis de configuració.

En entorns de producció:

  • Sempre prova primer en staging, fins i tot si fas servir Docker. Canvis de versió poden trencar la integració amb Nextcloud.
  • Guarda una còpia del volum Docker (./data) abans d’actualitzar.
  • Revisa els changelogs oficials abans de fer docker pull.

Per a actualitzar:

docker-compose down
docker pull onlyoffice/documentserver
docker-compose up -d

I després revisa que el servei respon correctament en /healthcheck.

Val la pena fer-lo servir sense Nextcloud?

Sí, si estàs desenvolupant una aplicació pròpia i vols oferir edició col·laborativa. OnlyOffice té una API REST i un SDK JS ben documentat. Permet integrar l’editor a qualsevol web (amb iframe) i passar-li el document, mode d’edició, permisos, etc.

Es pot integrar amb portals interns, sistemes de tiquets i fins i tot amb Moodle. Però requereix una mica més de feina.

Què passa si només vols previsualitzar documents?

OnlyOffice funciona bé per a això, però hi ha opcions més lleugeres. Si no necessites col·laboració i només vols previsualitzar .docx o .xlsx, podries fer servir LibreOffice en mode headless o fins i tot solucions basades en pandoc.

OnlyOffice cobra sentit quan necessites:

  • Edició real, sense convertir a PDF o HTML
  • Múltiples usuaris treballant alhora
  • Compatibilitat acceptable amb formats Office (millor que LibreOffice en .docx moderns)

Extres que ajuden en l’ús diari

  • Afegeix monitorització bàsica: fes servir un script que consulti https://docs.domini.com/healthcheck i t’alerti si falla.
  • Si fas servir fail2ban, pots crear una regla per a bloquejar accessos indeguts al Document Server (per exemple, escanejos).
  • Configura límits a Nginx per a evitar que se saturin els workers per arxius molt grans o abusos:
client_max_body_size 100m;
proxy_read_timeout 3600;

Llista de verificació tècnica: OnlyOffice Document Server

Requisits previs

  • Tens un servidor Linux (recomanat: Debian 11 o Ubuntu 22.04)
  • Accés root o usuari amb sud
  • DNS resolt i nom de domini vàlid (ex. docs.midominio.com)
  • Port 80 i 443 oberts (requerit per a HTTPS amb Let’s Encrypt)
  • Docker y Docker Compose instal·lats (apt install docker.io docker-compose)
  • RAM: mínim 4 GB lliures (millor 8 GB)
  • CPU: almenys 2 cors reservats

Instal·lació d’OnlyOffice Document Server (Docker)

  • Crear un directori per a la instància: /opt/onlyoffice/
  • Crear un arxiu docker-compose.yml com aquest:
version: '3.5'
 
services:
  onlyoffice-documentserver:
    image: onlyoffice/documentserver
    container_name: onlyoffice-docs
    restart: always
    ports:
      - "8080:80"
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=clau_secreta_que_faras_servir
    volumes:
      - ./data:/var/www/onlyoffice/Data
  • Llançar els contenidors:
docker-compose up -d
  • Verificar que està actiu: obre http://LA_TEVA_IP:8080

Configurar Nginx amb HTTPS

  • Instal·leu Certbot:
apt install certbot python3-certbot-nginx
  • Configurar Nginx per servir docs.midominio.com amb proxy a localhost:8080 (veure bloc de configuració de l’article anterior)
  • Obtenir certificat TLS:
certbot --nginx -d docs.midominio.com
  • Forçar redirecció HTTP → HTTPS (Certbot ho pregunta)
  • Verificar: obre https://docs.domini.com, ha de mostrar la pàgina de benvinguda d’OnlyOffice

Integració amb Nextcloud

  • Instal·lar l’app “OnlyOffice” des de la botiga d’aplicacions de Nextcloud
  • Anar a Administració > OnlyOffice
  • Configurar:
    • Servei d’ edició: https://docs.domini.com/
    • Clau secreta: (mateixa que a JWT_SECRET)
  • Provar d’obrir un .docx i verificar que carrega l’editor
  • Si retorna error, revisar logs de Nextcloud (nextcloud.log) y del contenidor (docker logs onlyoffice-docs)

Seguretat i manteniment

  • Assegurar que l’accés al Document Server és només a través d’HTTPS
  • Restringir l’ accés directe al port 8080 al firewall (ufw, iptables, etc.)
  • Revisar arxiu nginx.conf:
client_max_body_size 100m;
proxy_read_timeout 3600;
  • Afegir script de monitorització bàsica per /healthcheck
  • Configurar backups del volum Docker (./data)
  • Planificar revisions de versió i proves en entorn previ a producció

Validacions finals

  • Dos usuaris poden editar el mateix document i veure els canvis en temps real
  • L’editor carrega sense errors des de diferents navegadors
  • Es pot obrir almenys un .docx, .xlsx i .pptx
  • Els permisos d’edició coincideixen amb l’esperat a Nextcloud
  • Si cau el contenidor, es recupera amb docker-compose up -d
  • https://docs.domini.com/healthcheck respon true

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *