Collabora and Nextcloud office Connectivity Issue

Hey everyone,
i am having trouble configuring collabora to work with nextcloud office.
I can configure my collabora server in nextcloud office and it will show me the green checkmark but when i try to open a document i get the Unauthorised WOPI host. Please try again later and report to your administrator if the issue persists.

My docker setup is:

  • Nextcloud V29.0.5
  • Collabora: V24.04.6.2.1 (the latest V24.04.7.1.1 will not start up completley complaining about partitions being mounted with the nosuid option)
  • NGINX Proxy Manager: V2.11.1

All services are in their own docker compose and connected via a docker bridge network and nginx proxy manager is used to generate lets encrypt certificates for the subdomains.
All containers are vanilla, and nextcloud was only modified via the environment variables as listed below and by installing nextcloud office.

Following @wwe’s integration guide i did the following connectivity checks which all went through except the last one:

  • From the client, verify access to the Nextcloud UI using a browser or run:
    curl https://cloud.mydomain/status.php
  • From the client, verify access to Collabora using a browser or run:
    curl https://office.mydomain/hosting/discovery
    • Ensure the result is an XML document describing the capabilities of the WOPI client.
    • Verify that the content of the XML document reflects the correct public hostname.
    • Ensure the content of the document uses the correct https:// URL scheme.
  • From Nextcloud, verify access to Collabora:
    curl https://office.mydomain/hosting/discovery
  • From Collabora, verify access to the Nextcloud UI:
    curl https://cloud.mydomain/status.php
    Fails with:
    * connect to 172.21.0.8 port 443 failed: Connection refused. 
    * Failed to connect to cloud.mydomain port 443 after 1 ms: Couldn't connect to server
    
    The same works though with http://cloud.mydomain/status.php

Here are some compose snippets that might help to troubleshoot:

nextcloud compose:

services:
  nc_app:
    image: nextcloud:29.0.5
    container_name: nc_app
    restart: always
    hostname: ${OVERWRITEHOST}
    depends_on:
      - nc_db
      - nc_redis
    expose:
      - 80
      - 443
    volumes:
      - ./nc/html:/var/www/html
      - ./nc/custom_apps:/var/www/html/custom_apps
      - ./nc/config:/var/www/html/config
      - ./nc/data:/var/www/html/data
    env_file:
      - .env
    networks:
      backend:
      frontend:
        ipv4_address: 172.21.0.8

nextcloud .env:

PUID=1000
PGID=1000
NEXTCLOUD_TRUSTED_DOMAINS=cloud.mydomain.com
NEXTCLOUD_ADMIN_USER=nc_admin
NEXTCLOUD_ADMIN_PASSWORD="password"
TRUSTED_PROXIES=172.21.0.2
OVERWRITEPROTOCOL=https
OVERWRITEHOST=cloud.mydomain.com
APACHE_DISABLE_REWRITE_IP=1
PHP_MEMORY_LIMIT=16G
PHP_UPLOAD_LIMIT=16G
NEXTCLOUD_UPLOAD_LIMIT=16G

collabora compose:

services:
  collabora:
    image: collabora/code:24.04.6.2.1
    restart: always
    expose:
      - 9980
    cap_add:
      - MKNOD
    environment:
      - domain=cloud\\.mydomain\\.de
      - username=${COLABORA_USER}
      - password=${COLABORA_USER}
      - PUID=1000 # Should be the same as the other containers
      - PGID=1000
    networks:
      frontend:
        ipv4_address: 172.21.0.4

nginx proxy manager compose:

services:
# https://nginxproxymanager.com/setup/#running-the-app
  npm_proxy:
    image: 'jc21/nginx-proxy-manager:2.11.1'
    container_name: npm_proxy
    restart: always
    ports:
      - '80:80' 
      - '443:443' 
      - '81:81' # Admin Web Port. This line can be commented after setting this up as a proxy host in NPM
    environment:
      # Uncomment this if IPv6 is not enabled on your host
      - DISABLE_IPV6=true
      - TZ=Europe/Berlin
      - PUID=1000 # Should be the same as the other containers
      - PGID=1000
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
      - ./snippets:/snippets
    networks:
      frontend:
        ipv4_address: 172.21.0.2

