Relocate hocuspocus to "extensions" folder

This commit is contained in:
Kabiru Mwenja
2026-02-12 20:01:02 +03:00
parent 258bdeb024
commit 90a0690f37
32 changed files with 27 additions and 27 deletions
+1 -1
View File
@@ -59,7 +59,7 @@ updates:
- dependency-name: "openproject-octicons_helper" - dependency-name: "openproject-octicons_helper"
- dependency-name: "openproject-primer_view_components" - dependency-name: "openproject-primer_view_components"
- package-ecosystem: "npm" - package-ecosystem: "npm"
directory: "/blocknote/hocuspocus" directory: "/extensions/op-blocknote-hocuspocus"
schedule: schedule:
interval: "weekly" interval: "weekly"
target-branch: "dev" target-branch: "dev"
+3 -3
View File
@@ -6,7 +6,7 @@ on:
- dev - dev
- release/* - release/*
paths: paths:
- 'blocknote/hocuspocus/**' - 'extensions/op-blocknote-hocuspocus/**'
workflow_call: workflow_call:
inputs: inputs:
tags: tags:
@@ -16,7 +16,7 @@ on:
defaults: defaults:
run: run:
working-directory: ./blocknote/hocuspocus working-directory: ./extensions/op-blocknote-hocuspocus
jobs: jobs:
build: build:
@@ -44,7 +44,7 @@ jobs:
- name: Build and push - name: Build and push
uses: docker/build-push-action@v6 uses: docker/build-push-action@v6
with: with:
context: ./blocknote/hocuspocus context: ./extensions/op-blocknote-hocuspocus
push: true push: true
platforms: linux/amd64,linux/arm64/v8 platforms: linux/amd64,linux/arm64/v8
tags: ${{ inputs.tags }} tags: ${{ inputs.tags }}
+3 -3
View File
@@ -3,14 +3,14 @@ on:
pull_request: pull_request:
types: [opened, reopened, synchronize] types: [opened, reopened, synchronize]
paths: paths:
- 'blocknote/hocuspocus/**' - 'extensions/op-blocknote-hocuspocus/**'
permissions: permissions:
contents: read contents: read
defaults: defaults:
run: run:
working-directory: ./blocknote/hocuspocus working-directory: ./extensions/op-blocknote-hocuspocus
jobs: jobs:
units: units:
@@ -26,7 +26,7 @@ jobs:
with: with:
node-version: '22.19' node-version: '22.19'
cache: npm cache: npm
cache-dependency-path: blocknote/hocuspocus/package-lock.json cache-dependency-path: extensions/op-blocknote-hocuspocus/package-lock.json
- name: Install Dependencies - name: Install Dependencies
id: npm-i id: npm-i
+1 -1
View File
@@ -87,7 +87,7 @@ glossary:
github: github:
href: https://github.com/opf/openproject href: https://github.com/opf/openproject
hocuspocus_server_docs: hocuspocus_server_docs:
href: https://github.com/opf/openproject/tree/dev/blocknote/hocuspocus href: https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus
ical_docs: ical_docs:
href: https://www.openproject.org/docs/user-guide/calendar/#subscribe-to-a-calendar href: https://www.openproject.org/docs/user-guide/calendar/#subscribe-to-a-calendar
installation_guides: installation_guides:
@@ -9,4 +9,4 @@ services:
working_dir: /app working_dir: /app
command: sh -c "npm run dev" command: sh -c "npm run dev"
volumes: volumes:
- ../../../blocknote/hocuspocus:/app - ../../../extensions/op-blocknote-hocuspocus:/app
@@ -153,7 +153,7 @@ Configuring OpenProject through environment variables is described in detail [in
#### Real-time collaboration #### Real-time collaboration
The AIO (all-in-one) container comes bundled with the [hocuspocus](https://github.com/opf/openproject/tree/dev/blocknote/hocuspocus) server needed The AIO (all-in-one) container comes bundled with the [hocuspocus](https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus) server needed
for the real-time collaboration feature for documents. for the real-time collaboration feature for documents.
This is controlled via the following two environment variables, shown with their default values. This is controlled via the following two environment variables, shown with their default values.
@@ -192,7 +192,7 @@ The [package-based installation](../installation/packaged) requires one of the f
Both the package and docker based installations will install and setup the the [Ruby runtime](https://www.ruby-lang.org/en/), as well as the [Puma application server](https://puma.io/) that are required by OpenProject to run. Both the package and docker based installations will install and setup the the [Ruby runtime](https://www.ruby-lang.org/en/), as well as the [Puma application server](https://puma.io/) that are required by OpenProject to run.
For the [packaged installation](../installation/packaged/) and the [all-in-one docker container](../installation/docker#all-in-one-container) container, an [Apache](https://httpd.apache.org/) web server and a [PostgreSQL 17](https://www.postgresql.org/) database are installed. For the [packaged installation](../installation/packaged/) and the [all-in-one docker container](../installation/docker#all-in-one-container) container, an [Apache](https://httpd.apache.org/) web server and a [PostgreSQL 17](https://www.postgresql.org/) database are installed.
The all-in-one container will only additionally install [hocuspocus](https://github.com/opf/openproject/tree/dev/blocknote/hocuspocus), which is required for the [real-time collaboration](../../user-guide/documents/#collaborative-editing) feature in OpenProject. The all-in-one container will only additionally install [hocuspocus](https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus), which is required for the [real-time collaboration](../../user-guide/documents/#collaborative-editing) feature in OpenProject.
## Client ## Client
OpenProject supports the latest versions of the major browsers. OpenProject supports the latest versions of the major browsers.
+14 -14
View File
@@ -13,14 +13,14 @@ This page describes the available settings for the **Documents** module in the O
> [!NOTE] > [!NOTE]
> >
> Prior to OpenProject 17.0 document types were called *categories* and were configured under *Administration → Files → Categories*. > Prior to OpenProject 17.0 document types were called *categories* and were configured under *Administration → Files → Categories*.
To create or edit document categories in OpenProject, navigate to *Administration → Documents*. Here, you will automatically see all existing document types: To create or edit document categories in OpenProject, navigate to *Administration → Documents*. Here, you will automatically see all existing document types:
- The column **Type** lists all existing document type names - The column **Type** lists all existing document type names
- The column **Documents** shows the number of documents of this specific type - The column **Documents** shows the number of documents of this specific type
You can adjust the items within the list by using the options behind the **More (three dots)** menu on the right side. You can also rearrange the order by using the drag-and-drop handle on the left. You can adjust the items within the list by using the options behind the **More (three dots)** menu on the right side. You can also rearrange the order by using the drag-and-drop handle on the left.
![Document types overview in OpenProject administration](openproject_system_guide_documents_types_overview.png) ![Document types overview in OpenProject administration](openproject_system_guide_documents_types_overview.png)
@@ -28,7 +28,7 @@ You can adjust the items within the list by using the options behind the **More
To create a new document type, select the **+ Add** button in the top right corner. To create a new document type, select the **+ Add** button in the top right corner.
You can then name the new type, and activate it. You can optionally set this type to be the **Default** value. You can then name the new type, and activate it. You can optionally set this type to be the **Default** value.
> [!NOTE] > [!NOTE]
> Making this type default will override the previous default priority. > Making this type default will override the previous default priority.
@@ -48,8 +48,8 @@ To remove a document type, open the **More (three dots)** menu on the right end
![Delete a document type in OpenProject administration](openproject_system_guide_documents_types_delete_button.png) ![Delete a document type in OpenProject administration](openproject_system_guide_documents_types_delete_button.png)
You will see a dialogue informing you of the consequences. You will see a dialogue informing you of the consequences.
- If a document type is unused, this has no significant consequences. - If a document type is unused, this has no significant consequences.
![A warning message when deleting an unused document type in OpenProject](openproject_system_guide_documents_types_delete_message_type_unused.png) ![A warning message when deleting an unused document type in OpenProject](openproject_system_guide_documents_types_delete_message_type_unused.png)
@@ -65,7 +65,7 @@ You will see a dialogue informing you of the consequences.
Real-time collaboration for OpenProjects **Documents** module was introduced with the 17.0 release. When enabled, it allows multiple users to edit the same document at the same time. Changes are synchronized instantly, and users can see each others cursors and edits as they occur. This improves collaboration, especially for teams working on shared documentation or meeting notes. Real-time collaboration for OpenProjects **Documents** module was introduced with the 17.0 release. When enabled, it allows multiple users to edit the same document at the same time. Changes are synchronized instantly, and users can see each others cursors and edits as they occur. This improves collaboration, especially for teams working on shared documentation or meeting notes.
From a technical perspective, real-time collaboration relies on a running [Hocuspocus server](https://github.com/opf/openproject/tree/dev/blocknote/hocuspocus), which handles synchronization between users. OpenProject connects to this service to provide a seamless collaborative editing experience within documents. From a technical perspective, real-time collaboration relies on a running [Hocuspocus server](https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus), which handles synchronization between users. OpenProject connects to this service to provide a seamless collaborative editing experience within documents.
![Administration settings for real-time documents collaboration in OpenProject](openproject_system_guide_documents_real_time_collaboration.png) ![Administration settings for real-time documents collaboration in OpenProject](openproject_system_guide_documents_real_time_collaboration.png)
@@ -76,7 +76,7 @@ From a technical perspective, real-time collaboration relies on a running [Hocus
> - Containerized installations > - Containerized installations
> - Cloud-hosted installations > - Cloud-hosted installations
> >
> Packaged installations (DEB/RPM) require additional manual setup. This includes installing and configuring a [Hocuspocus server](https://github.com/opf/openproject/tree/dev/blocknote/hocuspocus) to enable real-time collaboration. > Packaged installations (DEB/RPM) require additional manual setup. This includes installing and configuring a [Hocuspocus server](https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus) to enable real-time collaboration.
### Enable real-time collaboration for packaged installations ### Enable real-time collaboration for packaged installations
@@ -113,8 +113,8 @@ docker compose up -d
#### 2. Configure Apache #### 2. Configure Apache
> [!NOTE] > [!NOTE]
> This part of the docs assumes that you are using the generated Apache config by the OpenProject wizard > This part of the docs assumes that you are using the generated Apache config by the OpenProject wizard
Create `/etc/openproject/addons/apache2/custom/vhost/hocuspocus.conf` with the following content: Create `/etc/openproject/addons/apache2/custom/vhost/hocuspocus.conf` with the following content:
@@ -139,16 +139,16 @@ sudo service apache2 restart
**For RHEL/CentOS-based systems, run the following command:** **For RHEL/CentOS-based systems, run the following command:**
```shell ```shell
sudo service httpd restart sudo service httpd restart
``` ```
#### 3. Enable real-time collaboration #### 3. Enable real-time collaboration
Manually configure the server URL & secret in the *Documents* administration settings in OpenProject. Manually configure the server URL & secret in the *Documents* administration settings in OpenProject.
Here you need to provide the URL in the following format: `wss://<your_op_hostname>/hocuspocus`. Here you need to provide the URL in the following format: `wss://<your_op_hostname>/hocuspocus`.
If you are using HTTP in your instance, the protocol has to be `ws://` instead of `wss://`. If you are using HTTP in your instance, the protocol has to be `ws://` instead of `wss://`.
> [!NOTE] > [!NOTE]
> The secret must be identical in both op-blocknote-hocuspocus and OpenProject. > The secret must be identical in both op-blocknote-hocuspocus and OpenProject.
@@ -12,7 +12,7 @@ A real-time collaborative editing server for [OpenProject](https://www.openproje
```bash ```bash
# Clone the OpenProject repository # Clone the OpenProject repository
git clone https://github.com/opf/openproject.git git clone https://github.com/opf/openproject.git
cd openproject/blocknote/hocuspocus cd openproject/extensions/op-blocknote-hocuspocus
# Install dependencies # Install dependencies
npm install npm install
@@ -18,7 +18,7 @@
"bugs": { "bugs": {
"url": "https://github.com/opf/openproject/issues" "url": "https://github.com/opf/openproject/issues"
}, },
"homepage": "https://github.com/opf/openproject/tree/dev/blocknote/hocuspocus#readme", "homepage": "https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus#readme",
"engines": { "engines": {
"node": ">=22.18" "node": ">=22.18"
}, },