Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

**VIDEO GUIDE How to Setup Collabora with Nextcloud for our own online document suite **

Featured Replies

@Knutowskie @[email protected]

 

Fix for @SpaceInvaderOne config not working
I got it working with a new proxy configuration file based on the documentation on Collabora's website.

The reason it stopped working is that the image for the docker container was updated with new directories - Hence what was /loleaflet is now /browser and /lool is now /cool.

The docker container itself hasn't been updated which is why the WebUI isn't working. - Can't seem to push an update to the container, so maybe @chvb can fix it? 

 

Fixing the WebUI:

  1. Edit the Collabora template 
  2. Enable advanced view
  3. Change the WebUI url to: 
    https://[IP]:[PORT:9980]/browser/dist/admin/admin.html
  4. Update the template and voila - Login with your admin details

Fixing the proxy configuration file:

Change lines 17, 35, 44 and 54 to their new directories inside the NGINX .conf file - I've attached it here as a file and code.

# make sure that your dns has a cname set for collabora. If you setup Collabora to use the custom docker network (as in my earlier videos for reverse proxy)
# then this config file will work as is. However the container name is expected to be "Collabora" as it is by default in chvb's container.  
# If you are not using the custom docker network for this container then change the line "server Collabora:9980;" to "server [YOUR_SERVER_IP]:9980;"


resolver 127.0.0.11 valid=30s;
upstream collabora {
    server Collabora:9980;
}

server {
    listen       443 ssl;
    server_name collabora.*;
    include /config/nginx/ssl.conf;
	
   # static files
    location ^~ /browser {
        proxy_pass https://collabora;
        proxy_set_header Host $host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass https://collabora;
        proxy_set_header Host $host;
    }
	
    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass https://collabora;
        proxy_set_header Host $http_host;
    }

	# main websocket
	    location ~ ^/cool/(.*)/ws$ {
	        proxy_pass https://collabora;
	        proxy_set_header Upgrade $http_upgrade;
	        proxy_set_header Connection "Upgrade";
	        proxy_set_header Host $http_host;
	        proxy_read_timeout 36000s;
	    }
		
    # Admin Console websocket
    location ^~ /cool/adminws {
	proxy_buffering off;
        proxy_pass https://collabora;
        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 https://collabora;
           proxy_set_header Host $http_host;
       }
}

 

Working07-01-2022-collabora.subdomain.conf

  • 2 weeks later...

@doblez so I'm trying to set this um with Nginx Proxy Manager. It looks like someone got a fix for it but it still uses the old /loleaflet and /lool: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/70

 

However, even after changing these two locations, it still won't work. What do you mean that I should change lines 17, 35, 44 and 54 the new directories?

 

Thanks

  • 4 weeks later...
On 1/16/2022 at 8:43 PM, hekitoo said:

@doblez so I'm trying to set this um with Nginx Proxy Manager. It looks like someone got a fix for it but it still uses the old /loleaflet and /lool: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/70

 

However, even after changing these two locations, it still won't work. What do you mean that I should change lines 17, 35, 44 and 54 the new directories?

 

Thanks

# static files
location ^~ /browser {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}

# WOPI discovery URL
location ^~ /hosting/discovery {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}

# main websocket
location ~ ^/cool/(.*)/ws$ {
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
  proxy_read_timeout 36000s;
}

# download, presentation and image upload
location ~ ^/(c|l)ool {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}

# Admin Console websocket
location ^~ /cool/adminws {
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
  proxy_read_timeout 36000s;
}

 

Like I have changed it here - The directories/location for admin console websocket, download presentation and image upload, main websocket and static files.

If you follow JC21's post on the github link you posted but use the above instead, it should work.

 

Not that you still won't be able to open the WebUI unless you follow the instructions for changing the webUI-port, but the container and integration itself should work.

  • 1 month later...

As of 11/4/22 the collabora docker crashes and burns in unraid. You manually start it. It stops a few seconds later.  No config file will fix this.  I went to UNRAID forums and cannot find a reference to collabora and CHVB in the same sentence.  Does that mean it is abandoned?

 

 

