Nextcloud: Wechsel von eingebautem auf externen Collabora Server - keine Verbindung zum Server

Hallo,

ich hatte bislang in der NC den eingebauen Collabora-Server aktiviert und nun einen eigenen Collabora-Server als Docker installiert.

Vorgegangen bin ich nach dieser Anleitung: Installation guide - Collabora Online in Nextcloud

Ich habe eine neue Subdomain samt Let’s Encrypt Zertifikat als Serveradresse für Collabora eingerichtet und im Apache die vorgeschlagene Config übernommen (nur die Serveradresse angepasst). Apache neu gestartet. Keine Fehlermeldung.

Dann in NC als Admin unter Nextcloud Office auf „Verwende deinen eigenen Server“ die Serveradresse samt Port eingetragen: https://serveradresse:9980

Auch https://localhost:9980 und https://127.0.0.1:9980 funktioniert nicht.

Das liefert aber „Es konnte keine Verbindung zum Collabora Online-Server hergestellt werden.“.

Der Collabora-Docker läuft auf demselben Server wie die NC.

Wo und wie fange ich an zu suchen?

Edit:
Serveradresse ohne Port und schon geht’s. Zumindest gründer Haken ist da…

Edit 2:
Allerdings kommt beim Versuch, ein odt zu öffnen "laden des Dokuments fehlgeschlagen. Nextcloud Office konnte nicht geladen werden - bitte versuche es später nochmal.

Edit 3:
Beim eingebauten Collabora geht’s weiterhin.

Viele Grüße
Steffen

Hallo,

die Browser-Konsole liefert ziemlich viel, wenn die Meldung kommt, dass NC Office nicht geladen werden konnte:

[NoScript]:0 Prompt Hook installation https://madita.afs-engen.de/index.php/apps/files/ [log.js:32:13](moz-extension://d247821d-3ad5-478e-9194-4dc4629f9bd8/nscl/common/log.js)

