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


Recommended Posts

@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

Link to comment
  • 2 weeks later...
  • 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.

Link to comment
  • 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
Link to comment
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.

Link to comment

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
Link to comment
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?

Link to comment
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
Link to comment
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

Link to comment
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.

Link to comment
  • 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.

Link to comment
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?

Link to comment
  • 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.

Link to comment
  • 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
Link to comment
  • 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

Link to comment
  • 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
Link to comment
  • 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
Link to comment

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.