NGINX Configuration:

  # static files
  location ^~ /browser {
     proxy_pass $forward_scheme://$server:$port;
     proxy_set_header Host $host;
  }
  # WOPI discovery URL
  location ^~ /hosting/discovery {
     proxy_pass $forward_scheme://$server:$port;
     proxy_set_header Host $host;
  }
  # Capabilities
  location ^~ /hosting/capabilities {
     proxy_pass $forward_scheme://$server:$port;
     proxy_set_header Host $host;
  }
  # main websocket
  location ~ ^/cool/(.*)/ws$ {
     proxy_pass $forward_scheme://$server:$port;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "Upgrade";
       proxy_set_header Host $host;
       proxy_read_timeout 36000s;
    }
  # download, presentation, and image upload
  location ~ ^/(c|l)ool {
     proxy_pass $forward_scheme://$server:$port;
     proxy_set_header Host $host;
  }
  # Admin Console websocket
  location ^~ /cool/adminws {
     proxy_pass $forward_scheme://$server:$port;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "Upgrade";
     proxy_set_header Host $host;
     proxy_read_timeout 36000s;
  }
  • nextcloud
location /.well-known/carddav {
    return 301 $forward_scheme://$host/remote.php/dav;
}
location /.well-known/caldav {
    return 301 $forward_scheme://$host/remote.php/dav;
}

Logs

  • Nextcloud (installation of richdocuments and me trying to create and open an new .odt document)
[...]
nc_app    | Nextcloud was successfully installed
nc_app    | Setting trusted domains…
nc_app    | System config value trusted_domains => 1 set to string cloud.mydomain.de
nc_app    | => Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/post-installation
nc_app    | ==> Running the script (cwd: /var/www/html): "/docker-entrypoint-hooks.d/post-installation/richdocuments.sh"
nc_app    | Initializing nextcloud setup...
nc_app    | richdocuments 8.4.5 enabled
nc_app    | Config value 'wopi_url' for app 'richdocuments' is now set to 'https://office.mydomain.de', stored as mixed in fast cache
nc_app    | ✓ Reset callback url autodetect
nc_app    | Checking configuration
nc_app    | 🛈 Configured WOPI URL: https://office.mydomain.de
nc_app    | 🛈 Configured public WOPI URL: https://office.mydomain.de
nc_app    | 🛈 Configured callback URL: 
nc_app    | 
nc_app    | ✓ Fetched /hosting/discovery endpoint
nc_app    | ✓ Valid mimetype response
nc_app    | ✓ Valid capabilities entry
nc_app    | ✓ Fetched /hosting/capabilities endpoint
nc_app    | ✓ Detected WOPI server: Collabora Online Development Edition 24.04.6.2
nc_app    | 
nc_app    | Collabora URL (used for Nextcloud to contact the Collabora server):
nc_app    |   https://office.mydomain.de
nc_app    | Collabora public URL (used in the browser to open Collabora):
nc_app    |   https://office.mydomain.de
nc_app    | Callback URL (used by Collabora to connect back to Nextcloud):
nc_app    |   autodetected (will use the same URL as your user for browsing Nextcloud)
nc_app    | ==> Finished the script: "/docker-entrypoint-hooks.d/post-installation/richdocuments.sh"
nc_app    | Initializing finished
[...]
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "POST /apps/text/session/48/sync HTTP/1.1" 200 1358 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "PROPFIND /remote.php/dav/files/myuser_admin/New%20document.odt HTTP/1.1" 207 1442 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "GET /apps/files/api/v1/views HTTP/1.1" 200 759 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "POST /apps/richdocuments/token HTTP/1.1" 200 1021 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "PROPFIND /remote.php/dav/files/myuser_admin//New%20document.odt/ HTTP/1.1" 207 1434 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "GET /core/preview?fileId=249&x=32&y=32&mimeFallback=true&a=0 HTTP/1.1" 200 1083 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
nc_app    | 111.222.333.444 - - [03/Sep/2024:14:37:05 +0000] "POST /apps/text/session/48/sync HTTP/1.1" 200 1065 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
  • collabora logs showing some warnings after collabora started and the logs created when trying to open a document in nextcloud office
