Deployment guide

Office 2021 EOL: Collabora Online or OnlyOffice on VPS

Deploy on a VPS Cloud →

Tutorial

Office 2021 EOL: Collabora Online or OnlyOffice on VPS

Self-hosting10 min read11 steps

On October 13, 2026, Microsoft ended extended support for Office 2021. From that date, any vulnerability discovered in Word, Excel or PowerPoint remains open — no patches will be released. If you paid for a perpetual licence, that is precisely why no patch will ever arrive. The technical answer is a Docker sidecar: Collabora Online or OnlyOffice, deployed alongside Nextcloud on a root VPS, provides native co-editing of Microsoft formats without a monthly subscription and without data hosted with the vendor.

Contents· Office 2021: what end of support actually means1/11
  1. 01Office 2021: what end of support actually means
  2. 02Concrete risks of running an unpatched office suite
  3. 03Collabora Online vs OnlyOffice: which one for your Nextcloud
  4. 04Collabora Online vs OnlyOffice Docs — technical comparison
  5. 05VPS prerequisites before installation
  6. 06Installing Nextcloud + Collabora Online via Docker Compose
  7. 07Variant: Nextcloud + OnlyOffice Docs
  8. 08Advanced configuration: formats, languages and file size limits
  9. 09Hardening: strict HTTPS and network restriction
  10. 10Troubleshooting: connection refused, certificates and memory
  11. 11Further reading

Office 2021: what end of support actually means

The date is official: October 13, 2026 marks the end of extended support for Office 2021 Home and Business, confirmed by Microsoft and tracked at endoflife.date/office and heise.de. This is not the end of a minor release — it is the end of all security updates for a suite installed on millions of desktops.

The distinction from Microsoft 365 is fundamental. A Microsoft 365 subscription continues to receive patches. A perpetual Office 2021 licence — paid once — is now frozen at its release-day security level. Every critical vulnerability published after October 13, 2026 remains exploitable on those machines, indefinitely.

Concrete risks of running an unpatched office suite

  • Unblocked malicious macros: security updates regularly fixed execution vectors via Word and Excel macros — those vectors remain open.
  • Weaponised .docx and .xlsx files: Office formats are documented attack surfaces (OLE, DDE, merge fields); without patches, parsers remain vulnerable to published exploits.
  • Compliance exposure: NIS2 and the Cyber Resilience Act (CRA) require software maintenance at a documented level. A vendor who no longer provides patches transfers liability to the deployer.
  • Lateral movement vector: a document opened from a low-privilege account can, via an unpatched CVE, escalate privileges or pivot to other network resources.
  • Cyber insurance exclusion: several policies explicitly exclude end-of-life software from coverage.

Collabora Online vs OnlyOffice: which one for your Nextcloud

Two open source projects allow you to integrate a native document editor into Nextcloud: Collabora Online (based on LibreOffice) and OnlyOffice Docs (Microsoft-compatible rendering engine). Both deploy as Docker sidecars and integrate via their dedicated Nextcloud application. The choice depends on your priority: Microsoft rendering fidelity or LibreOffice compatibility depth.

Collabora Online vs OnlyOffice Docs — technical comparison

Scroll the table

CriterionCollabora OnlineOnlyOffice Docs
Rendering engineLibreOffice (fork)Proprietary Microsoft-compatible engine
LicenceMPL-2.0 / AGPL-3.0AGPL-3.0 (community edition)
RAM at rest (~300/400 MB per active process)~300 MB/active process~400 MB/active process
Native co-editing formats.docx, .xlsx, .pptx, .odt, .ods, .odp.docx, .xlsx, .pptx (Microsoft priority)
.docx rendering fidelityGood, minor gaps on complex layoutsExcellent on elaborate layouts
Official Docker image`collabora/code``onlyoffice/documentserver`
Nextcloud applicationNextcloud Office (formerly Richdocuments)ONLYOFFICE integration app
Max connections (free edition)No limit (self-hosted) (self-hosted)20 concurrent connections (community edition)
RTL language support (Arabic, Hebrew)Yes (LibreOffice heritage)Yes
Data routingStays on your VPSStays on your VPS

VPS prerequisites before installation

Both sidecars are memory-intensive. Before starting:

Minimum recommended resources: 4 GB RAM for Nextcloud alone + Collabora Online. Plan for 6 GB if you choose OnlyOffice or expect more than five simultaneous users. NVMe SSD is preferred — format conversions are I/O intensive.

