Nextcloud and Onlyoffice/Collabora on separate servers

I’m running Nextcloud inside Docker on an OMV4 RockPro64 (armhf) system. I would really like to use Collabora or OnlyOffice to edit files from within Nextcloud. The problem is that both repos don’t support arm machines.

I was thinking of a workaround. What if I get myself a VPS and put Collabora on there, and then connect this remote Collabora server to my local system?

I know… As if it wasn’t enough of a big hassle to get Collabora running. But I was wondering if this is a feasible option? What do I need to keep in mind? How would I connect the local docker container to the remote docker container?

I hope this would be possible and people can give me tips, as I am not very experienced in all this.

All the best,

I use a docker OOdocumentserver on an external machine. The connection to it, is made from the settings page of the OO App in NC Admin area. The location of the document server, and whether docker, VM or real machine, doesn’t matter.


You can now (NC18) connect to the demo server (limited to 30 days) to try it out.

Check this for hardware/VPS requirements, to run OnlyOfficeDocumentServer as a container.

Great, with Collabora I thought this was a problem. I will look into it!

So I’ve been trying to set it up, but it’s not yet working… When I try to go to docs.domain.tld I run into a 502 Bad Gateway error. Hope you can spot the problem? I think it is in the proxy configuration.

What is the proxy configuration you have been using?

All the best,

This is the proxy configuration I use:

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

    server_name docs.*;

    include /config/nginx/ssl.conf;

    server_tokens off;

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    client_max_body_size 50M;

    location / {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_onlyoffice onlyoffice;
        proxy_pass http://$upstream_onlyoffice:4343;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        access_log      /config/nginx/onlyoffice.access.log;
        error_log       /config/log/nginx/onlyoffice.error.log;
    }

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
}

Those are the relevant parts of my docker-compose.yml file.

# Let's Encrypt
letsencrypt:
    container_name: letsencrypt
    image: linuxserver/letsencrypt
    restart: always
    networks:
        - sharelatex_net
        - onlyoffice_net
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
      - URL=${TLD}
      - SUBDOMAINS=${SUBS}
      - VALIDATION=${VAL}
      - EMAIL=${MAILADRES}
    volumes:
      - ${APPDATA}/Letsencrypt:/config
    ports:
      - 443:443
      - 80:80
    cap_add:
      - NET_ADMIN

# Onlyoffice
onlyoffice:
    container_name: onlyoffice
    image: onlyoffice/documentserver
    restart: always
    networks:
      - onlyoffice_net
    ports:
      - 4343:80

networks:
  sharelatex_net:
driver: bridge
  onlyoffice_net:
driver: bridge

why you use a proxy?
i understood you run onlyoffice on a separate machine with it’s own fqdn.

This is the setup from the non-Nextcloud VPS. I thought this was just the way to go if you want SSL encryption? I want to connect my nextcloud to docs.domain.tld.

onlyoffice has a build-in nginx. you only have to provide the certifcates.

https://hub.docker.com/r/onlyoffice/documentserver#running-onlyoffice-document-server-using-https

to get the letsencrypt certificate you have to run certbot or acme.sh on the host or use a container to get them. but you don’t need an extra nginx server/container.


when running on the same machine a lot of people use a proxy setup to spare an extra domain name for the onlyoffice server.