Ich lese gerne täglich den Linux-Newsfeed unter ubuntunews.de und verfolge darüber auch regelmäßig die Blogger wie z.B. gnulinux.ch, bitblokes.de oder linuxnews.de die Neuigkeiten zu Nextcloud veröffentlichen & beschreiben. Aber Nextcloud würde ich nicht mehr einsetzen wollen, weil es einfach zu viele Bugs inne hat.

Nextcloud und die Synchronisations-Probleme

Ursprünglich setze ich Owncloud ein und bin nach dessen Fork Nextcloud ebenso zu Nextcloud gewechselt. Bereits Owncloud war kein sauber programmiertes Produkt, denn es zerstörte sich selbst recht regelmäßig beim Hochpatchen. Immer wieder musste man nach einem missglückten Upgrade nochmal Hand anlegen und die Lösung aus einem Forum oder von einem Github-Issue heraus ziehen.

Seit dem Fork zu Nextcloud wurden diese Probleme weniger (und Owncloud hat das bestimmt auch besser in den Griff gekriegt), aber Nextcloud hat ja eine regelrechte Feature-Explosion erfahren. Also das ist wirklich krass, ursprünglich war Nextcloud ja eine Dateiablage & Datei Sharing Plattform wie Dropbox.

Heutzutage ist Nextcloud eine riesige Kiste Funktions-Wundertüte und kann für kleinere Firmen oder auch für Heimanwender sau viele Werkzeuge bieten. Kalender, E-Mails, ja sogar Video Konferenzen mit Nextcloud Talk wurden möglich. Aber kann etwas, das alles kann, auch alles gut können?

Privat hatte ich mit Nextcloud weniger Probleme, meistens war mal wieder ein Update die Schuld lief Nextcloud danach gar nicht mehr. Schnell behoben, ein bisschen geflucht, das war’s. Auf Arbeit jedoch nutzten wir noch bis 2020 Nextcloud für die Synchronisation von speziellen mobilen Mitarbeitern im Außendienst beim ausmessen. Deren Messergebnisse wurden jeweils in speziellen Dateiformaten durch Nextcloud synchronisiert. Das Problem war hierbei, dass der Nextcloud Windows Client im Zusammenspiel mit dem Nextcloud Server immer öfters beim reinen synchronisieren von simplen Dateien auf die Schnauze flog und diese Dateien nicht synchronisierte.

Manchmal behauptete der Nextcloud Client, die Datei hätte sich online verändert während der Synchronisation eben dieser Datei. In so einem Fall benennt der Nextcloud Client die Datei auf dem Client um und macht… nichts! Es gab bis Anfang 2021 nicht einmal eine Option Nextcloud Client einzuprügeln, was es tun soll, wenn ein Synchronsiationskonflikt auftritt. Inzwischen gibt es eine experimentelle Option OWNCLOUD_UPLOAD_CONFLICT_FILES=1, die aber nicht etwa entscheided ob die originale oder Conflict-Kopie hochgeladen wird. Sie lädt eine zweite Datei hoch mit einem „.conflict“ Zusatz im Dateinamen. Für automatisiertes Verarbeiten alles synchronisierten Dateien auf Windows-Server Ebene ebenso ein No-Go, denn mit zwei verschiedenen Dateinamen kann die Automatisierung nur mit gruselig vielen Ausnahmen einprogrammiert noch korrekt arbeiten. 

Hier umschreibe ich nur grob die Problematik, prinzipiell hatten wir zweiverschiedene Probleme:

  • Es gab immer mal wieder Dateien mit „conflicted copy im Namen, die es niemals hätte geben sollen.
  • Es gab Dateien die waren nach dem Upload korrupt, ohne es am Dateinamen anzumerken.
    • Das wiederum kann am per SabreDAV angehängtem Windows SMB/CIFS Storage mit gelegen haben. Die genaue Ursache wurde nie gefunden. Später dazu mehr.