Docker and Docker Compose: both sidecars require Docker Engine 24+ and the Compose v2 plugin (docker compose, no hyphen). On Debian 12 or Ubuntu 22.04, installation from the official Docker repository is the recommended path.

Minimum Nextcloud version: Nextcloud 25 or higher. Nextcloud 28 and 29 images are tested with both sidecars. Versions earlier than 25 no longer support the Nextcloud Office application.

A domain with a valid TLS certificate: both editors refuse unencrypted connections. Your Nextcloud and the sidecar must both be reachable over HTTPS.

Installing Nextcloud + Collabora Online via Docker Compose

  1. Create the file structure

    On the VPS, create a dedicated directory and place the docker-compose.yml file there:

    mkdir -p /opt/nextcloud && cd /opt/nextcloud
  2. Write the docker-compose.yml for Nextcloud + Collabora

    version: '3.8'
    services:
      db:
        image: mariadb:10.11
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
          MYSQL_DATABASE: nextcloud
          MYSQL_USER: nextcloud
          MYSQL_PASSWORD: ${DB_PASSWORD}
        volumes:
          - db_data:/var/lib/mysql
    
      nextcloud:
        image: nextcloud:29
        restart: always
        ports:
          - "8080:80"
        environment:
          MYSQL_HOST: db
          MYSQL_DATABASE: nextcloud
          MYSQL_USER: nextcloud
          MYSQL_PASSWORD: ${DB_PASSWORD}
          NEXTCLOUD_TRUSTED_DOMAINS: your-domain.com
          NEXTCLOUD_ADMIN_USER: admin
          NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD}
        volumes:
          - nextcloud_data:/var/www/html
        depends_on:
          - db
    
      collabora:
        image: collabora/code:latest
        restart: always
        environment:
          aliasgroup1: https://your-domain.com:443
          DONT_GEN_SSL_CERT: "YES"
          extra_params: --o:ssl.enable=false --o:ssl.termination=true
        ports:
          - "9980:9980"
        cap_add:
          - MKNOD
    
    volumes:
      db_data:
      nextcloud_data:

    Also create a .env file containing DB_ROOT_PASSWORD, DB_PASSWORD and NEXTCLOUD_ADMIN_PASSWORD with long random values.

  3. Configure the nginx reverse proxy

    Nextcloud and Collabora each expose on a separate port. Create two nginx server blocks — one for your-domain.com (port 443, proxy to 8080) and one for collabora.your-domain.com (port 443, proxy to 9980).

    For Collabora, add the directive proxy_set_header X-Forwarded-Proto https; and WebSocket headers (Upgrade, Connection). The Collabora sidecar uses WebSocket for real-time co-editing.

  4. Obtain TLS certificates

    certbot --nginx -d your-domain.com -d collabora.your-domain.com

    Let's Encrypt generates certificates for both domains in one pass. Automatic renewal is configured by certbot's systemd timer.

  5. Start the stack and verify

    cd /opt/nextcloud
    docker compose up -d
    docker compose logs -f nextcloud

    Wait for Nextcloud to initialise (around 90 seconds on first start). Access https://your-domain.com and log in with the admin credentials.

  6. Enable Nextcloud Office and connect Collabora

    In the Nextcloud admin panel: Apps → Office & text → Nextcloud Office → enable.

    Then: Settings → Administration → Office → select 'Use your own server' → enter https://collabora.your-domain.com → click 'Save'.

    Open a .docx file from Nextcloud: the Collabora editor should appear inline. Invite a second user to the same file to validate simultaneous co-editing.

  7. Check memory consumption

    docker stats --no-stream

    The Collabora process consumes around 300 MB at rest and increases with the number of open documents. Watch the MEM USAGE column — if it exceeds 80% of available RAM, consider vertical scaling of the VPS.

Variant: Nextcloud + OnlyOffice Docs

  1. Replace the collabora block with onlyoffice in the Compose file

    In your docker-compose.yml, substitute the collabora service with:

      onlyoffice:
        image: onlyoffice/documentserver:latest
        restart: always
        ports:
          - "8088:80"
        environment:
          JWT_ENABLED: "true"
          JWT_SECRET: ${ONLYOFFICE_JWT_SECRET}
        volumes:
          - onlyoffice_data:/var/www/onlyoffice/Data
          - onlyoffice_logs:/var/log/onlyoffice

    Add ONLYOFFICE_JWT_SECRET to your .env file. The JWT secret is mandatory since OnlyOffice 7.2 to prevent unauthorised access to the document server.

  2. Configure the reverse proxy for OnlyOffice

    OnlyOffice listens on HTTP port 8088. Create an nginx vhost for onlyoffice.your-domain.com → proxy to 127.0.0.1:8088. Add WebSocket directives and the X-Forwarded-Proto https header.

  3. Enable the ONLYOFFICE integration in Nextcloud

    In Nextcloud: Apps → Office & text → ONLYOFFICE → enable.

    Then: Settings → Administration → ONLYOFFICE → enter the URL https://onlyoffice.your-domain.com and the JWT key defined in .env → save.

    Test with a .xlsx file: OnlyOffice should open it in-browser, with co-editing available as soon as a second user joins the document.

  4. Community edition limits

    The free onlyoffice/documentserver image is limited to 20 concurrent connections. For an SMB fleet of fewer than 15 active users, the limit is rarely reached. Beyond that, the Enterprise edition removes this cap.

