Collabora

Änderungsstand: 2023-10-26

Lange habe ich hierfür getestet. Nun funktioniert es auch mit mehreren Nextcloud-Instanzen.

2025 –> Neuer Guide – -> hier!

Collabora als Docker installieren:

(Ich verwende, wie immer, Compose)

sudo mkdir -p /home/dockervolumes/collabora
cd /home/dockervolumes/collabora && sudo nano docker-compose.yml

Folgendes dort einfügen (vorher eigene Werte überprüfen):

version: '3.9'
services:
  collabora:
    image: collabora/code
    container_name: collabora
    restart: unless-stopped
    cap_add:
      - MKNOD
    ports:
      - '9980:9980'
    environment:
      - domain=troubadix.duckdns.org
####
# Bei mehreren Nextcloudanwendungen fällt der vorherige Schritt weg und folgendes (aliasgroup) wird stattdessen verwendet: 
##
#      - aliasgroup1=https://troubadix.duckdns.org
#      - aliasgroup2=https://troubadix2.duckdns.org
#      - aliasgroup3=https://troubadix3.duckdns.org
##
      - username=admin
      - password=SICHERESPASSWORT
      - "extra_params=--o:ssl.enable=false --o:ssl.termination=true"
    volumes:
      - "/etc/localtime:/etc/localtime:ro"

Speichern mit Strg-x, y, Enter

Anschließend die „yml“ starten mit:

cd /home/dockervolumes/collabora && sudo docker compose up -d

Das Dockerimage wird heruntergeladen und der Docker mit der eingetragenen Konfiguration gestartet.

Zugriff von außen einrichten:

Nun füge ich in meinem „Nginx Proxy Manager“ einen neuen Host hinzu:

  • Details:
    • Domain Names: collabora.duckdns.org (eigene Domain verwenden und statt collabora.duckdns.org ruhig etwas ausgefallenes verwenden, wie z.B. crkdpsurgsjdlczerhdjsvzdge.duckdns.org).
    • Scheme: http
    • Hostname: eigene Server-IP-Adresse
    • Forward Port: 9980
    • Block Common Exploits: Yes
    • Websocket Support: Yes
  • SSL:
    • Request a new SSL Certificate
    • Force SSL: Yes
    • HTTP/2 Support: Yes
    • HSTS Enabled: Yes
  • Save

Aufruf im Browser:

Collabora-Domainname –> Ein OK erscheint im Browserfenster.

Das Controll-Interface rufe ich im Browser auf:

http s://Collabora-Domainname/browser/dist/admin/admin.html

oder

http://Server-IP:9980/browser/dist/admin/admin.html

Zugangsdaten wie in der Compose-Datei festgelegt.

Ich verwende 4 verschiedene Nextcloud-Instanzen (Tests mit verschiedenen Datenbanken) und verwende eine Instanz von Collabora:

Folgender Schritt wird von „mrzapp“ empfohlen (siehe Quellangabe) und wird erledigt (xxx steht für den jeweiligen Pfad zu Nextcloud):

sudo nano /xxx/nextcloud/nginx/site-confs/default.conf

Folgendes am Ende dieser Datei einfügen (Zeile 3 anpassen!):

# Collabora
server {
    server_name collabora.duckdns.org;

    location / {
        proxy_pass http://localhost:1001;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_cache_bypass $http_upgrade;
    } 
    
    # static files
    location ^~ /loleaflet {
        proxy_pass https://localhost:1001;
        proxy_set_header Host $http_host;
    }

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

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

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

    # Hosting capabilities, such as mobile support
    location ^~ /hosting/capabilities {
        proxy_pass https://localhost:1001;
        proxy_set_header Host $http_host;
    }
}

Strg-x, y, Enter

Nextcloud-Docker neu starten.

Fertig.

Quelle(n):

https://gist.github.com/mrzapp/08947dd861bc826c4e02cee2d4da51ae

https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten