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

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 !

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.

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”

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)

Is there a solution to this. because i have the same setup on a server

version: ‘3’

services:

proxy:
image: jwilder/nginx-proxy:alpine
labels:
- “com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true”
container_name: nextcloud-proxy
networks:
- nextcloud_network
ports:
- 80:80
- 443:443
volumes:
- ./proxy/conf.d:/etc/nginx/conf.d:rw
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw
- ./proxy/html:/usr/share/nginx/html:rw
- ./proxy/certs:/etc/nginx/certs:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
restart: unless-stopped

letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nextcloud-letsencrypt
depends_on:
- proxy
networks:
- nextcloud_network
volumes:
- ./proxy/certs:/etc/nginx/certs:rw
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw
- ./proxy/html:/usr/share/nginx/html:rw
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
db:
image: mariadb
container_name: nextcloud-mariadb
networks:
- nextcloud_network
volumes:
- db:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
environment:
# Create a root password for the maraiadb instance.
- MYSQL_ROOT_PASSWORD=CREATE-A-SECURE-ROOT-PASSWORD-HERE
# Create a password for the nextcloud users. If you have to manually connect your database you would use the nextcloud user and this password.
- MYSQL_PASSWORD=CREATE-A-SECURE-NEXTCLOUD-USER-PASSWORD-HERE
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
restart: unless-stopped

app:
image: nextcloud:latest
container_name: nextcloud-app
networks:
- nextcloud_network
depends_on:
- letsencrypt
- proxy
- db
volumes:
- nextcloud:/var/www/html
- ./app/config:/var/www/html/config
- ./app/custom_apps:/var/www/html/custom_apps
- ./app/data:/var/www/html/data
- ./app/themes:/var/www/html/themes
- /etc/localtime:/etc/localtime:ro
environment:
# The VIRTUAL_HOST and LETSENCRYPT_HOST should use the same publically reachable domain for your nextlcloud instance.
- VIRTUAL_HOST=cloud.DOMAIN.TLD
- LETSENCRYPT_HOST=cloud.DOMAIN.TLD
# This needs to be a real email as it will be used by let’s encrypt for your cert and is used to warn you about renewals.
- LETSENCRYPT_EMAIL=YOUR-EMAIL@DOMAIN.TDL
restart: unless-stopped
collab:
image: collabora/code
container_name: nextcloud-collab
networks:
- nextcloud_network
depends_on:
- proxy
- letsencrypt
cap_add:
- MKNOD
ports:
- 9980:9980
environment:
# This nees to be the same as what you set your app domain too (ex: cloud.domain.tld).
- domain=cloud\.DOMAIN\.TDL
- username=admin
# Create a passoword for the collabora office admin page.
- password=CREATE-A-SECURE-PASSWORD-HERE
- VIRTUAL_PROTO=https
- VIRTUAL_PORT=443
# The VIRTUAL_HOST and LETSENCRYPT_HOST should use the same publically reachable domain for your collabora instance (ex: office.domain.tld).
- VIRTUAL_HOST=office.DOMAIN.TLD
- LETSENCRYPT_HOST=office.DOMAIN.TLD
# This needs to be a real email as it will be used by let’s encrypt for your cert and is used to warn you about renewals.
- LETSENCRYPT_EMAIL=YOUR-EMAIL@DOMAIN.TDL
restart: unless-stopped
volumes:
nextcloud:
db:

networks:
nextcloud_network:

my setup is based on this and i just filled the variables i needed to change nginx is okay and proxy working well. both sites are working okay but the documents cannot open . just blank space and reloads.

same error logged

I am not very technical to analyze log files…but in my case I had to disable the default text editor if you have it enabled.

I have the same issue with ubuntu 20.04 arm any solutions?