docker icon indicating copy to clipboard operation
docker copied to clipboard

Add complete docker-compose.yml example for collabora office

Open aaronSkar opened this issue 6 years ago • 37 comments

This example give a full example to deploy Nextcloud with Mariadb, Nginx, lets encrypt and Collabora office.

#55 #223

aaronSkar avatar Jan 30 '19 18:01 aaronSkar

Thanks for making the installation much easier for a lot of people!

Although, after using this docker-compose file I still have not been able to finally fix it.

When I start the Collabora Integration app and fill in the collabora url [https://office.DOMAIN.TLD], I get the following error:

Collabora Online should use the same protocol as the server installation

When I try to open a document I get:

Failed to load Collabora Online - please try again later

Maybe you know what would be a quick fix for this problem? Thanks a lot in advance!

I also made a topic on the Nextcloud forum

kromsam avatar Apr 13 '19 19:04 kromsam

Hi @kromsam, I'll post this response in both places.

Here is a snippet from my /app/config/config.php, my assumption is you need to add the lines for overwritehost and overwriteprotocol. This is necessary if you wish to use the passwords app as well. Be sure to use your actual hostname for your nextcloud where I have used cloud.example.com below.

$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'trusted_proxies' => 
  array (
    0 => '172.30.0.3',
  ),
  'overwritehost' => 'cloud.example.com',
  'overwriteprotocol' => 'https',
  'apps_paths' => 
  array (
...

aaronSkar avatar Apr 16 '19 18:04 aaronSkar

@kromsam , looks like the NC conversation site is undergoing some maintenance. I will update there at a later date when replying is enabled again.

aaronSkar avatar Apr 16 '19 18:04 aaronSkar

I used the following Docker Ansible playbook: https://github.com/ReinerNippes/nextcloud_on_docker (testing branch has collabora). Which got me much closer to a solution, I think. I'm stiil stuck though.

This isn't really of your business of course. So I put the issue here: https://github.com/ReinerNippes/nextcloud_on_docker/issues/5

kromsam avatar Apr 29 '19 12:04 kromsam

@kromsam, ok looks like you issue was solved by a pass proxy option in the other thread. Glad to see you are up and running!

aaronSkar avatar May 09 '19 18:05 aaronSkar

Hi everyone I'm having a similar issue, I've gotten the Collabora server to start up successfully and when navigating to office.MY-DOMAIN.COM I see the OK message. I'm also able to go to the /hosting/discovery path and see the XML configuration. However, when I attempt to open a document through Nextcloud I get a Failed to load Collabora Online - please try again later error. From @kromsam's experience I think this could be because of a miss-configured nginx proxy. Does anyone know of a fix?

Below is my default.conf file for nginx,

# If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the
# scheme used to connect to this server
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
  default $http_x_forwarded_proto;
  ''      $scheme;
}
# If we receive X-Forwarded-Port, pass it through; otherwise, pass along the
# server port the client connected to
map $http_x_forwarded_port $proxy_x_forwarded_port {
  default $http_x_forwarded_port;
  ''      $server_port;
}
# If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any
# Connection header that may have been passed to this server
map $http_upgrade $proxy_connection {
  default upgrade;
  '' close;
}
# Apply fix for very long server names
server_names_hash_bucket_size 128;
# Default dhparam
ssl_dhparam /etc/nginx/dhparam/dhparam.pem;
# Set appropriate X-Forwarded-Ssl header
map $scheme $proxy_x_forwarded_ssl {
  default off;
  https on;
}
gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
log_format vhost '$host $remote_addr - $remote_user [$time_local] '
                 '"$request" $status $body_bytes_sent '
                 '"$http_referer" "$http_user_agent"';
access_log off;
resolver 127.0.0.11;
# HTTP 1.1 support
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
# Mitigate httpoxy attack (see README for details)
proxy_set_header Proxy "";
server {
	server_name _; # This is just an invalid value which will never trigger on a real hostname.
	listen 80;
	access_log /var/log/nginx/access.log vhost;
	return 503;
}
server {
	server_name _; # This is just an invalid value which will never trigger on a real hostname.
	listen 443 ssl http2;
	access_log /var/log/nginx/access.log vhost;
	return 503;
	ssl_session_tickets off;
	ssl_certificate /etc/nginx/certs/default.crt;
	ssl_certificate_key /etc/nginx/certs/default.key;
}
# drive.DOMAIN.COM
upstream drive.DOMAIN.COM {
				# Cannot connect to network of this container
				server 127.0.0.1 down;
				## Can be connected with "fpm_proxy-tier" network
			# fpm_web_1
			server 172.19.0.5:80;
}
server {
	server_name drive.DOMAIN.COM;
	listen 80 ;
	access_log /var/log/nginx/access.log vhost;
	return 301 https://$host$request_uri;
}
server {
	server_name drive.DOMAIN.COM;
	listen 443 ssl http2 ;
	access_log /var/log/nginx/access.log vhost;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers {REMOVED};
	ssl_prefer_server_ciphers on;
	ssl_session_timeout 5m;
	ssl_session_cache shared:SSL:50m;
	ssl_session_tickets off;
	ssl_certificate /etc/nginx/certs/drive.DOMAIN.COM.crt;
	ssl_certificate_key /etc/nginx/certs/drive.DOMAIN.COM.key;
	ssl_dhparam /etc/nginx/certs/drive.DOMAIN.COM.dhparam.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/nginx/certs/drive.DOMAIN.COM.chain.pem;
	add_header Strict-Transport-Security "max-age=31536000" always;
	include /etc/nginx/vhost.d/default;
	location / {
		proxy_pass http://drive.DOMAIN.COM;
	}
}
# office.DOMAIN.COM
upstream office.DOMAIN.COM {
				## Can be connected with "fpm_proxy-tier" network
			# nextcloud-collab
			server 172.19.0.4:9980;
}
server {
	server_name office.DOMAIN.COM;
	listen 80 ;
	access_log /var/log/nginx/access.log vhost;
	return 301 https://$host$request_uri;
}
server {
	server_name office.DOMAIN.COM;
	listen 443 ssl http2 ;
	access_log /var/log/nginx/access.log vhost;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers {REMOVED};
	ssl_prefer_server_ciphers on;
	ssl_session_timeout 5m;
	ssl_session_cache shared:SSL:50m;
	ssl_session_tickets off;
	ssl_certificate /etc/nginx/certs/office.DOMAIN.COM.crt;
	ssl_certificate_key /etc/nginx/certs/office.DOMAIN.COM.key;
	ssl_dhparam /etc/nginx/certs/office.DOMAIN.COM.dhparam.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/nginx/certs/office.DOMAIN.COM.chain.pem;
	add_header Strict-Transport-Security "max-age=31536000" always;
	include /etc/nginx/vhost.d/default;
	location / {
		proxy_pass https://office.DOMAIN.COM;

and here is my docker-compose.yml

version: '3'

services:
  db:
    image: mariadb
    container_name: nextcloud-database
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /drive/nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=PASSWORD-EXAMPLE
    env_file:
      - db.env

  app:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - /drive/nextcloud/data:/var/www/html
    environment:
      - MYSQL_HOST=db
    env_file:
      - db.env
    depends_on:
      - db

  web:
    build: ./web
    restart: always
    volumes:
      - /drive/nextcloud/data:/var/www/html:ro
    environment:
      - VIRTUAL_HOST=drive.DOMAIN.COM
      - LETSENCRYPT_HOST=drive.DOMAIN.COM
      - [email protected]
    depends_on:
      - app
    networks:
      - proxy-tier
      - default

  proxy:
    container_name: nextcloud-proxy
    image: jwilder/nginx-proxy:alpine
    restart: always
    ports:
      - 80:80
      - 443:443
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - /drive/nextcloud/nginx/conf:/etc/nginx/conf.d:rw
      - /drive/nextcloud/certs:/etc/nginx/certs:ro
      - /drive/nextcloud/vhost:/etc/nginx/vhost.d
      - /drive/nextcloud/html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - proxy-tier

  letsencrypt-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nextcloud-letsencrypt
    restart: always
    volumes:
      - /drive/nextcloud/certs:/etc/nginx/certs
      - /drive/nextcloud/vhost:/etc/nginx/vhost.d
      - /drive/nextcloud/html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - proxy-tier
    depends_on:
      - proxy

  collab:
    image: collabora/code
    container_name: nextcloud-collab
    networks:
      - proxy-tier
    depends_on:
      - proxy
      - letsencrypt-companion
    cap_add:
     - MKNOD
    ports:
      - 127.0.0.1:9980:9980
    environment:
      - domain=drive\\.DOMAIN\\.COM
      - username=admin
      - password=PASSWORD-EXAMPLE
      - VIRTUAL_PROTO=https
      - VIRTUAL_PORT=443
      - VIRTUAL_HOST=office.DOMAIN.COM
      - LETSENCRYPT_HOST=office.DOMAIN.COM
      - [email protected]
    restart: always

volumes:
  db:
  nextcloud:
  certs:
  vhost.d:
  html:

networks:
  proxy-tier:

alecbcs avatar May 14 '19 19:05 alecbcs

Hi everyone I'm having a similar issue, I've gotten the Collabora server to start up successfully and when navigating to office.MY-DOMAIN.COM I see the OK message. I'm also able to go to the /hosting/discovery path and see the XML configuration. However, when I attempt to open a document through Nextcloud I get a Failed to load Collabora Online - please try again later error. From @kromsam's experience I think this could be because of a miss-configured nginx proxy. Does anyone know of a fix?

Below is my default.conf file for nginx,

# If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the
# scheme used to connect to this server
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
  default $http_x_forwarded_proto;
  ''      $scheme;
}
# If we receive X-Forwarded-Port, pass it through; otherwise, pass along the
# server port the client connected to
map $http_x_forwarded_port $proxy_x_forwarded_port {
  default $http_x_forwarded_port;
  ''      $server_port;
}
# If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any
# Connection header that may have been passed to this server
map $http_upgrade $proxy_connection {
  default upgrade;
  '' close;
}
# Apply fix for very long server names
server_names_hash_bucket_size 128;
# Default dhparam
ssl_dhparam /etc/nginx/dhparam/dhparam.pem;
# Set appropriate X-Forwarded-Ssl header
map $scheme $proxy_x_forwarded_ssl {
  default off;
  https on;
}
gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
log_format vhost '$host $remote_addr - $remote_user [$time_local] '
                 '"$request" $status $body_bytes_sent '
                 '"$http_referer" "$http_user_agent"';
access_log off;
resolver 127.0.0.11;
# HTTP 1.1 support
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
# Mitigate httpoxy attack (see README for details)
proxy_set_header Proxy "";
server {
	server_name _; # This is just an invalid value which will never trigger on a real hostname.
	listen 80;
	access_log /var/log/nginx/access.log vhost;
	return 503;
}
server {
	server_name _; # This is just an invalid value which will never trigger on a real hostname.
	listen 443 ssl http2;
	access_log /var/log/nginx/access.log vhost;
	return 503;
	ssl_session_tickets off;
	ssl_certificate /etc/nginx/certs/default.crt;
	ssl_certificate_key /etc/nginx/certs/default.key;
}
# drive.DOMAIN.COM
upstream drive.DOMAIN.COM {
				# Cannot connect to network of this container
				server 127.0.0.1 down;
				## Can be connected with "fpm_proxy-tier" network
			# fpm_web_1
			server 172.19.0.5:80;
}
server {
	server_name drive.DOMAIN.COM;
	listen 80 ;
	access_log /var/log/nginx/access.log vhost;
	return 301 https://$host$request_uri;
}
server {
	server_name drive.DOMAIN.COM;
	listen 443 ssl http2 ;
	access_log /var/log/nginx/access.log vhost;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers {REMOVED};
	ssl_prefer_server_ciphers on;
	ssl_session_timeout 5m;
	ssl_session_cache shared:SSL:50m;
	ssl_session_tickets off;
	ssl_certificate /etc/nginx/certs/drive.DOMAIN.COM.crt;
	ssl_certificate_key /etc/nginx/certs/drive.DOMAIN.COM.key;
	ssl_dhparam /etc/nginx/certs/drive.DOMAIN.COM.dhparam.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/nginx/certs/drive.DOMAIN.COM.chain.pem;
	add_header Strict-Transport-Security "max-age=31536000" always;
	include /etc/nginx/vhost.d/default;
	location / {
		proxy_pass http://drive.DOMAIN.COM;
	}
}
# office.DOMAIN.COM
upstream office.DOMAIN.COM {
				## Can be connected with "fpm_proxy-tier" network
			# nextcloud-collab
			server 172.19.0.4:9980;
}
server {
	server_name office.DOMAIN.COM;
	listen 80 ;
	access_log /var/log/nginx/access.log vhost;
	return 301 https://$host$request_uri;
}
server {
	server_name office.DOMAIN.COM;
	listen 443 ssl http2 ;
	access_log /var/log/nginx/access.log vhost;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers {REMOVED};
	ssl_prefer_server_ciphers on;
	ssl_session_timeout 5m;
	ssl_session_cache shared:SSL:50m;
	ssl_session_tickets off;
	ssl_certificate /etc/nginx/certs/office.DOMAIN.COM.crt;
	ssl_certificate_key /etc/nginx/certs/office.DOMAIN.COM.key;
	ssl_dhparam /etc/nginx/certs/office.DOMAIN.COM.dhparam.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/nginx/certs/office.DOMAIN.COM.chain.pem;
	add_header Strict-Transport-Security "max-age=31536000" always;
	include /etc/nginx/vhost.d/default;
	location / {
		proxy_pass https://office.DOMAIN.COM;

and here is my docker-compose.yml

version: '3'

services:
  db:
    image: mariadb
    container_name: nextcloud-database
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /drive/nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=PASSWORD-EXAMPLE
    env_file:
      - db.env

  app:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - /drive/nextcloud/data:/var/www/html
    environment:
      - MYSQL_HOST=db
    env_file:
      - db.env
    depends_on:
      - db

  web:
    build: ./web
    restart: always
    volumes:
      - /drive/nextcloud/data:/var/www/html:ro
    environment:
      - VIRTUAL_HOST=drive.DOMAIN.COM
      - LETSENCRYPT_HOST=drive.DOMAIN.COM
      - [email protected]
    depends_on:
      - app
    networks:
      - proxy-tier
      - default

  proxy:
    container_name: nextcloud-proxy
    image: jwilder/nginx-proxy:alpine
    restart: always
    ports:
      - 80:80
      - 443:443
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - /drive/nextcloud/nginx/conf:/etc/nginx/conf.d:rw
      - /drive/nextcloud/certs:/etc/nginx/certs:ro
      - /drive/nextcloud/vhost:/etc/nginx/vhost.d
      - /drive/nextcloud/html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - proxy-tier

  letsencrypt-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nextcloud-letsencrypt
    restart: always
    volumes:
      - /drive/nextcloud/certs:/etc/nginx/certs
      - /drive/nextcloud/vhost:/etc/nginx/vhost.d
      - /drive/nextcloud/html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - proxy-tier
    depends_on:
      - proxy

  collab:
    image: collabora/code
    container_name: nextcloud-collab
    networks:
      - proxy-tier
    depends_on:
      - proxy
      - letsencrypt-companion
    cap_add:
     - MKNOD
    ports:
      - 127.0.0.1:9980:9980
    environment:
      - domain=drive\\.DOMAIN\\.COM
      - username=admin
      - password=PASSWORD-EXAMPLE
      - VIRTUAL_PROTO=https
      - VIRTUAL_PORT=443
      - VIRTUAL_HOST=office.DOMAIN.COM
      - LETSENCRYPT_HOST=office.DOMAIN.COM
      - [email protected]
    restart: always

volumes:
  db:
  nextcloud:
  certs:
  vhost.d:
  html:

networks:
  proxy-tier:

Same as here

dpcee30 avatar May 15 '19 21:05 dpcee30

Hi @dpcee30 have you put this configuration in your /app/config/config.php? You may need to add 2 lines into this config file. (I'm not aware of any reason to modify your nginx config file manually. If you want to do large file uploads you may need to add an additional file but that is a separate issue.)

'overwritehost' => 'cloud.example.com', 'overwriteprotocol' => 'https',

After adding these lines you may need to restart your nextcloud docker container.

Here is a snippet from my /app/config/config.php, my assumption is you need to add the lines for overwritehost and overwriteprotocol. This is necessary if you wish to use the passwords app as well. Be sure to use your actual hostname for your nextcloud where I have used cloud.example.com below.

$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'trusted_proxies' => 
  array (
    0 => '172.30.0.3',
  ),
  'overwritehost' => 'cloud.example.com',
  'overwriteprotocol' => 'https',
  'apps_paths' => 
  array (
...

aaronSkar avatar May 16 '19 14:05 aaronSkar

Just want to note that it can take a few minutes until the docker container with collabora is fully up an running, on my server it takes ~8 minutes! Initially I was also thinking that something is wrong with my config, but then I found that I just needed to wait a bit longer.

palto42 avatar May 16 '19 17:05 palto42

@aaronSkar applying both overwritehost and overwriteprotocol fixed the error about different protocols when saving the Collabora domain (office.DOMAIN.COM) in the Nextcloud settings. However, I'm still unable to open any documents in Collabora.

alecbcs avatar May 16 '19 18:05 alecbcs

@palto42 thanks for the note about waiting a few minutes for the container to boot. Unfortunately, my container appears to be fully online (getting the OK message from Collabora and able to access the admin settings) however, I'm still unable to load documents from Nextcloud.

alecbcs avatar May 16 '19 18:05 alecbcs

@alecbcs I don't see anything jumping out as wrong when looking at your config. I'll comb through it more this afternoon. Good to hear the errors are gone. The wait period mention is a real thing but once your are getting the OK message it should be ready to use in my experience.

Can you describe the documents you are opening a bit more for me? Are they newly created in nextcloud? Are they existing? What is the extension?

Also can you give the version of collabora you are on?

aaronSkar avatar May 16 '19 18:05 aaronSkar

@alecbcs so looking at your default.conf file things look ok assuming there is actually a list of ssl_ciphers where you have {removed} and the last 2 } are present in the actual file and just cut off in the copy/paste.

Otherwise is basically identical to what I have on my servers.

aaronSkar avatar May 16 '19 21:05 aaronSkar

@alecbcs can you also share how you entered the url into the collabora settings field (URL (and Port) of Collabora Online-server)?

aaronSkar avatar May 16 '19 21:05 aaronSkar

@aaronSkar I have entered the domain as https://office.DOMAIN.COM without a port as I believe the system is forwarding the data correctly through 443.

alecbcs avatar May 17 '19 18:05 alecbcs

@aaronSkar currently I'm curious if the problem is using the fpm-alpine container rather than the apache based server. The fpm system effectively runs another web server on top of Nextcloud and I wonder if that is the issue.

alecbcs avatar May 17 '19 18:05 alecbcs

I had some issues to get everything working. I wanted a home-production-ready docker-based deployment of Nextcloud with:

It seems I was able to get a working version running. Please see: https://github.com/bentolor/docker-nextcloud-collabora-postgresql-letsencrypt. Maybe it is helpful to others.

bentolor avatar Dec 09 '19 11:12 bentolor

I need help with this, I'm really lost here, as I'm quiet newbie to docker, ssl, and webhosting in general... even less with php-fpm and nginx >.<

I used this example to set up nextcloud, and it's working: https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/with-nginx-proxy/postgres/fpm

And I want to integrate collabora/code to it, using the same proxy from the example. I've tried bringing up a collabora container and set nextcloud's code app to localhost but it did not work. Reading here and there found that I've to add a new server block to nginx.... but what I need to add to it? And where... to "web" or "proxy" service?

Also seeing the conf from alecbcs, I see that is for self signed, and I want to use let's encrypt for it. And the one from bentolor is using nextcloud:apache.

xchoice avatar Jan 09 '20 03:01 xchoice

What is the current status of this pull request?

rriemann avatar Apr 15 '20 19:04 rriemann

This example was working fine for us, except we had to add

        'overwritehost' => 'cloud.example.com',
        'overwriteprotocol' => 'https',

to our nextcloud/config/config.php.

However, this was back when we were using Nextcloud 15 and version 4.0.3 of the collabora/code image.

Today I did an upgrade to Nextcloud 18 and 4.2 of the collabora/code image, and it's no longer working :/ Nothing happens when clicking an ODT file, and the docker-compose logs are not showing any error that I can see. Neither does the JS console when clicking the ODT file.

Is anyone running this example successfully with Nextcloud 18, Collabora 4.2?

estan avatar Apr 24 '20 13:04 estan

This example was working fine for us, except we had to add

        'overwritehost' => 'cloud.example.com',
        'overwriteprotocol' => 'https',

to our nextcloud/config/config.php.

However, this was back when we were using Nextcloud 15 and version 4.0.3 of the collabora/code image.

Today I did an upgrade to Nextcloud 18 and 4.2 of the collabora/code image, and it's no longer working :/ Nothing happens when clicking an ODT file, and the docker-compose logs are not showing any error that I can see. Neither does the JS console when clicking the ODT file.

I was curious and tried in Chromium instead of Firefox, and then I get a popup Failed to load Collabora Online Development Edition - Please try again later, and a Failed to load resource: the server responded with a status of 404 () error in the JS console when it tried to fetch https://nextcloud.ourdomain.com/ocs/v2.php/apps/text/workspace?path=%2F.

estan avatar Apr 24 '20 14:04 estan

This example was working fine for us, except we had to add

        'overwritehost' => 'cloud.example.com',
        'overwriteprotocol' => 'https',

to our nextcloud/config/config.php. However, this was back when we were using Nextcloud 15 and version 4.0.3 of the collabora/code image. Today I did an upgrade to Nextcloud 18 and 4.2 of the collabora/code image, and it's no longer working :/ Nothing happens when clicking an ODT file, and the docker-compose logs are not showing any error that I can see. Neither does the JS console when clicking the ODT file.

I was curious and tried in Chromium instead of Firefox, and then I get a popup Failed to load Collabora Online Development Edition - Please try again later, and a Failed to load resource: the server responded with a status of 404 () error in the JS console when it tried to fetch https://nextcloud.ourdomain.com/ocs/v2.php/apps/text/workspace?path=%2F.

Nevermind, that JS console printout was from when loading the file listing page, not from when clicking the ODT file.

estan avatar Apr 24 '20 14:04 estan

Is anyone running this example successfully with Nextcloud 18, Collabora 4.2?

Yes: https://github.com/bentolor/docker-nextcloud-collabora-postgresql-letsencrypt

bentolor avatar Apr 24 '20 14:04 bentolor

Is anyone running this example successfully with Nextcloud 18, Collabora 4.2?

Yes: https://github.com/bentolor/docker-nextcloud-collabora-postgresql-letsencrypt

Thanks @bentolor, I will study the differences between our configs.

estan avatar Apr 24 '20 16:04 estan

Is anyone running this example successfully with Nextcloud 18, Collabora 4.2?

Yes: https://github.com/bentolor/docker-nextcloud-collabora-postgresql-letsencrypt

Thanks @bentolor, I will study the differences between our configs.

Turns out I had ran into https://github.com/nextcloud/richdocuments/issues/917 , but was able to solve it using the workaround posted by the richdocuments app author.

estan avatar Apr 25 '20 10:04 estan

Could this be merged? It would be sad if it was just left here. We've been successfully running our instance off of this example (or well, what it looked like in April last year) for over a year now.

estan avatar Nov 24 '20 07:11 estan

Hi, I'm also interested in this pull request. I'm also struggling to make collabora work. I have an old docker compose file that hosts my 21.0.5-apache version of nextcloud, but cant figure how to add collabora and make it work. A working example would be wonderful.

Draluy avatar Oct 13 '21 20:10 Draluy

Just made it work with @alexpovel solution above. Thx!

Draluy avatar Oct 13 '21 21:10 Draluy

This is now out of date, as the domain environment variable is no longer supported, and one must use alias groups instead.

jayhill avatar May 13 '22 22:05 jayhill

Has anyone a running setup for this with a current nextcloud version (>= 24) and might share it? Or is this approach out of date?

greenbourne277 avatar Mar 24 '23 11:03 greenbourne277