Skip to content

Nextcloud - Collabora Installation

Nextcloud
  • Kurze Vorgeschichte, meine Nextcloudinstallation nutze ich schon lange. Nicht schön war immer, das man Dokumente .odt nicht bearbeiten kann. Ich habe mich dann meistens mit .md Dokumenten beholfen, die kann man in der Nextcloud direkt bearbeiten. Aber so richtig glücklich war ich nie damit.

    Richtig fies wurde das, als mein Arbeitgeber auch auf die Idee kam, eine Nextcloud Instanz als Dokumentenaustausch einzusetzen.

    In Vergangenheit hat ich viele Versuche gemacht, diese Collabora Installation zu machen. Meistens bin ich gescheitert, erst letztens die eingebauten CODE-Collabora Installation ausprobiert. Doch die konnte nicht drucken, alle Dokumente waren leer 😞

    So reifte der Plan, das mal auf einem eigenen Server aufzusetzen.

    Screenshot_Backend.png

    Server

    Kurzer Werbeblock 🙂 Ich nutze für meine Installation die Hetzner Cloud.

    Gewählt habe ich einen CPX11, meine Nextcloud läuft auf einem CX21.

    Auf die Installation möchte ich hier nicht ausführlich eingehen, das setze ich mal voraus. Gewählt habe ich ein Debian 11.

    Collabora Online Installation

    Collabora Online findet man hier.

    Collabora Online ist eine angepasste Version von LibreOffice Online, einem Online-Office, welches sich auf der eigenen Hardware betreiben lässt.
    Quelle: https://de.wikipedia.org/wiki/Collabora_Online

    Man sollte also später in der Lage sein, ein LibreOffice Dokument in der Nextcloud Installation anzulegen, zu bearbeiten und speichern zu können. Alles aus einem Guss 😉

    Alles etwas unübersichtlich auf der Seite, der Hauptaugenmerk liegt auf dem Generieren von Kohle, das dürfen sie auch gerne, schließlich stellen sie auch einen OpenSource Zweig zur Verfügung. Den findet man dann hier.

    https://www.collaboraoffice.com/code/

    Das ist im Prinzip deren Testversion, bevor man das auf die zahlende Kundschaft los lässt, wird das bei den OpenSource Anwendern ausprobiert. Ein recht verbreitetes Modell.

    CODE is a continuously updated, rolling release where we try out our latest feature work. So it allows you to work with the latest and greatest features in online collaboration earlier than the supported version Collabora Online. Of course, we love to hear about your experiences. Please leave your feedback on CODE in the community forum or report any possible issues on GitHub.
    Find details on the latest update in the release notes.

    Es gibt vier Möglichkeiten der Installation, ich habe mich für den klassischen Weg entschieden, ganz normale Debian Pakete.

    https://www.collaboraoffice.com/code/linux-packages/

    Die Anleitung ist sehr gut und es klappt auch alles wie erwartet. Danach hat man einen Dienst mit Namen coolwsd am Laufen.

    Hier findet man das auch etwas ausführlicher

    Die sehr umfangreiche Konfigurationsdatei findet man unter

    /etc/coolwsd/coolwsd.xml
    

    Dafür sollte man sich wirklich Zeit lassen und sie erst mal ausführlich lesen. In der Doku findet man viele nützliche Hinweise, also auch aufmerksam lesen 😉

    Kommen wir zu den Einstellungen.

    Einstellungen

    Ich habe, bis auf zwei Abschnitte alles auf Standard gelassen. Die zwei Abschnitte

    • Network settings
    • SSL settings

    bedürfen unserer Aufmerksamkeit.

    Network settings

    • proto auf IPv4
    • listen auf any

    SSL settings

    Meine SSL-Zertifikate kommen von Let's Encrypt

    • enable True
    • termination False

    Cert File Path, hatte sie einfach mal irgendwo hinkopiert (zum Testen)

    <cert_file_path desc="Path to the cert file" relative="false">/etc/coolwsd/nginx/cert.pem</cert_file_path>
    <key_file_path desc="Path to the key file" relative="false">/etc/coolwsd/nginx/key.pem</key_file_path>
    <ca_file_path desc="Path to the ca file" relative="false"/>
    

    So, da fehlt jetzt noch was Wichtiges, ohne Apache2 oder NGINX wird das nicht ausgeliefert. Ich nutze schon lange NGINX, also dann mal los.

    NGINX

    Ich habe einfach mal die default.conf unter /etc/nginx.conf.d umgeschrieben. Das entspricht der Konfiguration aus der Anleitung. Domain Namen rein und fertig.

    server {
     listen       443 ssl;
     server_name  collaboraonline.example.com;
    
    
     ssl_certificate /path/to/certificate;
     ssl_certificate_key /path/to/key;
    
    
     # static files
     location ^~ /browser {
       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 ~ ^/cool/(.*)/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 ~ ^/(c|l)ool {
       proxy_pass https://127.0.0.1:9980;
       proxy_set_header Host $http_host;
     }
    
    
    
     # Admin Console websocket
     location ^~ /cool/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;
     }
    
    }
    

    Nextcloud

    Als erstes muss mal die entsprechende App installiert werden.

    f6472a0f-7820-4f0d-b539-8cf336b21b32-grafik.png

    Jetzt noch, was auf Nextcloud Seite eingestellt werden muss. Ich füge hier noch mal das Bild von oben ein, dann muss man nicht so weit scrollen.

    Screenshot_Backend.png

    Im oberen Feld kommt ein Link rein, der nur prüft ob die Installation erreichbar ist. Da steht bei mir

    https://<DOMAIN>:9980
    

    Unten das Feld ist wichtiger, das muss die IP des Collabora Servers rein.

    Ein Bug hat mich sehr viel Zeit gekostet.... 😞

    Warnung

    Man sollte grundsätzlich gut wissen, wie man eine App auch wieder über die Konsole deaktiviert. Diese Apps sind schon ein wenig zickig, sie brauchen auch viel Zeit für die Installation, also auch mal was warten....

    Ergebnis

    Man kann jetzt ein Dokument, eine Tabelle, eine Präsentation oder ein Diagramm direkt aus der Nextcloud öffnen.

    a6682cb1-5cc6-45cf-af3a-b63c5820ceea-grafik.png

    Ein Dokument sieht dann, im Browser geöffnet, so aus.

    4c57434b-d5d9-465e-bd33-29318c64b031-grafik.png

    Das kann man bearbeiten, speichern (liegt alles in der Nextcloud) und auch über den Dialog direkt drucken 🙂

    Ausblick

    Was ich noch die Tage probieren werde ist die Office Open XML (OOXML) Unterstützung. Mal schauen ob das mittlerweile gut funktioniert.

    Sicherheit

    Ich gehe hier im Beitrag nicht auf das Thema Sicherheit ein, so als Anregung ein paar Hinweise.

    • iptables
    • fail2ban

    Ich habe die Zugriffe auf die Installation gestern mal auf die Schnelle über NGINX massiv begrenzt, das Thema ist aber bei mir noch nicht komplett. Das steht heute auf dem Plan. Wenn es dazu was Wichtiges gibt, werde ich das hier ergänzen.

    Zum Schluss bleibt mir nur Euch viel Spaß zu Wünschen. So macht für mich eine Nextcloud Installation erst richtig Sinn. Meinungen?

    Sollte jemand Fehler oder Unsinn finden, bitte ich um einen Beitrag. Ich werde das dann entsprechend ändern / verbessern.

  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • FrankMF FrankM hat am auf dieses Thema verwiesen

  • Nextcloud - Update auf 30.0.1

    Nextcloud
    1
    0 Stimmen
    1 Beiträge
    171 Aufrufe
    Niemand hat geantwortet
  • Nextcloud - Update auf 27.0.1

    Nextcloud
    1
    0 Stimmen
    1 Beiträge
    103 Aufrufe
    Niemand hat geantwortet
  • Nextcloud API Zugriff

    Nextcloud
    4
    0 Stimmen
    4 Beiträge
    242 Aufrufe
    FrankMF

    Ok, es gab noch ein Problem und zwar '/'. Habe das Script jetzt nochmal umgebaut, jetzt bin ich soweit zufrieden. Die Textdatei ist auf meine Bedürfnisse angepasst worden

    1.2.01 1.2.01.1 Text1.1 1.2.01.2 Text1.2 1.2.02 1.2.02.1 Text2.1/Testing 1.2.02.2 Text2.2

    1.2.01 und 1.2.02 erzeugt dann einen Ordner, der Rest sind dann Unterordner.

    """ Tool to create folders using the Nextcloud API """ ############################################### # Imports ############################################### import subprocess from pathlib import Path ############################################### # Constant ############################################### # Get home directory from user USERHOME = str(Path.home()) NCPATH = 'https://DOMAIN/remote.php/dav/files/Frank/Python_Script/' USERNAME = 'USER' PASSWORD = 'PASSWORD' ############################################### # Function to crate folder with nextcloud api ############################################### def read_textobject(): # read folders to create from textfile with open(f'{USERHOME}/Textdatei.txt', 'r') as obj: # create object for line in obj: line_split = line.split(' ') elements = line_split[0].split('.') try: if elements[3]: main_folder = 0 # replace whitespaces with %20, and / with _ and remove linefeed (\n) path = Path((line.replace(' ', '%20').replace('/', '_')).rstrip('\n')) except IndexError: print("Element is main folder") main_folder = 1 # replace whitespaces with %20, and / with _ and remove linefeed (\n) main = Path((line.replace(' ', '%20').replace('/', '_')).rstrip('\n')) else: print("Element is not a main folder") ############################################### # Create directory ############################################### if main_folder == 1: # Main folder try: args = ['curl', '-u', f'{USERNAME}:{PASSWORD}', f'{NCPATH}{main}', '-X', 'MKCOL'] result = subprocess.run(args, check=True, capture_output=True, text=True) except subprocess.CalledProcessError as error: print(result.stderr) else: if result.stdout: print(result.stdout) else: print('Directory created successful') else: # Not a main folder try: args = ['curl', '-u', f'{USERNAME}:{PASSWORD}', f'{NCPATH}{main}/{path}', '-X', 'MKCOL'] result = subprocess.run(args, check=True, capture_output=True, text=True) except subprocess.CalledProcessError as error: print(result.stderr) else: if result.stdout: print(result.stdout) else: print('Directory created successful') else: print(result.stdout) obj.close() if __name__ == '__main__': read_textobject()
  • Nextcloud - Update auf 21.0.1

    Nextcloud
    1
    0 Stimmen
    1 Beiträge
    232 Aufrufe
    Niemand hat geantwortet
  • Nextcloud - Deck

    Nextcloud
    2
    0 Stimmen
    2 Beiträge
    454 Aufrufe
    FrankMF

    Für meine Lieblings App gibt es auch eine mobile App.

    Link Preview Image Nextcloud Deck - Apps on Google Play

    Client for Nextcloud Deck

    favicon

    (play.google.com)

    Diese App kostet 2,99€, ich denke das ist gut investiert.

    Deck.jpg

    Und so was müßte es jetzt noch bei meinem Arbeitgeber geben 😞

  • Nextcloud - Update auf 17.0.2

    Nextcloud
    1
    0 Stimmen
    1 Beiträge
    229 Aufrufe
    Niemand hat geantwortet
  • Urgent security issue in NGINX/php-fpm

    Nextcloud
    5
    0 Stimmen
    5 Beiträge
    415 Aufrufe
    FrankMF

    https://ollifromtheblog.de/der-sturm-im-wasserglas-nextcry-und-die-angebliche-nextcloud-sicherheitslucke/

  • Nextcloud ohne https lokal nutzen!?

    Verschoben Nextcloud
    1
    0 Stimmen
    1 Beiträge
    772 Aufrufe
    Niemand hat geantwortet