Ich muss erwähnen, dass Mitarbeiter mit LTE SIM-Karten in deren Notebooks betroffen waren. Ja klar, mit einem schlechten LTE Empfang kann schon mal der Upload einer Datei mehr schlecht als recht klappen. Aber trotzdem darf dadurch keine hochzuladende Datei korrumpieren. Niemals. Ein Dienst, dessen Hauptaufgabe es ist, Dateien zu synchronisieren, dieser Dienst muss eine Arbeit einwandfrei verrichten. Auch bei sehr schlechtem mobilen Funknetz.

Wie zwei Absätze vorhin erwähnt hatten wir die Spezialität, die Nextcloud Speicherablage war angebunden als ein Windows-Share per SMB/CIFS. Das ist meines Wissens völlig legitim, wenn man einen Windows Share als sogn. External Storage in Nextloud Server als Datenablage wählt wird dieser im technischen Hintergrund per SabreDAV angesprochen. Das Problem an dieser Konstellation war so schräg wie nervig: Dateien wurden vom Nextcloud Client vereinzelt nicht korrekt hochgeladen, waren anscheinend danach korrupt, und wurden von Nextcloud Server verworfen. BAM! Ich habe viele, viele Stunden ins Troubleshooting gesteckt, habe natürlich auch auf der Webserver-Ebene den Apache2 untersucht und diverse Einstellungen verbessert. Dann habe ich mich mit unseren DevOps-Entwicklern zusammengesetzt (die bei PHP die Nase rümpfen…) und weitere Stunden den Fehler gesucht. Eine echte Lösung fanden wir nie.

Nextcloud der FOSS Bug-Champion?

Ein heftiges No-Go, denn unsere Außendienst Mitarbeiter haben es hingekriegt tastsächlich 2x zum Kunden fahren zu müssen weil die Messdaten des ersten Besuchs von Nextcloud nicht fehlerfrei synchronisiert wurden und auf nimmer wiedersehen verloren.

Wenn man auf Github die Anzahl Bugreports zu Nextcloud anfängt zu zählen endet man bei über 3650 offenen Bugreports!

  • Nextcloud Server: 1’800 offene Bugreports
  • Nextcloud Desktop: 550 offene Bugreports
  • Nextcloud Android: 750 offene Bugreports
  • Nextcloud iOS: 550 offene Bugreports

Ab wann zählt denn eigentlich ein Open Source Projekt als gescheitert, wenn die Anzahl Fehler immer mehr zunimmt? Aus meiner Sicht braucht Nextcloud einige Bugfix-Releases, eine Art Feature-Stop währenddessen, ein Frühlings-Putz durch alle von Nextcloud abgedeckten Bereichen.

Seafile

Als die Synchronisationsprobleme Mitte 2020 den Höhepunkt insofern erreichten, als dass der erste Mitarbeiter tatsächlich ein zweites mal zum Kunden fahren musste, da wurde die rote Linie überschritten. Ich war nicht die Person die Nextcloud eingeführt hatte, aber ich war die Person mit der Macht und Freiheit es zu verbessern. Also habe ich sofort nach einer Lösung gesucht und mit Seafile auch recht schnell gefunden. Seafile basiert nicht auf PHP sondern auf Python, es dürfte im Hintergrund das Django Framework werkeln. Nun kann man innerhalb Seafile nicht per SMB/CIFS einen External Storage vergeben, aber Seafile bietet für produktive Unternehmen eine viel bessere und DMZ freundlichere Lösung an: Man installiert auf einem Windows Server Seafile als Windows-Dienst und holt sich die Daten ab, die man braucht. Daraus ergibt sich eine Best Practice Lösung für den Datenaustausch zwischen Internet <> DMZ <> LAN.

  1. Der Mitarbeiter nutzt Seafile Windows oder Mobile Client um automatisiert Dateien auf den Seafile Server hoch zu laden. Diese Synchronisation ist stabil und schlägt nie fehl (!). Diese Verbindung wird durch die Edge Firewall gefiltert & überwacht. Zusätzlich kann eine separate WAF z.B. ModSecurity davor geschaltet werden. (Siehe meine ModSec CRS3 Ruleset False Positive korrekturen auf Github)

  2. Der Seafile Server steht in einer DMZ. Der Server nutzt als Speicherplatz seinen nativen lokalen Linux Server Speicher, hochverfügbar oder nicht kann man selbst einrichten.

  3. Ein Windows-Server im LAN gilt als Daten Storage und darauf installieren wir den Seafile Client als Windows Dienst. Der Clou: Hier läuft eine weitere Synchronisation ab. Dieser interne, schützenswerte Windows-Server holt sich selbstständig sofort die neusten Dateien der Außendienst-Mitarbeiter vom Seafile-Server ab. Auch diese Verbindung kann durch eine ISFW Firewall durchscannt werden.

