Collaborative Text Editing
Content Manager 3.3 and newer offers collaborative text editing of the RTF text.

Note:
Collaborative Text Editing does only work when using Content Manager 3.3 (or newer)
It is not available when using Database Manager (DBM), editing a RTF in DBM still locks the doument
Configure Content Manager to disable RTF file locking
Set ContentManager|UseRtfLocks to false (default: true)
Configure the RTF details pane
Adapt your details pane template
add an attribute that enables collaborative editing
yjsEnabled=true
add an attribute that configures the web socket backend for the shared document store e.g.
yjsWebSocketUrl="wss://my-y-websocket.mydomain.com:1235"
For demo purposes you can omit configuring your own web socket server; a public cloud based demo server will be used as default (wss://demos.yjs.dev/ws
)
{{#if editable}}
{{rtf-editor model=editModel source=legacyController.rtfSource yjsWebSocketUrl="wss://my-y-websocket.mydomain.com:1235" yjsEnabled=true }}
{{else}}
{{#if model.hasRtf}}
{{rtf-editor model=model source=legacyController.rtfSource readOnly=true yjsWebSocketUrl="wss://my-y-websocket.mydomain.com:1235" yjsEnabled=true }}
{{/if}}
{{/if}}
Provide the web socket backend
For productive use your own private web socket server is recommended.
An open source solution is used as web socket backend: https://github.com/yjs/y-websocket
Docker Image
Easiest way to install it is to host a ready-to-use docker image, e.g. docker compose file:
services:
y-websocket:
container_name: y-websocket
image: alokinplc/y-websocket:latest
restart: always
ports:
- 1234:1234
And use a reverse proxy to handle HTTPS offloading and forwarding to docker container,
e.g. from https://my-y-websocket.mydomain.com:1235 to http://127.0.0.1:1234