How to Set Up a Collabora Online Cluster with Multiple Nodes

A Collabora Online cluster is not just several healthy coolwsd servers behind a round-robin load balancer. Collaborative editing depends on sending requests for the same document to the same Collabora node. Collabora’s Kubernetes chart documents routing by the WOPI document identifier, WOPISrc, for this reason. This guide uses the maintained Collabora Helm chart on Kubernetes as a concrete multi-node setup and notes what must change for a different ingress controller or a non-Kubernetes deployment.

Verified: Collabora’s chart supports multiple replicas and describes per-document affinity using WOPISrc. Deployment-dependent: ingress annotations, TLS termination, resource requests, and whether a session controller is appropriate. Not safe to assume: that any load balancer or every “sticky session” setting will preserve document affinity. Confirm the controller-specific behavior and test it before moving users onto the cluster.

What the cluster does—and what it does not do

In a standard multi-replica deployment, each Collabora node can serve documents, while a proxy sends each document’s requests to one node. This spreads separate documents across the pool. It does not mean every node shares the same live editing process or that a running document can always move seamlessly if its node stops.

Collabora also documents a COOL Controller for Kubernetes that adds a different session-management approach. Its routing and configuration differ from a standalone replica pool. This article configures the simpler WOPI-source affinity model; do not combine it with controller-specific route-token settings unless you have deployed and configured the Controller for your release.

Action: decide whether you need a basic replicated Collabora service for capacity and node redundancy, or a controller-managed setup with session-aware behavior. The latter has additional components and version-specific configuration. Review the Collabora Online Controller overview if you are evaluating that path.

Before you deploy

  • A working Kubernetes cluster, Helm, DNS for a public Collabora hostname, and a TLS-capable ingress or reverse proxy.
  • A WOPI integration such as Nextcloud, configured to use the single public Collabora hostname rather than individual pod addresses.
  • The WOPI host or hosts that Collabora is allowed to accept, entered in the chart’s collabora.aliasgroups configuration.
  • Enough CPU and memory for the document workload, plus a way to inspect pod health, ingress logs, and resource use.
  • A maintenance window for the initial rollout and a test document with two separate user accounts.

A dedicated Collabora Online service is different from Nextcloud’s built-in CODE server. Nextcloud describes its built-in option as aimed at personal use or small teams and without the advanced scalability features of a dedicated server. Action: if you need a multi-node Collabora pool, plan for the dedicated service and confirm the licensing and support model suitable for your deployment. See the Nextcloud Office installation guide.

Step 1: Choose the routing model

The documented standalone model hashes on WOPISrc, which identifies the document in WOPI requests. Requests for one document must reach the same pod; requests for different documents can be distributed across pods. A generic round-robin rule does not meet that requirement.

Action: use an ingress implementation supported by the chart documentation, such as the documented NGINX or HAProxy ingress examples, or use the chart’s in-namespace reverse proxy where the cluster does not allow a suitable ingress controller. If you use another proxy, verify that it can consistently route requests by the WOPI source for both ordinary HTTP requests and long-lived WebSocket connections.

Step 2: Inspect the chart and select a version

The chart and its values change over time. Before installing, inspect the current official chart README and values rather than copying a configuration written for an older release. The examples below follow the maintained Collabora chart documentation reviewed October 6, 2026; treat the repository’s current release notes and values as authoritative for your installation day.

helm repo add collabora https://collaboraonline.github.io/online/
helm repo update
helm search repo collabora/collabora-online --versions
helm show values collabora/collabora-online

Action: choose a chart version that matches your change-control policy and record the Collabora image version it deploys. Pin the chart version for repeatable upgrades; avoid relying on an unreviewed floating version in production. The chart’s own setup guide is the Collabora Online for Kubernetes README.

Step 3: Prepare values for three replicas

This example assumes the NGINX Ingress Controller, TLS termination at the ingress, and an external WOPI host at cloud.example.com. Replace both hostnames with your own. If TLS terminates elsewhere or you use HAProxy, use that controller’s corresponding, documented configuration instead.

replicaCount: 3

autoscaling:
  enabled: false

