Orangescrum
Documentation index for AI agents (llms.txt). A markdown version of this page is available at /self-hosted/plugins/collaborative-documents.md or by requesting this URL with the header Accept: text/markdown.

Collaborative Documents

by Orangescrum · Productivity

Self-HostedVerifiedReal-time

The editing layer behind Orangescrum's documents. Several people work in the same document at once with live presence, every save point becomes a version you can compare and restore, comments hang off the text and get resolved, and PDFs can be marked up together and flattened into a new version. Pick the rich-text engine or a full Office engine per company.

Installs
Available

Active deployments

Support
Vendor Supported

Priority response

Trust
Self-Hosted

Your infra, your data

Screenshots

Two people co-authoring with live cursors and presence
Version list with a line-level diff between two snapshots
Shared PDF annotation before flattening to a new version

Key Features

Real-Time Co-Authoring

Open a document together and see who else is in it and where their cursor sits. Edits merge without conflict, so two people in the same paragraph is an ordinary Tuesday rather than an incident.

Three Editor Engines

A rich-text engine for clean structured writing, or OnlyOffice or Collabora when high-fidelity Office formatting matters more. The engine is a company setting, so different tenants on one install can differ.

Version Snapshots

Save a version by hand at a point that matters, and let the editor capture snapshots automatically as work goes on. Nothing depends on someone remembering to press save.

Diff and Restore

Compare any two versions line by line and restore an earlier one in a single action, so a good document edited into a bad one is a two-minute problem.

Comment Threads

Start a thread, reply to it, resolve it when it is settled, and reopen it when it turns out not to be. Discussion about the document lives on the document.

Shared PDF Annotation

Mark up a PDF in the browser with other people at the same time. Annotations sync live, so a review meeting over a contract does not need a screen share.

Flatten Annotations

Burn the annotations into the page and write the result as a new PDF version, which gives you a signed-off copy that reads correctly in any viewer.

Import and Export

Bring in existing .docx, Markdown, and plain text files, and export any document back out as .docx, Markdown, or PDF when somebody outside the workspace needs a copy.

Compatibility Analyser

Uploaded .docx files are examined for structure the rich-text engine cannot represent, and the result is recorded, so the interface knows whether to offer an edit button or a download.

Per-Document Sharing

Grant a collaborator access to a single document and revoke it just as easily. Browser sessions authenticate with short-lived tokens rather than a long-lived credential.

Two Live Transports

A WebSocket sidecar for the rich-text editor, and a server-sent-event transport over the database connection for PDF annotation that needs no sidecar at all.

Nothing Fetched at Runtime

Every browser dependency ships inside the plugin. No content delivery network, no package install at deploy time, which is what makes it usable on a network with no route out.

Maintenance Commands

Compact the update log, prune old automatic snapshots past their retention window, and re-run the compatibility analyser over documents you imported before it existed.

About this plugin

Why Collaborative Documents for Orangescrum?

Writing a specification, a policy, or a contract is a group activity, but most self-hosted document stores treat it as a solo one: check out, edit, check in, argue about whose copy is current. This add-on removes that. Several people write at once, the document is always current, and every point worth returning to is a version.

It needs a home for the documents

This is an editing layer, not a document store. It does not own repositories, folders, or approval chains. The documents come from a host add-on, and today that host is Document Management. If you already run Document Management, this is what powers the editing inside it. If you do not, install that first, because on its own this add-on has nothing to open.

Pick the engine that fits the document

The rich-text engine gives clean, structured writing with the best live editing behaviour. OnlyOffice and Collabora handle high-fidelity Office formatting: complicated tables, tracked layout, spreadsheets and slides. The choice is a company setting, so different tenants on the same install can run different engines. It is set from the console with a preview before anything is written.

Versions people actually use

A version is created when someone saves one deliberately, and automatically as work proceeds, so history exists even when nobody remembered to make it. Any two versions can be compared line by line, and any version can be restored. That is usually enough to end the argument about what changed and when.

PDF review without a screen share

PDFs open in the browser with a shared annotation layer, so several reviewers mark up the same contract at the same time and see each other's marks appear. When the review is done, flatten the annotations into a new PDF version and you have a single file that reads correctly anywhere.

Built for networks with no way out

Every browser dependency, including the PDF renderer and the editor bundles, ships inside the plugin. There is no content delivery network call and no package install at deploy time. The live transport for PDF annotation runs over your existing database connection, so the simplest deployment needs no extra service at all.