OCA.Files.Sidebar initialized [sidebar.js:39:8](webpack:///nextcloud/apps/files/src/sidebar.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///nextcloud/node_modules/@nextcloud/axios/node_modules/@nextcloud/event-bus/dist/index.es.js)

OCA.Comments.View initialized [comments-app.js:32:8](webpack:///nextcloud/apps/comments/src/comments-app.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack://sualko/cloud_bbb/node_modules/@nextcloud/event-bus/dist/index.es.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [major.js:2:14](webpack:///node_modules/semver/functions/major.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///nextcloud/node_modules/@nextcloud/axios/node_modules/@nextcloud/event-bus/dist/index.es.js)

OCA.Sharing.ShareSearch initialized [ShareSearch.js:33:10](webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js)

OCA.Sharing.ExternalLinkActions initialized [ExternalLinkActions.js:33:10](webpack:///nextcloud/apps/files_sharing/src/services/ExternalLinkActions.js)

OCA.Sharing.ExternalShareActions initialized [ExternalShareActions.js:33:10](webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///nextcloud/node_modules/@nextcloud/axios/node_modules/@nextcloud/event-bus/dist/index.es.js)

The `name` prop is required. Please migrate away from the deprecated `title` prop. 2 [NcAppNavigationItem.js:2:168848](webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.js)

[WARN] viewer: Some mimes were ignored because they are not enabled in the server previews config

Object { app: "viewer", uid: "cloudadmin", level: 2, ignoredMimes: (3) […] }

[ConsoleLogger.js:56:18](webpack:///viewer/node_modules/@nextcloud/logger/dist/ConsoleLogger.js)

OCA.Viewer initialized [Viewer.js:52:7](webpack:///viewer/src/services/Viewer.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///richdocuments/node_modules/@nextcloud/logger/node_modules/@nextcloud/event-bus/dist/index.es.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///richdocuments/node_modules/@nextcloud/logger/node_modules/@nextcloud/event-bus/dist/index.es.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///nextcloud/node_modules/@nextcloud/axios/node_modules/@nextcloud/event-bus/dist/index.es.js)

Diese Seite verwendet die nicht standardisierte Eigenschaft "zoom". Stattdessen sollte calc() in den entsprechenden Eigenschaftswerten oder "transform" zusammen mit "transform-origin: 0 0" verwendet werden. [inject.js:57:30](moz-extension://dcd1f8a2-acdc-4a09-b2af-5c7c1a00a5cc/public/js/inject.js)

session heartbeat polling started [session-heartbeat.js:103:9](webpack:///nextcloud/core/src/session-heartbeat.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///notifications/node_modules/@nextcloud/notify_push/node_modules/@nextcloud/auth/node_modules/@nextcloud/event-bus/dist/index.es.js)

Registering notifications container as a menu [NotificationsApp.vue:219](webpack:///notifications/src/NotificationsApp.vue)

Notifications permissions granted [NotificationsApp.vue:453](webpack:///notifications/src/NotificationsApp.vue)

Polling interval updated to 30000 [NotificationsApp.vue:416](webpack:///notifications/src/NotificationsApp.vue)

Started background fetcher as session_keepalive is enabled [NotificationsApp.vue:275](webpack:///notifications/src/NotificationsApp.vue)

Got notification data, restoring default polling interval. [NotificationsApp.vue:376](webpack:///notifications/src/NotificationsApp.vue)

[tiptap warn]: "@tiptap/extension-collaboration" comes with its own history support and is not compatible with "@tiptap/extension-history". [index.js:16:12](webpack:///text/node_modules/@tiptap/extension-collaboration/dist/index.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

File info for /Dokumente/About.odt fetched

Object { filename: Getter & Setter, basename: Getter & Setter, lastmod: Getter & Setter, size: Getter & Setter, type: Getter & Setter, etag: Getter & Setter, mime: Getter & Setter, getlastmodified: Getter & Setter, getcontenttype: Getter & Setter, resourcetype: Getter & Setter, … }

[Viewer.vue:523](webpack:///viewer/src/views/Viewer.vue)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 28, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }

[index.module.js:2:843727](webpack:///richdocuments/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 28, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }

[index.module.js:2:843727](webpack:///richdocuments/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 28, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }

[index.module.js:2:843727](webpack:///richdocuments/node_modules/@nextcloud/vue/dist/index.module.js)

Content-Security-Policy: 'x-frame-options' wird wegen 'frame-ancestors'-Direktive ignoriert.

Content-Security-Policy: Ignorieren von "'unsafe-inline'" innerhalb script-src: nonce-source oder hash-source angegeben [index](https://madita.afs-engen.de/index.php/apps/richdocuments/index?fileId=16&requesttoken=DOae4Hf6eJj6kSMPobL0lesG%2FqhRJtmKJje57jUT81o%3D%3ANYv6px2tLv6yoEdf4tfC%2Bt1vn%2FgdSOGySl7IlA1UsGM%3D&path=%2FDokumente%2FAbout.odt)

[NoScript]:0 Prompt Hook installation https://madita.afs-engen.de/index.php/apps/richdocuments/index?fileId=16&requesttoken=DOae4Hf6eJj6kSMPobL0lesG%2FqhRJtmKJje57jUT81o%3D%3ANYv6px2tLv6yoEdf4tfC%2Bt1vn%2FgdSOGySl7IlA1UsGM%3D&path=%2FDokumente%2FAbout.odt [log.js:32:13](moz-extension://d247821d-3ad5-478e-9194-4dc4629f9bd8/nscl/common/log.js)

Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). [content-script-start.js:7796:11](moz-extension://e37a7593-b285-460e-a21c-3e4b3efc0a7b/pages/content-script-start.js)

Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). [gaoptout.js:1:322](moz-extension://91130c2e-7295-4af2-b54f-cf9356b90019/gaoptout.js)

Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf data: blockiert ("media-src"). [index](https://madita.afs-engen.de/index.php/apps/richdocuments/index?fileId=16&requesttoken=DOae4Hf6eJj6kSMPobL0lesG%2FqhRJtmKJje57jUT81o%3D%3ANYv6px2tLv6yoEdf4tfC%2Bt1vn%2FgdSOGySl7IlA1UsGM%3D&path=%2FDokumente%2FAbout.odt)

Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf inline blockiert ("script-src"). [utils.js:42:9](moz-extension://763dd685-2225-438f-8518-453d5f5ba909/js/contentscripts/utils.js)

JQMIGRATE: Migrate is installed, version 3.4.1 [jquery-migrate.min.js:2:702](webpack:///nextcloud/node_modules/jquery-migrate/dist/jquery-migrate.min.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///nextcloud/node_modules/@nextcloud/axios/node_modules/@nextcloud/event-bus/dist/index.es.js)

OCA.Comments.View initialized [comments-app.js:32:8](webpack:///nextcloud/apps/comments/src/comments-app.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack://sualko/cloud_bbb/node_modules/@nextcloud/event-bus/dist/index.es.js)

Proxying an event bus of version 3.0.2 with 1.3.0 [index.es.js:2337:14](webpack:///richdocuments/node_modules/@nextcloud/logger/node_modules/@nextcloud/event-bus/dist/index.es.js)

session heartbeat polling started [session-heartbeat.js:103:9](webpack:///nextcloud/core/src/session-heartbeat.js)

PostMessageService.sendPostMessage parent loading [postMessage.tsx:42:16](webpack:///richdocuments/src/services/postMessage.tsx)

Waiting for page to render… [document.js:235:12](webpack:///richdocuments/src/document.js)

PostMessageService.sendPostMessage parent loading [postMessage.tsx:42:16](webpack:///richdocuments/src/services/postMessage.tsx)

[getWopiUrl] https://madita.afs-engen.de/index.php/apps/richdocuments/wopi/files/16_ocw3b1rwp8et [url.js:42:9](webpack:///richdocuments/src/helpers/url.js)

[NoScript]:0 Prompt Hook installation https://office.afs-engen.de/browser/938b8e3/cool.html?WOPISrc=https%3A%2F%2Fmadita.afs-engen.de%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F16_ocw3b1rwp8et&title=About.odt&lang=de&closebutton=1&revisionhistory=1 [log.js:32:13](moz-extension://d247821d-3ad5-478e-9194-4dc4629f9bd8/nscl/common/log.js)

Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf data: blockiert ("media-src"). [cool.html](https://office.afs-engen.de/browser/938b8e3/cool.html?WOPISrc=https%3A%2F%2Fmadita.afs-engen.de%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F16_ocw3b1rwp8et&title=About.odt&lang=de&closebutton=1&revisionhistory=1)

Diese Seite verwendet die nicht standardisierte Eigenschaft "zoom". Stattdessen sollte calc() in den entsprechenden Eigenschaftswerten oder "transform" zusammen mit "transform-origin: 0 0" verwendet werden. [cool.html:122:41](https://office.afs-engen.de/browser/938b8e3/cool.html?WOPISrc=https%3A%2F%2Fmadita.afs-engen.de%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F16_ocw3b1rwp8et&title=About.odt&lang=de&closebutton=1&revisionhistory=1)

Synchrone XMLHttpRequests am Haupt-Thread sollte nicht mehr verwendet werden, weil es nachteilige Effekte für das Erlebnis der Endbenutzer hat. Für weitere Hilfe siehe https://xhr.spec.whatwg.org/#sync-warning [bundle.js:9260:4](https://office.afs-engen.de/browser/938b8e3/bundle.js)

[NoScript]:0 Prompt Hook installation about:blank 2 [log.js:32:13](moz-extension://d247821d-3ad5-478e-9194-4dc4629f9bd8/nscl/common/log.js)

Content-Security-Policy: Die Einstellungen der Seite haben das Laden einer Ressource auf data: blockiert ("media-src"). 2 [blank](about:blank)

PostMessageService.sendPostMessage loolframe {"MessageId":"Host_PostmessageReady","SendTime":1695143050609,"Values":{}} [postMessage.tsx:42:16](webpack:///richdocuments/src/services/postMessage.tsx)

FAILED [Office.vue:212](webpack:///richdocuments/src/view/Office.vue)

loadingTimeout Office.vue:212

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 28, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }

[index.module.js:2:843727](webpack:///richdocuments/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

[document] editorInitListener: Received post message

Object { MessageId: "App_LoadingStatus", Values: {…} }

[document.js:282:13](webpack:///richdocuments/src/document.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

You need to fill either the text or the ariaLabel props in the button component.

Object { text: undefined, ariaLabel: null }

Object { _uid: 63, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }

[index.module.js:2:843071](webpack:///text/node_modules/@nextcloud/vue/dist/index.module.js)

​Aber ich kann damit wenig anfangen…

Viele Grüße
Steffen

Also was ich vermute ist content-security-policy.
In deinem webserver von nextcloud muss ein csp ejntrag gemacht werden dass das einbinden der „fremden“ collabora seite (domainname) erlaubt.

Das ist ift der grund wieso das scheins laedt aber dann blockeiert wird. Du kannst auch schaien ob die fehlermeldung im browser angezeigt wird in der Entwicklungsumgebung.
Auf alle faelle steht das auch in der datei drin die du gepostet hast das csp da was blockiert…

das war der Fehler :slight_smile:

Hättest du mal besser hier im Forum gefragt… scherz beiseite. Die Seite ist wohl nicht überarbeitet.

Wenn du hier schaust:
https://docs.nextcloud.com/server/latest/admin_manual/office/installation.html

wirst du bei Docker-installation nach hier verwiesen:

https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html

und dann würdest du lesen, was ich jetzt auch als Erstes vermutet hätte „domain=“ heißt jetzt „aliasgroup1=“…

siehe meine docker-compose.yml. Daraus kannst du dir denken, was als Optionen in einem händischen „docker run“ stehen muss:

office:
    container_name: office
    image: collabora/code:latest 
    user: root
    command: bash /root-start-libreoffice.sh 
    restart: always
    ports:
      - 9980:9980
    cap_add:
      - MKNOD
    volumes:
      - ./office/root-start-libreoffice.sh:/root-start-libreoffice.sh
    environment:
      - "aliasgroup1=https://cloud.meineschule.de:443,https://moodle.meineschule.de:443"
      - "aliasgroup2=https://cloud.test.meineschule.de:443,https://moodle.test.meineschule.de:443"
      - "dictionaries=de_DE en_GB es_ES fr_FR"
      - "extra_params=-o:user_interface.mode=classic -o:welcome.enable=false"
      - "username=gaston"
      - "password=xxxxxxxxxxxxxxx"
      - "VIRTUAL_HOST=office.meineschule.de"
      - "VIRTUAL_PORT=9980"
      - "VIRTUAL_PROTO=https"            
      - "LETSENCRYPT_HOST=office.meineschule.de"
      - "LETSENCRYPT_EMAIL=yeah@bum.boing"
    dns: 10.16.1.1
  • was du vielleicht nicht brauchst, weil dein Apache macht, was dort stand: alles mit „VIRTUAL_" und "LETSENCRYPT_“, ich nutze eben den dockercontainer nginxproxy/nginx-proxy:latest und nginxproxy/acme-companion:latest für den kram.
  • was du auch weglassen musst: „user: root“ und "command: bash… " auch das Volume musst du weglassen. Diese zweiten Konfigurationsparameter haben den Zweck durch ein manuelles startscript für den collabora-container live ein paar änderungen am java-code vorzunehmen. So muss ich nicht jedes mal ein neues Image machen. Heutzutage machen docker-experten das mit einem „build“ in der docker-compose datei. Aber wenn du mir ne PM schreibst, kannst du mein Script haben. Zweck des scripts ist die Meldung „mehr als 20 Personen“ und den quark wegzubekommen.

VG, Tobias

Hallo,

Mit dem Startbefehl
docker run -t -d -p 127.0.0.1:9980:9980 -e 'aliasgroup1=https://nextcloud.meine-schule.de:443,https://cloud.meine-schule.de:443' -e 'dictionaries=de en fr it' --restart always --cap-add MKNOD collabora/code

Tut’s leider noch immer nicht.

Edit:
Ok, da hat sich mal wieder die externe IP geändert und war nicht in der Allow list for WOPI requests.

Jetzt geht’s.

Viele Grüße
Steffen

Die Allow-list von WOPI-Requests kannst du auch erstmal in der NC leer lassen. Da versteh ich sowieso nicht, warum das nötig ist: Das wäre für den Fall, dass ein anderer Collabora-Server als der eigene der Nextcloud Dateien beim Anschauen unterschiebt.
Aber die Anfrage geht ja eigentlich von der Nextcloud aus… ist wohl ein Man-in-the-middle Angriff Szenario, dass man verhindern will… allerdings könnte man dann auch gleich viel mehr täuschen.

VG, Tobias

Hallo Tobias,

Dann warnt die NC halt

Du hast die Erlaubnisliste für WOPI-Anforderungen nicht konfiguriert. Ohne diese Einstellung können Benutzer über WOPI-Anfragen Dateien herunterladen, auf die sie möglicherweise keine Zugriffsrechte haben.

Ob das in der Praxis ein Problem ist, weiß ich nicht. Aber Herunterladen von Dateien, auf die man keinen Zugriff haben dürfte, könnte aus Gründen des Datenschutz zum Problem werden.

Bleibt zu hoffen, dass der Umzug auf den neuen ESXi bald in Angriff genommen wird. Dann hat die Server-VM eine eigene, feste IP, die ich da eintragen kann.

Viele Grüße
Steffen