ingress:
  enabled: true
  className: nginx
  annotations:
    nginx.ingress.kubernetes.io/upstream-hash-by: "$arg_WOPISrc"
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
  hosts:
    - host: office.example.com
      paths:
        - path: /
          pathType: ImplementationSpecific

collabora:
  aliasgroups:
    - host: "https://cloud.example.com:443"
  extra_params: --o:ssl.enable=false --o:ssl.termination=true

The hash annotation and timeout values above are shown in the chart’s NGINX example. The extra_params line is appropriate only when the reverse proxy terminates TLS and connects to Collabora over HTTP. Do not apply it unchanged if your TLS topology differs. Configure the ingress TLS secret and host according to your certificate manager and local chart values; the excerpt leaves those provider-specific settings out.

Action: save this as my_values.yaml, add the TLS configuration required by your ingress, and compare every key with the selected chart release’s values.yaml. Keep the Collabora public hostname consistent across DNS, TLS, the integration’s Collabora URL, and proxy routing.

Step 4: Install the Collabora release

Install into a dedicated namespace. Replace <chart-version> with the version selected in Step 2; angle brackets here are explanatory placeholders and should not be typed literally.

helm install --create-namespace   --namespace collabora   collabora-online collabora/collabora-online   --version <chart-version>   -f my_values.yaml

For an existing release, use a planned Helm upgrade after checking the release’s migration notes and rendered changes. Avoid deploying a major image or chart update at the same time as your first scaling change; changing one variable at a time makes faults easier to isolate.

Action: inspect the release and wait for all replicas to become ready:

helm status collabora-online -n collabora
kubectl get pods,svc,ingress -n collabora
kubectl get events -n collabora --sort-by=.lastTimestamp

Three desired replicas are not proof that three healthy nodes are serving traffic. Check readiness, recent restarts, scheduling, and ingress endpoints. If pods remain pending, inspect available cluster capacity and the resource requests and limits in the chart values.

Step 5: Connect the WOPI application

In the file platform’s office integration settings, set the Collabora server URL to the public endpoint, for example https://office.example.com. Do not point the application at a pod IP or a Kubernetes-only service name unless the integration itself runs inside the cluster and that private routing is explicitly supported by your design.

The hostname in aliasgroups must identify the WOPI host that stores and serves documents; it is not the Collabora hostname. A mismatch can cause WOPI host validation failures even when the Collabora pods and ingress are healthy.

Action: enter the same public Collabora URL in the integration’s configuration, save it, and verify that its connectivity or discovery check succeeds. If it fails, check the application’s WOPI allowlist, Collabora’s alias groups, DNS, TLS, and proxy headers before changing replica count.

Step 6: Test document affinity and collaboration

Open a test document and inspect ingress or proxy logs to confirm which backend serves it. Then open that same document from a second user session and verify that both users can edit and see each other’s changes. Open a different document and confirm that the load balancer can send it to another healthy pod. The test is about routing and collaboration, not just whether the landing page returns HTTP 200.

Action: verify that the WOPI-source hash is present and applied consistently to the requests generated for the same document, including the WebSocket upgrade. If users do not see one another’s edits, compare backend selection for the same document before investigating the WOPI host or browser cache.

Step 7: Test health handling and node loss

Readiness checks should keep an unhealthy or starting pod out of service. The chart includes startup, readiness, and liveness probe settings, but exact behavior and timing depend on the selected chart version and cluster. A pod becoming unavailable can interrupt documents currently running on that pod; a basic affinity pool should not be described as live session replication.

Action: in a test environment, remove one pod from service during an active editing session, observe client behavior and proxy routing, then reopen the document and confirm it reaches a healthy pod. Do not perform this test on active production documents without an approved maintenance plan. For stricter session continuity, evaluate the COOL Controller and its version-specific route-token setup.

Step 8: Monitor, tune, and upgrade deliberately

Track pod restarts, CPU and memory usage, request and WebSocket errors, ingress latency, and user reports about document loading or reconnecting. Collabora’s chart documentation includes Kubernetes monitoring guidance. Set resources from observed workload rather than copying example numbers: document size, concurrent sessions, fonts, and editing patterns all affect capacity.