Edit

A workaround.

If you put collabora/code:21.11.2.4.1 in the repository field in the unraid docker template, it will load the last known working version of collabora.

Not a fix, but at least it unbreaks it.

 

Edited by Jessie

6 hours ago, Jessie said:

As of 11/4/22 the collabora docker crashes and burns in unraid. You manually start it. It stops a few seconds later.  No config file will fix this.  I went to UNRAID forums and cannot find a reference to collabora and CHVB in the same sentence.  Does that mean it is abandoned?

 

Probably.  However, I was able to get the container running by removing the domains value in the template. I haven't got it connected back to nc yet, but apparently there is a way to do it, I just haven't had time to work on it.

collabora/nextcloud office docs was working, after update log shows

 

clog.png.a94230837ace52241ebcea19a5d428c4.png

 

ERR: Use of domain variable is not supported. First host/domain who tries to connect to COOL is always allowed.
To allow multiple host and its aliases use something like this and pass it as env variable:
aliasgroup1=https://domain1:443,https://its-alias|its-second-alias:443
aliasgroup2=https://domain2:443,https://its-alias:443
https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html

 

looks like  some changes on last update that affect the allowed domains/alliasnames

 

collabora.png.b3c359efb07562c1f7162ae313c9ae98.png

 

-going back to previous version gets you back online (w/nextcloud no longer connecting to collabora server)

-staying in latest and leaving "Container Variable: domain" empty starts the container (w/nextcloud 'Could not establish connection to the Collabora Online server.')

 

 

anyone figured out the new required variable syntax, to get Collabora back up and running w/nextcloud?

 

Edited by Tolete

6 hours ago, Tolete said:

collabora/nextcloud office docs was working, after update log shows

 

clog.png.a94230837ace52241ebcea19a5d428c4.png

 

ERR: Use of domain variable is not supported. First host/domain who tries to connect to COOL is always allowed.
To allow multiple host and its aliases use something like this and pass it as env variable:
aliasgroup1=https://domain1:443,https://its-alias|its-second-alias:443
aliasgroup2=https://domain2:443,https://its-alias:443
https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html

 

looks like  some changes on last update that affect the allowed domains/alliasnames

 

collabora.png.b3c359efb07562c1f7162ae313c9ae98.png

 

-going back to previous version gets you back online (w/nextcloud no longer connecting to collabora server)

-staying in latest and leaving "Container Variable: domain" empty starts the container (w/nextcloud 'Could not establish connection to the Collabora Online server.')

 

 

anyone figured out the new required variable syntax, to get Collabora back up and running w/nextcloud?

 

I have the same problem. It's taken down my nextcloud instance as well! I would have expected Nextcloud to still function is Collabora cannot start. Any ideas?

17 hours ago, 01cooperl said:

I have the same problem. It's taken down my nextcloud instance as well! I would have expected Nextcloud to still function is Collabora cannot start. Any ideas?

 

My nextcloud instance is not affected by collabora other than can't connect to Collabora.

nc.png.20d3d61b722b9caa6cd8a11a9b00e345.png

 

-i would start up a new nextcloud instance and test.

Edited by Tolete

On 4/12/2022 at 2:04 PM, Tolete said:

 

My nextcloud instance is not affected by collabora other than can't connect to Collabora.

nc.png.20d3d61b722b9caa6cd8a11a9b00e345.png

 

-i would start up a new nextcloud instance and test.

I changed the domain to blank as suggested above to successfully start the collabora container and now nextcloud is working again. I guess it must be how I configured nextcloud to connect to collabora or swag is doing something weird

On 4/15/2022 at 4:56 AM, 01cooperl said:

I changed the domain to blank as suggested above to successfully start the collabora container and now nextcloud is working again. I guess it must be how I configured nextcloud to connect to collabora or swag is doing something weird

 

check out my post @

and follow steps there.

  • 5 months later...

