AppsDockerNextcloudPlesk

Collabora Online Office mit Docker in Plesk bereitstellen und an Nextcloud anbinden

Änderungen 23.03.2019:
– Anpassung nginx-Direktiven aufgrund Neuerungen von Collabora

Da das einbinden von Collabora Online Office mit Docker im Plesk Administrationspanel etwas knifflig ist, habe ich hier mal die Schritte und Einstellungen aufgeführt, mit denen es funktioniert:

 

Voraussetzungen:

  • Zugriff auf Host per ssh
  • Docker-Erweiterung in Plesk installiert und aktiviert
  • Funktionierende Nextcloud-Installation mit Collabora Online-App
  • Leere Subdomain in Plesk erstellt und mit SSL abgesichert

Ablauf:

Verbindung per ssh zum Host aufbauen und Docker-Container bereitstellen:

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=subdomain\\.domain\\.com' -e 'username=Benutzername' -e 'password=Dein-Passwort' --cap-add MKNOD collabora/code

Bitte hier Eure Subdomain einsetzen, auf der Nextcloud läuft, danach mit

docker ps

überprüfen, ob Container aktiv ist.

Die weitere Konfiguration erfolgt über das Plesk Administrations-Panel.

Die Hosting-Einstellungen in der konfigurierten Subdomain wie folgt festlegen, PHP Unterstützung und 301 Weiterleitung deaktivieren:

 

In der entsprechenden Subdomain folgenden Code unter „Einstellungen für Apache & nginx“, im Abschnitt „Zusätzliche nginx-Anweisungen“ einfügen:

# static files
location ^~ /loleaflet {
	proxy_pass https://127.0.0.1:9980;
	proxy_set_header Host $http_host;
}

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

# Capabilities
location ^~ /hosting/capabilities {
	proxy_pass https://127.0.0.1:9980;
	proxy_set_header Host $http_host;
}

# main websocket
location ~ ^/lool/(.*)/ws$ {
	proxy_pass https://127.0.0.1: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 https://127.0.0.1:9980;
	proxy_set_header Host $http_host;
}

# Admin Console websocket
location ^~ /lool/adminws {
	proxy_pass https://127.0.0.1:9980;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "Upgrade";
	proxy_set_header Host $http_host;
	proxy_read_timeout 36000s;
}

Das Ergebnis sollte so aussehen:

Und den Proxy-Modus ausschalten:

Eine Docker-Proxy-Regel wird nicht benötigt, da diese bereits über Nginx realisiert wird.

In Nextcloud die App Collabora Online aktivieren und in den Einstellungen die in Plesk erstellte Subdomain eintragen.

Nun kann man ein beliebiges Dokument direkt im Browser bearbeiten:

 

 

Unter der folgenden URL findest Du die Admin-Konsole von Collabora:

https://office.deine-domain.tld/loleaflet/dist/admin/admin.html

Dort kannst Du ein paar Einstellungen anpassen.

Viel Spaß dabei! 😉

 