Collabora recommends running the same version on all load-balanced nodes so clients receive consistent, version-specific web assets. During upgrades, use the chart’s supported rollout strategy, watch readiness and logs, and test an open document from multiple users before declaring the change complete.

Action: keep the chart version, image version, values file, and test results together in your change record. Schedule upgrades, confirm all replicas converge on the intended version, and retain a rollback plan compatible with the chart’s supported rollback behavior.

Common misconceptions to check

  • “Three replicas automatically create a working cluster.” Replicas alone do not configure document affinity. Confirm that the ingress hashes on the WOPI source or that your controller provides the intended session routing.
  • “Sticky sessions based on a user’s IP are enough.” That is not the rule described by Collabora’s chart for its standalone Kubernetes pool. Users collaborating on one document must converge on the same node even when they arrive from different devices or networks. Configure document-based affinity and test with two users.
  • “A healthy homepage proves the cluster is ready.” It proves only that one HTTP request returned successfully. Test opening and collaboratively editing a document, WebSocket upgrades, and behavior when a pod becomes unavailable.
  • “Adding a node guarantees active sessions survive node loss.” A basic WOPI-source-affinity pool routes a document to a node; it does not establish that its in-memory editing process is replicated. Confirm expected recovery behavior in a controlled test or assess the separate session-management features of the Controller.

For non-Kubernetes installations, the architecture principle is the same, but Kubernetes chart commands and ingress annotations do not apply. Use the proxy configuration for your Collabora version and load balancer, ensure long-lived WebSocket connections are supported, and implement per-document routing using the WOPI source. The Collabora Online SDK manual describes load balancing and the WOPISrc affinity requirement; verify the equivalent section in the manual for the release you operate.

Leave a Comment

How to Create and Send a Meeting Invite in Outlook

How to Create and Send a Meeting Invite in Outlook

Create an Outlook meeting invite, add required or optional attendees, choose a time, add Teams details, set recurrence, and check replies in new or classic Outlook.

How to Add a Character Limit to Cells in Excel

How to Add a Character Limit to Cells in Excel

Use Excel's Data Validation settings to set a maximum, minimum, exact length, or character range, then add clear prompts and error alerts.

How to Fix the “We Can’t Schedule the Meeting” Error in Outlook

How to Fix the “We Can’t Schedule the Meeting” Error in Outlook

Fix the Outlook “We can’t schedule the meeting” error by checking account support, refreshing Teams sign-in, and repairing the Classic Outlook add-in.

How to Change the Language in Office 365 (Microsoft 365)

How to Change the Language in Office 365 (Microsoft 365)

Change Office 365 menus, spelling and grammar settings, or keyboard input in desktop apps and Microsoft 365 for the web.

How to Auto-Forward Emails in Outlook 365

How to Auto-Forward Emails in Outlook 365

Learn how to auto-forward all or selected emails in Outlook 365 using Forwarding settings or Rules, plus how to stop forwarding and fix blocked external forwards.

How to Use Microsoft Editor in Word for Microsoft 365

How to Use Microsoft Editor in Word for Microsoft 365

Use Microsoft Editor in Word for Microsoft 365 to check spelling, grammar, clarity, and conciseness, review suggestions, and tune proofing settings.

How to Add an RSS Feed to Outlook 365 in Classic Outlook

How to Add an RSS Feed to Outlook 365 in Classic Outlook

Learn how to add an RSS feed to Outlook 365 in classic Outlook for Windows, find the correct feed URL, manage subscriptions, and fix common RSS issues.

How to Go to a Page in Word for Microsoft 365

How to Go to a Page in Word for Microsoft 365

Jump straight to any page in Word for Microsoft 365 with Ctrl+G or F5, relative page numbers, or the Navigation pane, with Windows and Mac shortcuts.

How to Add Contacts to Outlook on Web, Windows, and Mobile

How to Add Contacts to Outlook on Web, Windows, and Mobile

Learn how to add contacts to Outlook on the web, new Outlook, classic Outlook, and mobile, plus how contact syncing and CSV imports work.

How to Change the Microsoft Word Background Color or Add an Image

How to Change the Microsoft Word Background Color or Add an Image

Change a Word page color, add a picture background, remove either, and enable background printing on Windows or Mac with clear, current steps.