[...]
collabora-1  | Ready to accept connections on port 9980.
collabora-1  | 
collabora-1  | wsd-00001-00001 2024-09-03 14:46:42.670895 +0000 [ coolwsd ] TRC  Have 1 new children.| wsd/COOLWSD.cpp:4413
collabora-1  | wsd-00001-00001 2024-09-03 14:46:42.670909 +0000 [ coolwsd ] INF  WSD initialization complete: setting log-level to [warning] as configured.| wsd/COOLWSD.cpp:4428
collabora-1  | wsd-00001-00001 2024-09-03 14:46:42.671952 +0000 [ coolwsd ] WRN  Waking up dead poll thread [main], started: false, finished: false| net/Socket.hpp:727
collabora-1  | frk-00026-00026 2024-09-03 14:46:42.672481 +0000 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to copy sysTemplate to jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:557
collabora-1  | frk-00026-00026 2024-09-03 14:46:42.683596 +0000 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to copy sysTemplate to jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:557
collabora-1  | frk-00026-00026 2024-09-03 14:46:42.695491 +0000 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to copy sysTemplate to jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:557
collabora-1  | WOPI::CheckFileInfo failed for URI [https://cloud.seesselberg.fyi/index.php/apps/richdocuments/wopi/files/249_oc343uzvjni7?access_token=YHyk68yiYIshKRcdpik7fPRq4842dWtd&access_token_ttl=0]: 0 (Unknown) . Headers:      Body: []| wsd/wopi/CheckFileInfo.cpp:95
collabora-1  | wsd-00001-00034 2024-09-03 14:46:52.031774 +0000 [ websrv_poll ] ERR  #31: Invalid URI or access denied to [https://cloud.mydomain.de/index.php/apps/richdocuments/wopi/files/249_oc343uzvjni7?access_token=YHyk68yiYIshKRcdpik7fPRq4842dWtd&access_token_ttl=0]| wsd/wopi/CheckFileInfo.cpp:109
collabora-1  | wsd-00001-00034 2024-09-03 14:46:52.212450 +0000 [ websrv_poll ] ERR  #30: CheckFileInfo failed for [https%3A%2F%2Fcloud.mydomain.de%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F249_oc343uzvjni7], State::Fail| wsd/RequestVettingStation.cpp:281

I would very greatful if anyone could point me somewhere, where i can figure out what the issue is here.

@Botanist-Gr7een thank you for such qualified post it’s always a joy not to ask silly questions :tada:

you already isolated the problem, we only need to find the root cause.

This step is definitely the blocker now:

for a reason I don’t understand from the config you posted your CODE connects to nc_app container directly and this fails because it doesn’t have valid certificate (which is expected in case of “TLS offloading” like in your case).

the connection from CODE must reach your reverseproxy at ipv4_address: 172.21.0.2

This might help

It is not related to the problem but community microservices image doesn’t utilize PUID variables (maybe upstream consume it partially)… you can look at Nextcloud docker-compose setup with notify_push (2024) to learn how to make the whole Nextcloud container running as specific user.

for my education

  • why do you use fixed ip addresses - Docker is expected to manage them on it’s own - is it required for npm_proxy?
  • what is the content of /docker-entrypoint-hooks.d/post-installation/richdocuments.sh
1 Like

@wwe thanks a lot (with this reply and all the very helpful guides and answers), the alias attribute solved the connectivity issue!

EDIT After posting this I found the solution in another thread. I resolved my instability problems described below below by removing the hostname: ${OVERWRITEHOST} attribute in my nextcloud docker compose as suggested here by @John2

  • Document loading failed Failed to read document from storage, please try to load the document again. Please check the Collabora Online server log for more details and make sure that Nextcloud can be reached from there. (after a second try it usually works)

    collabora  | wsd-00001-00039 2024-09-04 09:11:40.940554 +0000 [ docbroker_001 ] ERR  WOPI::GetFile [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6/contents?access_token=&access_token_ttl=0] failed with Status Code: 0 (Unknown)| wsd/wopi/WopiStorage.cpp:681
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.940759 +0000 [ docbroker_001 ] ERR  Cannot download document from WOPI storage uri [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6/contents?access_token=&access_token_ttl=0]. Error: WOPI::GetFile [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6/contents?access_token=&access_token_ttl=0] failed: | wsd/wopi/WopiStorage.cpp:611
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.942335 +0000 [ docbroker_001 ] ERR  loading document exception: WOPI::GetFile [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6/contents?access_token=&access_token_ttl=0] failed: | wsd/DocumentBroker.cpp:3064
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.942447 +0000 [ docbroker_001 ] ERR  Failed to add session to [https%3A%2F%2Fcloud.mydomain.com%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F372_ocws3ad8g0w6] with URI [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6?access_token=AeRv43LLN7LpKD6Pls0y3nz7lqGZyFAs&access_token_ttl=0]: WOPI::GetFile [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6/contents?access_token=&access_token_ttl=0] failed: | wsd/DocumentBroker.cpp:3023
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.942502 +0000 [ docbroker_001 ] ERR  Storage error while starting session on https%3A%2F%2Fcloud.mydomain.com%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F372_ocws3ad8g0w6 for socket #33. Terminating connection. Error: WOPI::GetFile [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/372_ocws3ad8g0w6/contents?access_token=&access_token_ttl=0] failed: | wsd/RequestVettingStation.cpp:434
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.943170 +0000 [ docbroker_001 ] ERR  #33: Socket write returned -1 (ENOENT: No such file or directory)| net/Socket.hpp:1483
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.943439 +0000 [ docbroker_001 ] WRN  ClientSession must be known| wsd/DocumentBroker.cpp:4058
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.968240 +0000 [ docbroker_001 ] WRN  #28: Unassociated Kit (36) disconnected unexpectedly| wsd/COOLWSD.cpp:3720
    collabora  | wsd-00001-00039 2024-09-04 09:11:40.968391 +0000 [ docbroker_001 ] WRN  #28: Unknown Kit process closed with pid -1| wsd/COOLWSD.cpp:3727
    collabora  | sh: 1: /usr/bin/coolmount: Operation not permitted
    collabora  | sh: 1: /usr/bin/coolmount: Operation not permitted
    collabora  | sh: 1: /usr/bin/coolmount: Operation not permitted
    
  • Document loading failed Unauthorised WOPI host. Please try again later and report to your administrator if the issue persists. (it seems a restart of the collabora container helps for the shortterm)

    collabora  | frk-00026-00026 2024-09-04 09:17:02.142999 +0000 [ forkit ] WRN  The systemplate directory [/opt/cool/systemplate] is read-only, and at least [/opt/cool/systemplate//etc/hosts] is out-of-date. Will have to copy sysTemplate to jails. To restore optimal performance, make sure the files in [/opt/cool/systemplate/etc] are up-to-date.| common/JailUtil.cpp:557
    collabora  | sh: 1: /usr/bin/coolmount: Operation not permitted
    collabora  | sh: 1: /usr/bin/coolmount: Operation not permitted
    collabora  | sh: 1: /usr/bin/coolmount: Operation not permitted
    collabora  | WOPI::CheckFileInfo failed for URI [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/479_ocws3ad8g0w6?access_token=5FtHC4bwmJvHyyTA1jJyWdXQe5EB1jRq&access_token_ttl=0]: 0 (Unknown) . Headers:        Body: []| wsd/wopi/CheckFileInfo.cpp:95
    collabora  | wsd-00001-00034 2024-09-04 09:17:04.389762 +0000 [ websrv_poll ] ERR  #30: Invalid URI or access denied to [https://cloud.mydomain.com/index.php/apps/richdocuments/wopi/files/479_ocws3ad8g0w6?access_token=5FtHC4bwmJvHyyTA1jJyWdXQe5EB1jRq&access_token_ttl=0]| wsd/wopi/CheckFileInfo.cpp:109
    collabora  | wsd-00001-00034 2024-09-04 09:17:04.516083 +0000 [ websrv_poll ] ERR  #29: CheckFileInfo failed for [https%3A%2F%2Fcloud.mydomain.com%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F479_ocws3ad8g0w6], State::Fail| wsd/RequestVettingStation.cpp:265
    

these are the outputs of curling from collabora to nc and vice versa:

my_user@my_machine:/services/vps_stack/nextcloud$ docker exec -it collabora curl https://cloud.mydomain.com/status.php -vvv
*   Trying 172.18.0.2:443...
* Connected to cloud.mydomain.com (172.18.0.2) port 443 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=cloud.mydomain.com
*  start date: Sep  3 09:41:30 2024 GMT
*  expire date: Dec  2 09:41:29 2024 GMT
*  subjectAltName: host "cloud.mydomain.com" matched cert's "cloud.mydomain.com"
*  issuer: C=US; O=Let's Encrypt; CN=E5
*  SSL certificate verify ok.
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /status.php]
* h2h3 [:scheme: https]
* h2h3 [:authority: cloud.mydomain.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x55cee0662ce0)
> GET /status.php HTTP/2
> Host: cloud.mydomain.com
> user-agent: curl/7.88.1
> accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 200 
< server: openresty
< date: Wed, 04 Sep 2024 09:57:58 GMT
< content-type: application/json
< content-length: 170
< referrer-policy: no-referrer
< x-content-type-options: nosniff
< x-frame-options: SAMEORIGIN
< x-permitted-cross-domain-policies: none
< x-robots-tag: noindex, nofollow
< x-xss-protection: 1; mode=block
< x-powered-by: PHP/8.2.23
< set-cookie: ocp6f2xlh9z3=311eeeb1514bb79caaede93cf6fbebc6; path=/; secure; HttpOnly; SameSite=Lax
< set-cookie: oc_sessionPassphrase=TOKQk9T70xaS8HUYlxDCp7CQ%2Bp4VussRqr%2ByUgx%2BonKsbPrnegAhTc%2BsS4262vIWn%2BtRU19fixpqqBqenIVsl0hX1YbvUnlhAdfo0FhzX5B17w3lAsGcfJbdqbbz1Wou; path=/; secure; HttpOnly; SameSite=Lax
< set-cookie: ocp6f2xlh9z3=311eeeb1514bb79caaede93cf6fbebc6; path=/; secure; HttpOnly; SameSite=Lax
< content-security-policy: default-src 'self'; script-src 'self' 'nonce-WWJGK2FnRi9uTWtTSUlWVTA0ZnVBdDVtMDl5aVRQOFVsUnQ3M2wxYVA0Zz06TU9NcFBHc3YrSm81WmNFeXVLeTJNZWt0aEpMM0xzaGgyelFMcnc0MFpmND0='; style-src 'self' 'unsafe-inline'; frame-src *; img-src * data: blob:; font-src 'self' data:; media-src *; connect-src *; object-src 'none'; base-uri 'self';
< set-cookie: __Host-nc_sameSiteCookielax=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=lax
< set-cookie: __Host-nc_sameSiteCookiestrict=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=strict
< set-cookie: ocp6f2xlh9z3=311eeeb1514bb79caaede93cf6fbebc6; path=/; secure; HttpOnly; SameSite=Lax
< access-control-allow-origin: *
< strict-transport-security: max-age=63072000; preload
< x-served-by: cloud.mydomain.com
< 
* Connection #0 to host cloud.mydomain.com left intact
{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"29.0.5.1","versionstring":"29.0.5","edition":""my_user@my_machine:/services/vps_stack/nextcloud$ docker exec -it nc_app curl https://office.mydomain.com/hosting/discovery
<wopi-discovery>
    <net-zone name="external-http">

        <!-- Writer documents -->
        <app favIconUrl="https://office.mydomain.com/browser/61cf2b4/images/x-office-document.svg" name="writer">
            <action default="true" ext="sxw" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="odt" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="fodt" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Text template documents -->
            <action default="true" ext="stw" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="ott" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- MS Word -->
            <action default="true" ext="doc" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="dot" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- OOXML wordprocessing -->
            <action default="true" ext="docx" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="docm" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="dotx" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="dotm" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Others -->
            <action default="true" ext="wpd" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="pdb" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="hwp" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="wps" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="wri" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="lrf" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="mw" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="rtf" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="txt" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="fb2" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="cwk" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="pages" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="abw" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="602" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <app name="writer-global">
            <!-- Text master documents -->
            <action default="true" ext="sxg" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="odm" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Writer master document templates -->
            <action default="true" ext="otm" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <app name="writer-web">
            <action default="true" ext="oth" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Calc documents -->
        <app favIconUrl="https://office.mydomain.com/browser/61cf2b4/images/x-office-spreadsheet.svg" name="calc">
            <action default="true" ext="sxc" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="ods" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="fods" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Spreadsheet template documents -->
            <action default="true" ext="stc" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="ots" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- MS Excel -->
            <action default="true" ext="xls" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="xla" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- OOXML spreadsheet -->
            <action default="true" ext="xltx" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="xltm" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="xlsx" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="xlsb" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="xlsm" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Others -->
            <action default="true" ext="dif" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="slk" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="csv" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="dbf" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="wk1" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="gnumeric" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="numbers" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Impress documents -->
        <app favIconUrl="https://office.mydomain.com/browser/61cf2b4/images/x-office-presentation.svg" name="impress">
            <action default="true" ext="sxi" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="odp" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="fodp" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Presentation template documents -->
            <action default="true" ext="sti" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="otp" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- MS PowerPoint -->
            <action default="true" ext="ppt" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="pot" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- OOXML presentation -->
            <action default="true" ext="pptx" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="pptm" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="potx" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="potm" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="ppsx" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Others -->
            <action default="true" ext="cgm" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="key" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Draw documents -->
        <app name="draw">
            <action default="true" ext="sxd" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="odg" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="fodg" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Drawing template documents -->
            <action default="true" ext="std" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="otg" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <!-- Others -->
            <action ext="svg" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="dxf" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="emf" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="wmf" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="cdr" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="vsd" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="vsdx" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="vss" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="pub" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="p65" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="wpg" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action default="true" ext="fh" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="bmp" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="png" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="gif" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="tiff" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="jpg" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="jpeg" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
            <action ext="pdf" name="view_comment" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Math documents -->
        <!-- In fact Math documents are not supported at all.
             See: https://bugs.documentfoundation.org/show_bug.cgi?id=97006
        <app name="math">
            <action name="view" default="true" ext="sxm"/>
            <action name="edit" default="true" ext="odf"/>
        </app>
        -->

        <!-- Legacy MIME-type actions (compatibility) -->

        <app name="image/svg+xml">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-powerpoint">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-excel">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Writer documents -->
        <app name="application/vnd.sun.xml.writer">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.text">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.text-flat-xml">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Calc documents -->
        <app name="application/vnd.sun.xml.calc">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.spreadsheet">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.spreadsheet-flat-xml">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Impress documents -->
        <app name="application/vnd.sun.xml.impress">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.presentation">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.presentation-flat-xml">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Draw documents -->
        <app name="application/vnd.sun.xml.draw">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.graphics">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.graphics-flat-xml">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Chart documents -->
        <app name="application/vnd.oasis.opendocument.chart">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Text master documents -->
        <app name="application/vnd.sun.xml.writer.global">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.text-master">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Math documents -->
        <!-- In fact Math documents are not supported at all.
             See: https://bugs.documentfoundation.org/show_bug.cgi?id=97006
        <app name="application/vnd.sun.xml.math">
            <action name="view" default="true" ext=""/>
        </app>
        <app name="application/vnd.oasis.opendocument.formula">
            <action name="edit" default="true" ext=""/>
        </app>
        -->
        <!-- Text template documents -->
        <app name="application/vnd.sun.xml.writer.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.text-template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Writer master document templates -->
        <app name="application/vnd.oasis.opendocument.text-master-template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Spreadsheet template documents -->
        <app name="application/vnd.sun.xml.calc.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.spreadsheet-template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Presentation template documents -->
        <app name="application/vnd.sun.xml.impress.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.presentation-template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Drawing template documents -->
        <app name="application/vnd.sun.xml.draw.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.graphics-template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- MS Word -->
        <app name="application/msword">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/msword">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- MS Excel -->
        <app name="application/vnd.ms-excel">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- MS PowerPoint -->
        <app name="application/vnd.ms-powerpoint">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- OOXML wordprocessing -->
        <app name="application/vnd.openxmlformats-officedocument.wordprocessingml.document">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-word.document.macroEnabled.12">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.openxmlformats-officedocument.wordprocessingml.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-word.template.macroEnabled.12">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- OOXML spreadsheet -->
        <app name="application/vnd.openxmlformats-officedocument.spreadsheetml.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-excel.template.macroEnabled.12">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-excel.sheet.binary.macroEnabled.12">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-excel.sheet.macroEnabled.12">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- OOXML presentation -->
        <app name="application/vnd.openxmlformats-officedocument.presentationml.presentation">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-powerpoint.presentation.macroEnabled.12">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.openxmlformats-officedocument.presentationml.template">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-powerpoint.template.macroEnabled.12">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- Others -->
        <app name="application/vnd.wordperfect">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-aportisdoc">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-hwp">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-works">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-mswrite">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-dif-document">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="text/spreadsheet">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="text/csv">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-dbase">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.lotus-1-2-3">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/cgm">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/vnd.dxf">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/x-emf">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/x-wmf">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/coreldraw">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.visio2013">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.visio">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.ms-visio.drawing">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-mspublisher">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-sony-bbeb">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-gnumeric">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/macwriteii">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-iwork-numbers-sffnumbers">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.oasis.opendocument.text-web">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-pagemaker">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="text/rtf">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="text/plain">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-fictionbook+xml">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/clarisworks">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/x-wpg">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-iwork-pages-sffpages">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.openxmlformats-officedocument.presentationml.slideshow">
            <action default="true" ext="" name="edit" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-iwork-keynote-sffkey">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-abiword">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/x-freehand">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/vnd.sun.xml.chart">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/x-t602">
            <action default="true" ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/bmp">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/png">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/gif">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/tiff">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/jpg">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="image/jpeg">
            <action ext="" name="view" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>
        <app name="application/pdf">
            <action ext="" name="view_comment" urlsrc="https://office.mydomain.com/browser/61cf2b4/cool.html?"/>
        </app>

        <!-- End of legacy MIME-type actions -->

        <app name="Capabilities">
            <action ext="" name="getinfo" urlsrc="https://office.mydomain.com/hosting/capabilities"/>
        </app>
    </net-zone>
</wopi-discovery>my_user@my_machine:/services/vps_stack/nextcloud$ ^

Also thanks for the heads up with the PUID/GUID! I copied that probably from my current nextcloud instance where i use the linuxserverio container where they use PUID and GUID. Currently i try to create my new stack using the vanilla images.
Your guide Nextcloud docker-compose setup with notify_push (2024) also gives me some inspiration of what else i could integrate after getting collabora to work reliably!

About your questions:

  • I decided to use ip adresses, as sometimes while experimenting, when restarting my docker compose files after changing some things, it would change the container name (probably because i haven’t deleted the dangling ones), which was annoying for with my npm_proxy. Thats why I thought it wouldn’t hurt to just fix the ip addresses (though i don’t know if it has other implications i am not aware of)

  • my richdocuments.sh at the moment only contains the following (but i intend to add all my config.php changes to it as i like the idea of having everything configurated without copy pasting things into the config.php manually)

    #!/bin/sh
    set -eu
    
    if [ ! -f /var/www/html/.post_setup_done ]; then
    
        echo "Initializing nextcloud setup..."
        php /var/www/html/occ app:enable richdocuments
        php /var/www/html/occ config:app:set richdocuments wopi_url --value https://office.mydomain.com
        php /var/www/html/occ richdocuments:activate-config
        # php /var/www/html/occ 
    
        touch /var/www/html/.post_setup_done
    fi
    

Thanks again for solving my issue @wwe, now everything seems to work as intended!

1 Like

I didn’t recognize this before - this was obviously the reason for CODE talking directly to the NC container!

great to hear it works for you now!