Advanced configuration: formats, languages and file size limits

Natively co-edited formats: both editors handle .docx, .xlsx and .pptx in simultaneous co-editing. ODF formats (.odt, .ods, .odp) are supported by Collabora (LibreOffice engine) and accessible in read-only mode from OnlyOffice without additional plugins.

Maximum file size: by default, Nextcloud limits uploads to 512 MB (upload_max_filesize in php.ini). For large presentations, increase this in the Nextcloud container's PHP configuration file:

docker exec -it nextcloud_nextcloud_1 bash -c \
  'echo "upload_max_filesize = 2G" >> /usr/local/etc/php/conf.d/nextcloud.ini'

Languages and RTL: Collabora supports RTL languages (Arabic, Hebrew) via its LibreOffice engine. OnlyOffice also supports Arabic. Both editors detect the document language and apply RTL layout automatically.

Collabora connection limits: the free collabora/code image is designed for self-hosted use without a documented connection cap, unlike OnlyOffice. On a 6 GB RAM VPS, plan for a maximum of 10 to 15 documents open simultaneously.

Hardening: strict HTTPS and network restriction

Collabora must never be exposed directly to the internet. Port 9980 (or 8088 for OnlyOffice) must only be accessible from localhost, via the nginx reverse proxy. Verify with ss -tlnp | grep -E '9980|8088' that these ports are not listening on 0.0.0.0.

Force HTTPS on the nginx side: both sidecars validate the request origin. An HTTP connection to the sidecar from Nextcloud will produce an SSL handshake or mixed content error.

Isolate containers on a dedicated Docker network: add a networks: block to your Compose file and remove publicly-exposed port mappings — only nginx accesses the internal services.

Update images regularly: docker compose pull && docker compose up -d. Collabora and OnlyOffice publish active security patches — that is precisely their advantage over a frozen Office 2021. The AGPL licence guarantees source code auditability.

Troubleshooting: connection refused, certificates and memory

Collabora refuses the connection from Nextcloud: verify that the Nextcloud domain exactly matches the aliasgroup1 variable of the Collabora container. A single difference (subdomain, port) blocks the connection. Check docker compose logs collabora for the rejection reason.

TLS certificate error: Nextcloud must be able to reach https://collabora.your-domain.com from within the container. If your VPS uses a Docker network with NAT, collabora.your-domain.com must resolve via public DNS, not a local hosts entry. Test from the container:

docker exec nextcloud_nextcloud_1 curl -I https://collabora.your-domain.com

The sidecar keeps restarting (OOM): Collabora and OnlyOffice allocate memory per open document. A 2 GB RAM VPS will saturate quickly. Check with docker stats and scale vertically if needed.

Nextcloud displays 'Unable to reach document server': after each sidecar restart, Nextcloud must re-validate the connection. Go to Settings → Administration → Office and click 'Save' again to force re-validation.

Further reading

This article covers deploying an open source document editor as a Nextcloud sidecar. If you are migrating from a Microsoft 365 SaaS or Google Workspace fleet, the articles Quitting Microsoft 365: migrating to Nextcloud on a VPS and Migrating from Google Workspace to Nextcloud on a VPS cover data migration and account transition.

For the initial Nextcloud deployment without a document editor, Hosting Nextcloud on your own VPS is the starting point. And if you are comparing Nextcloud to ownCloud, our comparison details governance and feature differences.

An agency that standardises its fleet on Nextcloud and an open source editor manages a single environment for all its clients — at a fixed cost, without dependency on a frozen perpetual licence.

Standardise your open source office fleet

An agency deploying Nextcloud + Collabora or OnlyOffice on a VPS controls a single environment for all its clients. Fixed cost, continuous security updates, data hosted on your own infrastructure.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab