Nextcloud and Collabora on docker gives blank page when trying to edit file


#1

Hi everyone,

I’ve been trying for quite some time to make Collabora and Nextcloud work on my local machine, with docker.

When I start collabora and go to http://127.0.0.1:9980/, I get the ‘OK’ message.

However, when I install the Collabora app on nextcloud and try to edit a file, nothing comes up. Just a blank page under the nextcloud header …

I have disabled ssl as for the moment I’m only testing on my computer.

Here is my docker-compose file:

version: '3.1'

services:
  db:
    image: mariadb
    restart: unless-stopped
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=_redacted_
    env_file:
      - db.env

  nextcloud:  
    image: nextcloud:apache
    restart: unless-stopped
    volumes:
      - nextcloud:/var/www/html
    environment:
      - VIRTUAL_HOST=
      - LETSENCRYPT_HOST=
      - LETSENCRYPT_EMAIL=
      - MYSQL_HOST=db
    env_file:
      - db.env
    depends_on:
      - db

  nginx:
    image: nginx:latest
    volumes: 
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 443:443
      - 80:80

  collabora:
    image: collabora/code
    container_name: collabora
    ports:
      - 9980:9980
    cap_add:
      - MKNOD

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

And here is my nginx.conf:

events{
  
}
http{
  server {
    listen 80 default_server;
    server_name  cloud.example.com;
    # You can set a dedicated domain like:
    # server_name  office.example.com;

    #ssl_certificate /path/to/your/certficate;
    #ssl_certificate_key /path/to/your/key;

    # Static files
    location ^~ /loleaflet {
      proxy_pass http://localhost:9980;
      proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
      proxy_pass http://localhost:9980;
      proxy_set_header Host $http_host;
    }

    # Main websocket
    location ~ /lool/(.*)/ws$ {
      proxy_pass http://localhost:9980;
      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 ^~ /lool/adminws {
      proxy_pass http://localhost:9980;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $http_host;
      proxy_read_timeout 36000s;
    }

    # Download, presentation and image upload
    location ^~ /lool {
      proxy_pass http://localhost:9980;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $http_host;
    }
  }
}

I get the following errors in the nextcloud log:

[Sun Nov 18 17:22:10.553920 2018] [php7:error] [pid 336] [client 172.23.0.1:48504] PHP Fatal error:  Cannot declare class GuzzleHttp\\Handler\\CurlFactory, because the name is already in use in /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 16
172.23.0.1 - - [18/Nov/2018:17:22:10 +0000] "GET /apps/richdocuments/index?fileId=177&requesttoken=TvaehoAkAaLkoV75Qm6S5%2FvGwvC3mluTl%2B2dnHsWlKY%3D%3ADcLmyudvRdComQevKRbfrqulmL%2BYtSqm9NXa%2BAl3zZU%3D HTTP/1.1" 500 870 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
172.23.0.1 - - [18/Nov/2018:17:22:13 +0000] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/1.1" 200 3095 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"

Has anyone ever had the same problem ?
Please tell me if you need anything else

Thanks !


#2

Same here. I am using docker as well. Nginx as reverse proxy. As I have currently issues with letsencrypt, I thought the blank page is related to SSL. But I have shared a txt file by link and its content is empty as well. I guess the display of txt files is not done by collabora. But yeah, this is just a guess.


#3

same for me.

I get the following in the log:
nextcloud_1_17d689a54ece | 172.19.0.4 - - [23/Jan/2019:21:28:27 +0000] “GET /apps/richdocuments/index?fileId=19&requesttoken=R[…]%3D HTTP/1.1” 500 900 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15”


#4

Do you see anything interesting with?

docker logs --tail 20 -f <container>

By the way @Quentin_Lebastard I’m not 100% sure that a proxy setup to localhost can work. In Nextcloud you need to configure a subdomain for collabora (e.g. office.your-nextcloud-domain.com)