Das Front-End für normale User in Seafile.

Aber warum nutzen dann nicht mehr Firmen Seafile anstatt Nextcloud? Vermutlich weil Seafile einfach nur in einem Bereich der Open Source Champion ist: Beim schnellen und zuverlässigen Dateien-Austausch, also beim synchronisieren. In Seafile gibt es keinen Kalender, es gibt keinen E-Mail Client. Es gibt keine Videokonferenzen. Es gibt (fast) nur das Eine: Dateien synchronisieren. Natürlich mit Gruppen-Funktionen wie wir das von Nextcloud her kennen, ich kann also Benutzer anlegen und gemeinsame Datenablagen definieren. Seafile nennt es „Bibliotheken“.

Seafile ist ebenso der King beim Versionieren von Dateien, denn Seafile löscht nichts weg. Auch nicht, wenn du den Löschen-Button drückst. Im Hintergrund werkelt ein Block-Storage und dieser behält alle Daten erst einmal gelagert. Erst wenn der Admin einen Putz-Job ausführt, löscht Seafile ungenutzte Blöcke weg. Der Vorteil ist nebst einer fantastischen Versionierung aller Dateien der Speed: Dank diesem Block Storage bleibt Seafile auf der Web-Oberfläche blitzschnell, ein himmelsweiter Unterschied zur langsamen Nextcloud Web UI.

Selbstverständlich hat Seafile noch einige Funktionen die das Arbeiten unterstützen: Man kann sich Dateien im Browser auch anzeigen und Share-Links generieren. Auch werden Datei-Editoren unterstützt durch die Integration von OnlyOffice, Collabora Online oder MS (Windows) Office Online Server. Ohne diese Extras für schöne oder komplexe Textdateien kann man den integrierten Markdown-Editor für Textdateien nutzten – der tut es in meinem Fall auch. 

Für Bezahlkunden bietet Seafile die üblichen Enterprise-Features an die man als Open Source Anwender nicht bekommt: Sehr detaillierte Rechte-Struktur (nicht getestet), Automatischer LDAP/AD Sync (nicht getestet auf Wunsch auch Kerberos mithilfe einem Apache/Nginx Reverse Proxy), Clustering, Löschen der Daten auf Clients durch das Internet ein sogn. Remote Wipe (nicht getestet). Und eine blitzschnelle Volltextsuche dank Elastic Search, damit durchsucht man hunderten Gigabyte Textdateien (Office/PDF) in etwa so schnell wie man googelt – verdammt schnell.

Wo ist der Haken? Seafile kommt aus China 😛 Aber hey, die Community Version ist vollständig Open Source. Es gehört ein bisschen zum Zahn der Zeit, dass die Chinesen beim beliebten nachahmen von Produkten immer besser werden bis sie den Rest der Welt in einigen Bereichen aufholen oder sogar überholen, ein Beispiel dürfte die hierzulande immer bekannter werdende Alibaba Cloud sein.