What's included

  • Real-time collaborative editing with live cursors and presence
  • Three editor engines: rich text, OnlyOffice, and Collabora, selectable per company
  • Manual version snapshots and automatic snapshots as editing proceeds
  • Version list, version detail, and line-level diff between any two versions
  • One-action restore of any earlier version
  • Comment threads with reply, resolve, and reopen
  • Shared PDF annotation with live synchronisation between reviewers
  • Flatten annotations into a new PDF version
  • Document import from .docx, Markdown, and plain text
  • Document export to .docx, Markdown, and PDF
  • A .docx structural analyser that records whether the rich-text engine can open a file
  • Per-document collaborator grants and revocation
  • Short-lived tokens for browser editing sessions
  • WebSocket transport through a Node sidecar for the rich-text editor
  • Server-sent-event transport over the database connection, needing no sidecar
  • All browser dependencies vendored inside the plugin, with no outside fetches
  • Console setup command with engine selection, secret rotation, dry run, and a current-state view
  • Maintenance commands to compact the update log, prune old snapshots, and re-analyse compatibility
  • Reverse proxy and container templates for the sidecar deployment
  • Multi-tenant company-scoped data isolation

Compatibility

Requires the Orangescrum Self-Hosted edition running PHP 8.2+, CakePHP 4.6+, and PostgreSQL 16. The plugin folder is CollabDocs. It needs a host add-on that owns the documents, and today that host is Document Management, so it is not usable on its own. Two PHP libraries are required for import and export: phpoffice/phpword and dompdf. The WebSocket path needs the bundled Node sidecar, reachable from the browser and able to call back to the application; the PDF annotation path uses server-sent events over the database connection and needs no sidecar. OnlyOffice or Collabora, if chosen, run as their own services. Multi-tenant aware, so every version, comment, annotation, and collaborator grant is company-scoped.

Installation

A self-hosted install takes a few minutes. Buy the add-on, drop the plugin into your plugins/ directory, run the migrations, and you're live.

  1. 1

    Buy the add-on

    Purchase the Collaborative Documents add-on from /self-hosted/pricing. Pricing for this add-on is being finalised, so confirm the current figure with sales before you budget.

  2. 2

    Check the host add-on is in place

    Make sure Document Management is installed and holding documents. Collaborative Documents is an editing layer and has nothing to open without it.

  3. 3

    Drop the plugin into your install

    Copy the CollabDocs/ folder into plugins/ on your self-hosted Orangescrum server and register `CollabDocs` in src/Application.php with `routes => true, bootstrap => true`.

  4. 4

    Install the PHP dependencies

    Add phpoffice/phpword and dompdf, which the import and export services require. The plugin declares both, so a composer install picks them up.

  5. 5

    Run the database migrations

    Run `bin/cake migrations migrate -p CollabDocs` to create the editor state, collaborator, comment, and annotation tables.

  6. 6

    Configure the editor per company

    Run `bin/cake collab:setup` with your public application URL, the internal URL the sidecar calls back on, and the engine you want. Preview with the dry-run flag first, and copy the generated shared secret into the sidecar configuration.

  7. 7

    Bring up the sidecar and proxy path

    Run the bundled Node sidecar, either from the supplied container templates or natively, and add the reverse proxy rule with WebSocket support. Skip this only if you are using the PDF annotation path alone.

  8. 8

    Analyse existing documents

    Run `bin/cake collab:analyze-compat` so documents uploaded before install are marked as editable or not, and the interface offers the right action for each one.

Frequently Asked Questions

Do I need the Document Management add-on as well?

Yes. This is the editing layer, not a document store. It has no repositories, folders, or approval chains of its own, and it reads the documents from a host add-on. Today that host is Document Management, so on its own this add-on has nothing to open. If you already run Document Management, this is what powers the collaborative editing inside it.

Which editor engine should I choose?

Choose the rich-text engine when the writing matters more than the layout: specifications, policies, notes, anything you would happily read as clean structured text. Choose OnlyOffice or Collabora when the file must keep Office formatting exactly, or when you need spreadsheets and slides rather than documents. You can change your mind later.

Can I use a different engine per document?

No. The engine is a company-wide setting and applies to every document in that company. If different teams need different engines, that is a case for separate tenants rather than a per-document toggle.

Do I have to run the extra service?

Only for the WebSocket path used by the rich-text editor. PDF annotation uses a server-sent-event transport over your existing database connection and needs no extra service at all. The server-sent-event path is limited by your web worker pool, so it suits smaller deployments; the WebSocket sidecar scales better for larger ones.

What happens if two people type in the same sentence?

Both edits survive and both people see the result immediately. Editing is conflict-free by construction rather than by locking, so there is no check-out step, no merge prompt, and no last-writer-wins surprise.

How do versions work?

You can save a version deliberately at any point, and the editor also captures snapshots automatically as work proceeds. Any two versions can be compared line by line and any version can be restored in one action. A maintenance command prunes automatic snapshots past a retention window so the history does not grow without limit.

Does it call out to anything on the internet?

No. Every browser dependency, including the editor bundles and the PDF renderer, ships inside the plugin, so nothing is fetched from a content delivery network at runtime and there is no package install at deploy time. If you choose OnlyOffice or Collabora those run as services you host yourself.

Ready to deploy Collaborative Documents on your own infrastructure?

Talk to our team about Orangescrum Self-Hosted Enterprise: your data, your servers, full control.