17 Gedanken zu „Collabora Online Office mit Docker in Plesk bereitstellen und an Nextcloud anbinden

  1. Hallo Markus,

    Danke für deine TOLLE Anleitungen!!!
    Leider aber habe ich ein Problem!!  auf meinen Ubuntu Server 18.04 mit Plesk 17.8 habe alles ganz genau nach Anleitung eingerichtet.
    So ich sobald ich Collabora über nextcloud starten möchte ist alles nur weiß und nichts bleibt so.
    Ich bekomme diese Fehlermeldung in den Logs: 8592#0: *86291 open() „/var/www/vhosts/xxxxxx.de/office.xxxxx.de/hosting/capabilities“ failed (2: No such file or directory)
    So ich sobald ich Collabora über nextcloud starten möchte ist alles nur weiß und nichts bleibt so.

    Danke und Liebe Grüße

    1. Hallo Daniel, habe mal die Domains ausgexxxt ?

      Danke für Dein Feedback. Dein nginx leitet die Anfragen nicht an collabora weiter. Läuft der Container? Sind die nginx-Direktiven richtig eingetragen?

      Gruß Markus

      1. Hallo Markus,

        der Container läuft habe auch die Fehlermeldung wegbekommen aber das ändert nichts ein die Situation nur ein weißer Bildschirm und jetzt ohne Infos in den Logs 🙁

        Liebe Grüße

          1. Hallo Markus,

            Danke für die mir zugesanden Anleitungen.
            Wenn du mit der Admin-Konsoloe office.xxxxx.xx/loleaflet/dist/admin meins dann Ja.

            Liebe Grüße

          2. Hallo Daniel,

            in der Zwischenzeit hat sich die Proxy-Konfiguration für Collabora etwas geändert. Habe das mal hier angepasst. Probierst Du das bitte mal?
            Der Artikel ist ja auch schon 1,5 Jahre alt gewesen 😉

  2. Hallo Markus,

    vielen Dank für deine Anleitung zum Einrichten von Collabora unter Plesk.

    Ich habe mich daran orientiert, um das ganze bei mir zum laufen zu bringen – mit dem einzigen Unterschied, dass ich den Docker Container über das Plesk Web-Frontend eingebunden habe.

    Ich habe jetzt auch Zugriff auf das Collabora Admin Frontend und auch nextcloud beschwert sich nicht – wenn ich aber versuche eine Datei zu öffnen, bleibe ich bei einem Ladebildschirm/Schleife stecken.

    Weißt du, was hier nicht funktionieren könnte? Oder wie ich weiter testen könnte?

    Vielen Dank und viele Grüße
    Benjamin

  3. Hallo, irgendwie steige ich da nicht so ganz durch, bin noch Anfänger diesbezüglich, deshalb zwei vielleicht dumme Fragen:
    1.) Welche Subdomain muss ich angeben ? Die unter der Collabora laufen soll oder die Nedtcloud-Subdomain ?
    2.) Welcher Benutzername bzw. Passwort sind in der Docker-Bereitstellung gemeint ? (…’username=Benutzername‘ -e…)
    Meine Domains lauten : Nextcloud: cloud.xxx.yy, – Collabora: myoffice.xxx.yy
    Herzlichen Dank im Voraus

  4. Hi Markus
    Ich habe soeben deine Anleitung befolgt und mein Collabora Office meldet:

    Unautorisierter WOPI-Host. Bitte versuchen Sie es später noch einmal und melden Sie sich bei Ihrem Administrator, falls das Problem weiterhin besteht.

    Wie kann ich herausfinden, wo hier der Fehler liegt?

    1. Hallo Lukas,
      das könnte mehrere Ursachen haben.
      Überprüfe einmal genau den Befehl, den Du zum Starten des Containers genommen hast, ob dort alle Zeichen richtig gesetzt sind.
      Schauen kannst Du auch in der Admin-Console von Collabora, ob es Einträge gibt. Bei manchen vorkonfigurierten Plesk-VPS sind die DNS-Einstellungen etwas suboptimiert, da kann es helfen den Nextcloud-FQDN und den Office-FQDN als erlaubten Host einzutragen. Die Einträge müsstest Du dann mit einer Pipe | trennen.

      Beispiel:
      ‚domain=host1\\.deine-domain\\.tld|host2\\.deine-domain\\.tld‘

      Das wäre aber nur ein Workaround.

      Gruß Markus

  5. Hallo Markus,
    ich habe mehrfach deine Anleitung Schritt für Schritt befolgt und leider nie die Zielführende Lösung gefunden. Entweder gab es ein 400, ein 502 oder einen „Nichtauthorisierten WOPI-Client“….

    Anbei meine nginx-Einstellung mit dem es letztendlich geklappt hat:

    proxy_buffering off;

    # Set the location routing.
    location ~ / {

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    ##Use the domain.tld here.
    proxy_pass https://127.0.0.1:9980;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection „upgrade“;

    }

    # static files
    location ^~ /loleaflet {
    proxy_pass https://127.0.0.1:9980;
    proxy_set_header Host $http_host;
    }

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

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
    proxy_pass https://127.0.0.1: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 https://127.0.0.1:9980;
    proxy_set_header Host $http_host;
    }

    UND zusätzlich das starten des Dockercontainers mit beiden subdomains, user und passwort per SSH führte zum Erfolg.

    docker run -t -d -p 127.0.0.1:9980:9980 -e ‚domain=cloud\\.domain\\.xx\|nc\\.domain2\\.xx‘ -e ‚username=admin‘ -e ‚password=Secret.Password‘ –restart always –cap-add MKNOD collabora/code

    Danke für deine tolle Anleitung und den Denkanstoß 🙂

    Martin

    1. Hallo Martin,

      danke für Dein Feedback.
      Habe eben noch mal alles getestet, auch mit neuerer Version vom Docker-Image Collabora. Funktioniert immer noch mit der Anleitung.
      Löst Dein Host sich selbst eventuell nicht richtig auf?
      ping localhost zeigt was an?

      Die Domains musst Du mit | trennen, wenn Du mehrere Nextcloud-Instanzen verwenden möchtest. Was passiert denn ohne Passwort, wenn Du den Docker-Container startest?

      Gruß
      Markus

      1. Hallo Markus,

        der localhost lässt sich pingen, nmap zeigt auch das der 9980er offen ist.
        Serverseitig handelt es sich um einen Strato-Root-Server mit Ubuntu und Plesk.

        Ich bin mir nciht sicher ob das eventuell im Hintergrund serverseitig ncoh Einstellungen korrigiert werden, von Strato.

          1. Hallo Markus,

            ich hatte noch (aus einem anderen Tip im WWW) in der /etc/hosts meine subdomain auf die 127.0.0.1 geschalten, daher im Hintergrund die Konfigurationshürden… Jetzt funktioniert alles ohne weitere Fallstricke.

            Bin durch intensivere Recherche drauf gestoßen, da das Update auf 13.04 und die neuste Collabora-App einen cURL 7 zum Vorschein brachte…
            Hab den localhost als auch die subdomain gecurlt und diese zeigte dann gleiche Angaben.

            Danke dennoch

            Martin 🙂

Schreibe einen Kommentar zu Markus Weingärtner Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.