Ich bin nun seit ca. 1 Jahr mit Seafile unterwegs und bin zufrieden. Zufrieden mit der Geschwindigkeit, zufrieden mit der Qualität der Synchronisation,, keine einzige Datei ist beim Synchronisieren durch einen Abbruch je verloren gegangen. Es läuft schnell und stabil. Guuut gut gut, ja ich gebe es zu, keine Software ohne Fehler: Unter Android wollte der auto-upload Bilder-Ordners kurzzeitig nicht mehr funktionieren, jedoch war zum Zeitpunkt des Fehler-Entdeckens bereits eine gefixte Version durch die Entwickler veröffentlicht worden.

Für wen lohnt sich denn Seafile nun? Warum schreibe ich das alles? Um etwas Kontrast in das Nextcloudiversum zu bringen: Wer Nextcloud rein für den Datenaustausch benutzt, wird mit Seafile vermutlich glücklicher. Wer hingegen seine Seele an Nextcloud verkauft hat durch das Nutzen diverses Addons wie Talk, Calendar, Mail, der wird Seafile nicht haben wollen. Und man muss bei Seafile einen Server oder Webhoster einsetzen der auch Python(3) unterstützt, wie eingangs erwähnt basiert Seafile nicht auf PHP.

Wer sich Seafile selbst einmal anschauen möchte kann sich mein Ansible Playbook zum Thema SSSD (AD/LDAP Login auf Linux Server) anschauen, das ich kürzlich geteilt habe unter: https://seafile.schroeffu.ch/d/2d51829bf48249848775/

Kategorien: Linux

Schroeffu

Der Autor ist Schweizer, verheiratet, seit November 2015 zu seiner liebevollen Frau nach Braunschweig, Deutschland, ausgewandert. Als Vater von inzwischen zwei Kindern kommt das Bloggen hoffentlich nicht zu kurz.

14 Kommentare

tux. · 8. Juli 2021 um 16:14