Had the issue of not being able to open anything and the web ui not working. Made the associated changes for the nginx in my swag container, deleted collabora container and image, reinstalled from the app store (no domain needed as it's now setup as "first come, first serve" and bam... documents are opening again.

On 9/26/2022 at 9:13 PM, lilfade said:

Had the issue of not being able to open anything and the web ui not working. Made the associated changes for the nginx in my swag container, deleted collabora container and image, reinstalled from the app store (no domain needed as it's now setup as "first come, first serve" and bam... documents are opening again.

did you configure the aliasgroup1 variable?

  • 2 weeks later...
On 9/29/2022 at 2:53 PM, UnKwicks said:

did you configure the aliasgroup1 variable?

no, i left em all off as the *new updated* container recommends. As far as i can tell, you only need the alias if your working with multiple domains, if you only have one domain dont add alias or domains, just remove them and it should work as it should.

  • 4 weeks later...

I was having a heck of a time figuring out the correct collabora subdomain proxy config for SWAG. I came across this site which helped me successfully get Nextcloud, SWAG & Collabora working. The config at that link worked for me -- I only changed line 37 to my Unraid IP. Sharing here in case it helps anyone else.

 

My current `collabora.subdomain.conf`

 

## Version 2022/09/08
# make sure that your dns has a cname set for collabora and that your collabora container is named collabora

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name collabora.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app XX.XX.XX.XX;
        set $upstream_port 9980;
        set $upstream_proto https;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}

Set your server IP in line 37

 

--

 

Unraid specific info that is not included in the above link...

 

Edit the collabora container in unraid, remove domain, add new variable as below

image.png.1b6a78a85ec6caaf17ed7c5d9d2ac42b.png

Edited by ramair02

  • 8 months later...

@ramair02

 

I wonder how you got this working. I added the aliasgroup1 variable like you recommended. I am on unraid 6.11.5 currently, running SWAG, nextcloud, and mariaDB setup and of course trying to use the collabora app with nextcloud now for online document editing and just having no luck. I will attach my collabora.subdomain.conf file, and screenshots of my setup.

 

I get a green checkmark in nextcloud, but when I load documents it fails every time. Here also is the collabora logs with errors. I have tried to follow multiple guides with no luck. I can provide any more info on my setup as needed.

 

wsd-00001-00001 2023-07-05 14:12:00.194834 -0700 [ coolwsd ] INF  WSD initialization complete: setting log-level to [warning] as configured.| wsd/COOLWSD.cpp:5700
Ready to accept connections on port 9980.

wsd-00001-00042 2023-07-05 14:12:11.870016 -0700 [ websrv_poll ] WRN  convert-to: Requesting address is denied: [my public IP]| wsd/COOLWSD.cpp:3793
wsd-00001-00042 2023-07-05 14:12:20.640023 -0700 [ websrv_poll ] ERR  unknown UI default's component UITheme| wsd/FileServerUtil.cpp:99

Screen Shot 2023-07-05 at 4.20.14 PM.png

Screen Shot 2023-07-05 at 4.21.32 PM.png

Screen Shot 2023-07-05 at 4.27.11 PM.png

collabora.subdomain.conf

  • 2 months later...

Is there anyone who is successfully using collabora code in a docker?

I am on Nextcloud hub 6 (27.0.1) and latest Collabora Code docker. All my dockers are in br0, with IPs on the same subnet. I am using NGINX Proxy Manager.

I have created proxy host for nextcloud.* that points to my nextcloud. I have created the same for office.* that points to https://IP_OF_COLLABORA:DOCKER port 9980 with websockets enabled, and even with some additional config I found on some sites:

 

# static files
location ^~ /browser {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/cool/(.*)/ws$ {
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
  proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ ^/cool {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /cool/adminws {
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
  proxy_read_timeout 36000s;
}

 

My dockers can talk to each other, and I pointed nextcloud to use https://office.* (without port, as port is handled by NPM) and nextcloud can connect to the collabora server.

However when I create document and try to open it, it fails after maybe 10 seconds with:

 

image.png.105ffa38463b00ced685ac4365db2ac1.png

 

Honestly, I am not even sure which logs matter at this point. Here is latest what I see in collabora docker:

wsd-00001-00047 2023-09-20 22:00:10.390097 +0200 [ docbroker_002 ] ERR  loading document exception: WOPI::CheckFileInfo failed: | wsd/DocumentBroker.cpp:2610
wsd-00001-00047 2023-09-20 22:00:10.390111 +0200 [ docbroker_002 ] ERR  Failed to add session to [https%3A%2F%2Fnextcloud.*%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F871848_instanceid] with URI [https://nextcloud.*/index.php/apps/richdocuments/wopi/files/871848_instanceid?access_token=Q8BemIu9osHPNyQCq3ikA4xFXTQKncL7&access_token_ttl=0&permission=edit]: WOPI::CheckFileInfo failed: | wsd/DocumentBroker.cpp:2572
wsd-00001-00047 2023-09-20 22:00:10.390120 +0200 [ docbroker_002 ] ERR  Storage error while starting session on https%3A%2F%2Fnextcloud.*%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F871848_instanceid for socket #18. Terminating connection. Error: WOPI::CheckFileInfo failed: | wsd/COOLWSD.cpp:5052
wsd-00001-00047 2023-09-20 22:00:10.394410 +0200 [ docbroker_002 ] ERR  #24: Read failed, have 0 buffered bytes (ECONNRESET: Connection reset by peer)| net/Socket.hpp:1122
wsd-00001-00047 2023-09-20 22:00:10.394428 +0200 [ docbroker_002 ] WRN  #24: Unassociated Kit (46) disconnected unexpectedly| wsd/COOLWSD.cpp:3491
frk-00038-00038 2023-09-20 22:00:10.404696 +0200 [ 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:524
sh: 1: /usr/bin/coolmount: Operation not permitted
sh: 1: /usr/bin/coolmount: Operation not permitted
sh: 1: /usr/bin/coolmount: Operation not permitted
wsd-00001-00055 2023-09-20 22:00:10.563226 +0200 [ docbroker_003 ] WRN  #29: Failed to verify the certificate of [nextcloud.*]| net/SslSocket.hpp:252
wsd-00001-00055 2023-09-20 22:00:10.563294 +0200 [ docbroker_003 ] ERR  WOPI::CheckFileInfo failed for URI [https://nextcloud.*/index.php/apps/richdocuments/wopi/files/871848_instanceid?access_token=Q8BemIu9osHPNyQCq3ikA4xFXTQKncL7&access_token_ttl=0&permission=edit]: 0 (Unknown) . Headers:        Body: []| wsd/Storage.cpp:708
wsd-00001-00055 2023-09-20 22:00:10.563320 +0200 [ docbroker_003 ] ERR  loading document exception: WOPI::CheckFileInfo failed: | wsd/DocumentBroker.cpp:2610
wsd-00001-00055 2023-09-20 22:00:10.563327 +0200 [ docbroker_003 ] ERR  Failed to add session to [https%3A%2F%2Fnextcloud.*%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F871848_instanceid] with URI [https://nextcloud.*/index.php/apps/richdocuments/wopi/files/871848_instanceid?access_token=Q8BemIu9osHPNyQCq3ikA4xFXTQKncL7&access_token_ttl=0&permission=edit]: WOPI::CheckFileInfo failed: | wsd/DocumentBroker.cpp:2572
wsd-00001-00055 2023-09-20 22:00:10.563333 +0200 [ docbroker_003 ] ERR  Storage error while starting session on https%3A%2F%2Fnextcloud.*%3A443%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F871848_instanceid for socket #24. Terminating connection. Error: WOPI::CheckFileInfo failed: | wsd/COOLWSD.cpp:5052
wsd-00001-00055 2023-09-20 22:00:10.567161 +0200 [ docbroker_003 ] ERR  #18: Read failed, have 0 buffered bytes (ECONNRESET: Connection reset by peer)| net/Socket.hpp:1122
wsd-00001-00055 2023-09-20 22:00:10.567170 +0200 [ docbroker_003 ] WRN  #18: Unassociated Kit (54) disconnected unexpectedly| wsd/COOLWSD.cpp:3491
frk-00038-00038 2023-09-20 22:00:10.576432 +0200 [ 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:524
sh: 1: /usr/bin/coolmount: Operation not permitted
sh: 1: /usr/bin/coolmount: Operation not permitted
sh: 1: /usr/bin/coolmount: Operation not permitted

 

When I open developer console in Chrome, I am getting this:

image.png.6aa5898ed105fc868453a54bff79d9de.png

 

Can anyone advise?

 

// edit

I was able to resolve my issue. Spaceinvader's video pointed me in the right direction.

I use pihole and internally, for nextcloud.* I resolve local IP of my reverse proxy. Same for collabora (office.*). In nextcloud's docker, I use extra parameter to use pihole proxy (by default, servers on my server segment don't get pihole proxy) and that allows nextcloud to resolve locally collabora's IP. Since Spaceinvader mentioned that both collabora and nextcloud need to be able to resolve each other, I tried to add the same extra parameter to collabora's docker. Otherwise, if collabora was to resolve it, it would resolve public IP.

And voila - it works now.

Edited by stefan.tomko
issue resolved

  • 6 months later...

hello,

I am leaving this as a comment on how I set up collabora on nextclout with reverse proxy with valid ssl locally.

configuration for reverse proxy in NGIX proxy manager:

image.png.b768d1c7abc7f38aee5b5b2681a845ca.png

and

image.png.c43ec5636363ea5b81117361f86a281c.png

My main issue was that somehow Collabora and nextcloud containers were not able to resolve DNS names. Simply Collabora was not reachable from nextcloud container by domain name. I really didnt know why (I have a custom unraid DNS setup that is able to resolve duckdns.org addresses)

 

That why I came up with another solution:

In advance docker container configuration (in container edit) you need to add the Extra Parameter:

for collabora:

Quote

--add-host=<nextcloud>.<yourdomain>.duckdns.org:<ip_address>

and for nextcloud

Quote

--add-host=<office>.<yourdomain>.duckdns.org:<ip_address>

so both nextcloud and collabora can resolve those domains into IP address and SSL certs will be added by NGIX.

With those change docker will update /etc/hosts with proper IP resolving names without even DNS setting up.

 

Hope this helps some of you

Edited by copper

  • 9 months later...

Hi,

 

i´m having a hard time setting up Collabora with the Nextcloud AIO Container from Spaceinvader, other then he suggested in his video i didnt want to set things up with a cloudflare domain (i want to use wireguard vpn or tailscale instead for network access from outside). I tried to use the Collabora container that is installed with the AIO container, but didnt work for me, so i tried the Collabora Code container from this thread (which seems to be working better).

 

So let me tell you how i set things up :

 

NPM Container for the Reverse proxy using a DYN DNS Domain with a DNS Challange Mulit Cert like *.xxxx.domain.com, xxxx.domain.com (http://nextcloud.xxxx.domain.com and https://collabora.xxxx.domain.com) 

Adguard Container for the DNS Rewrites

 

Nextcloud is working without problems on the reverse proxy domain declared above. But when i put the above collabora domain in the office server field i get the following error:

 

"Failed to connect to the remote server: cURL error 7: Failed to connect to collabora.xxxx.domain.com port 443 after 32 ms: Could not connect to server"

 

If i put the collabora address in my browser it shows me a "Ok" so i suppose it is working? But it seems like nextcloud is not finding the Collabora Server with the domain, so i did like copper suggested above and put in the extra parameter --add host=nextcloud.xxxx.domain.com:IP for the Collabora container and for Nextcloud --add host=collabora.xxxx.domain.com:IP (did not put in the ports). Getting the same failed to connect error! 

 

But if i put in https://IP:9980 in the office server field and tick the box to not check the certificate, nextcloud can connect and the other settings are displayed (like wofi etc).

When i then try to create a new document i get the "Unauthorized WOPI-Host error" and still cant create documents.

 

So what am i missing? How can i fix this?

 

Edited by Clock55

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.