Spannend: Wenn ich hier versuche einen Kommentar abzuschicken, krieg ich eine 404-Meldung. Was isn das jetzt wieder…

    tux. · 8. Juli 2021 um 16:16

    Ah, nur irgendein Wort scheint nicht durch den Spamfilter zu kommen.

    Nächster Versuch:

    Ich finde Seafile außerordentlich gut, allerdings scheinen die Entwickler jenseits von Linux kaum eine Plattform als existent anzuerkennen. Beim Versuch, es auf FreeBSD zum Laufen zu bringen, bin ich vor einiger Zeit jedenfalls gescheitert. Ich hatte mir etwas eigens einen Server gemietet, der vollständig meine Dateisynchronisation übernehmen sollte; er läuft unter Solaris (naja, OmniOS; auch so ein Schweizer Produkt, das gerade von einem Braunschweiger benutzt wird ^^) und da muss ich es gar nicht erst versuchen.

    Schroeffu · 8. Juli 2021 um 16:56

    Haha, Sorry! Das ist „gewollt ungewollt“ leider passiert.

    Ich habe kürzlich fast alle Webseiten auf neue Server mit ModSecurity (Web Application Firewall) umgezogenen. Dort dreht das CRS 3.3.0 Ruleset mit, ich hatte noch keine Lust die False Positives zu entschärfen da kaum welche anschlugen. Jetzt wohl schon.

    Werde ich innerhalb der nächsten Tage nachbessern.

      tux. · 8. Juli 2021 um 17:18

      Da wäre jetzt meine Anschlussfrage, was man hier tippen muss, damit das Ding anschlägt. Und ob du nicht lieber einen Profi ranlassen solltest… 😉

        Schroeffu · 8. Juli 2021 um 17:23

        Was hast du denn geschrieben gehabt? Fluchwörter? ;p oder Codezeilen?

          tux. · 8. Juli 2021 um 17:36

          Tatsächlich ein Zitat aus der Shell (zur Illustration), den zu entfernen hat es irgendwie aber auch nicht gebracht. Irgendwo nach „versuchen“ kam wohl irgendwas, was ihm nicht gefällt…

          Naja. Fix das mal. 😉

          Schroeffu · 9. Juli 2021 um 11:09

          Gefunden & entschärft. Wobei ich soeben den Paranoia Level mit erhöht habe, das beinhaltet weitere SQL Injection & XSS detections.

          Ich habe einfach keine Lust auf gehackte Seiten. Bei WordPress je nach installierten kuddel-muddel Plugins ja ein Kinderspiel geworden. Daher lieber wenige falsch positiven für kurze Zeit 🙂 Hier läuft ja nix was mir Geld einbringt..

          tux. · 9. Juli 2021 um 11:13

          WordPress hat sich seit 2005 von einer vernünftigen Blogsoftware zu einem eitrigen Pickel am Arsch weiterentwickelt. Wären mir Kommentare egal, würde ich längst Zola nutzen, aber die Migration von WordPress-Kommentaren auf statische Kommentare (ich erwäge die Nutzung von Staticman) ist gar nicht mal so leicht.

          Aber vielleicht wäre das eine Idee für dich. 😉

          Schroeffu · 9. Juli 2021 um 13:39

          Schon recht cool solche kleinen aber blitzschnellen CMS’en. Mir wurde vor einem Jahr öfters Ghost empfohlen, habe letztendlich auch nie ausprobiert. Wir sind doch alle faul, nutzen gerne diese teilweise schlecht programmierten Plugins oder Themes.. Mit meckern, aber wir nutzen sie dennoch 🙂

          Passend dazu: Was empfiehlst du als Shop System? Ich hatte meiner Schwester anno dazumal WooCommerce gegeben, bin schwer enttäuscht. Schlechte Performance (WordPress halt) und für jeden Furz nimmt man ein Plugin. Braucht man etwas mehr Standard – zum Beispiel DHL Tracking Featuers – zahlt man i.d.R. oben drauf. Das nervt mich. PrestaShop fände ich laut Doku & Demo ganz smart, aber auch damit zahlt man für jede zusätzliche Pups-Funktion für Extra Plugins. Hmm.

          tux. · 9. Juli 2021 um 13:44

          Ghost ist ja nicht wirklich ein schnelles CMS und vor allem kein statisches – es läuft mit Node.js, wenn ich mich recht entsinne, was ja im Prinzip schon dagegen spricht.

          Die erste Version von Ghost fand ich interessant, aber die hohen Erwartungen für spätere Versionen (das Dashboard-Konzept) wurden bis heute nicht so recht erfüllt.

          Bei Shopsystemen bin ich leider raus. Ich würde wahrscheinlich einfach eins selbst bauen.

Jürgen · 8. Juli 2021 um 16:27

Witzig – so ähnliche Gedanken hatte ich auch die letzten Tage. Es braucht nicht nur ein Bugfix-Release, sondern auch eine LTS-Version. Ich kann Nextcloud 21 und 22 jetzt schon nicht mehr ohne Weiteres auf Ubuntu 18.04 LTS installieren.

Dauernd halb fertige neue Funktionen und altes Zeug bleibt einfach liegen und auf der Strecke. Ich bin langsam auch so weit, mich ernsthaft mit Alternativen zu beschäftigen, weil es mir auch zu doof wird.

    Frank · 11. Juli 2021 um 18:49

    Darum hab ich das Ding im Container (Podman).

      tux. · 11. Juli 2021 um 22:30

      Software, die im Container läuft, gehört da meist auch hin.

Christian · 8. Juli 2021 um 17:36

Ich evaluierte beide Loesungen und wir verwenden beides aktuell, je nach Kunde 😉

Gerade unter FreeBSD mussm an bei Seafile jedoch etwas von hand anpassen bis es sauber laeuft.
Aber wenn man erfahrung mit dem Django-Stack hat ist das kein Problem.

Schreibe einen Kommentar

Avatar placeholder

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.