Seafile Sync Client als Windows Dienst

Auf Arbeitsplatzrechnern ist die Synchronisation mittels Seafile trivial: Der Seafile Sync Client startet automatisch nach der Anmeldung und hält die Bibliotheken synchron. Auf einem Windows Server, wo in der Regel keine Benutzeranmeldung erfolgt, greift die Client-Einstellung Seafile nach der Anmeldung automatisch starten nicht. Die Konfiguration des Seafile Sync Clients als Windows Dienst ist in diesem Fall eine einfache Option, um den Start des Seafile Sync Clients unabhängig von der Windows Benutzeranmeldung zu machen. Dieser Artikel beschreibt die Einrichtung von Seafile als Windows Service.

Einsatzgebiet

Für Linux gibt es den Terminal Client. Ein Pendant dafür für Windows gibt es nicht. Mit der Einrichtung von Seafile als Windows Dienst lässt sich jedoch eine ähnliche Funktion erreichen: Der Seafile Client läuft im Hintergrund ohne graphische Benutzeroberfläche und synchronisiert eine definierte Auswahl von Bibliotheken.

Diese Funktion ist gerade für Windows Server Administratoren interessant, die Mitarbeitern per Remote Desktop Services (aka Terminalserver) Zugriff auf Unternehmensanwendungen und -daten verschaffen. Mit dem Seafile Sync Client als Windows Dienst lassen sich die Daten auf den Windows Server synchronisieren und dort an die User als Shared Folder durchreichen.

Voraussetzungen für Seafile als Windows Dienst

Die Einrichtung des Seafile Sync Clients als Dienst ist auf aktuellen Windows Desktop und Server Betriebssystemen möglich. Wir haben es für diesen Artikel auf Windows 10 (Version 1803 und 1809) und Windows Server 2016 getestet. Alles, was man braucht, ist ein Seafile Server und ein Windows System bzw. einen installierten Seafile Sync Client auf einem Windows System.

Wir verwenden in diesem Beitrag außerdem den Non-Sucking Service Manager (NSSM). Er ist open source, funktioniert gut und bietet viele erweiterte Konfigurationsmöglichkeiten. Es gibt keinen zwingenden Grund für NSSM. Dienste Manager von Microsoft wie z.B. instsrv und srvany oder Third Party Produkte wie FireDeamon tun mehr oder weniger das gleiche wie NSSM. Wer also die Bormittel von Windows bevorzugt, kann dies auch.

Einrichtung des Seafile Sync Clients als Dienst

Für die Einrichtungsanleitung gehen wir davon aus, dass

Wenn Sie von diesen beiden Vorgaben abweichen, dann muss die Dienstekonfiguration entsprechend angepasst werden.

Installation des Seafile Sync Clients

Zunächst muss der Seafile Sync Client per MSI-Paket installiert und die Synchronisation für die gewünschten Bibliotheken eingerichtet werden. Das Sync-Ziel sollte ein Unterordner im Standard-Ordner von Seafile sein.

Beenden Sie den Seafile Client im Anschluss dran und deaktivieren Sie die Autostart-Funktion des Clients. Grundsätzlich gilt auch: Sobald der Seafile Client als Windows Dienst aktiviert ist, sollte der Client nicht mehr als Desktop Anwendung gestartet werden. Der Parallelbetrieb von zwei Clients kann Datenbankkorruption führen.

Vorbereiten von NSSM

Laden Sie NSSM herunter und entpacken Sie das Archiv. Im entpackten NSSM-Ordner befinden sich drei Ordner. Neben dem Ordner src sind dies die Ordner mit der 32 und 64 Bit nssm.exe, mit der Seafile als Dienst eingerichtet wird.

NSSM kann vollständig über die Eingabeaufforderung gesteuert werden. Die Dokumentation der Kommandozeilenbefehle finden sich auf der Projektseite von NSSM. Da die Nutzung der graphischen Benutzeroberfläche (GUI) einfacher ist, benutzen wir diese für die Anleitung. Diese rufen Sie über die Eingabeaufforderung mit folgendem Befehl auf:

nssm install

Hinweis: NSSM lässt sich am bequestem nutzen, wenn Sie den Pfad der nssm.exe der Benutzervariablen Path hinzufügen. Ansonsten müssen Sie bei jedem Aufruf von NSSM in der Eingabeaufforderung in den Ordner navigieren oder den vollständigen Pfad eingeben.

Die Abbildung zeigt die drei für die Einrichtung von Seafile als Dienst zentralen Registerkarten:

Tabs Application, Details und Log on der NSSM-GUI

Auf der Registerkarte Application wird der Pfad der auszuführenden Binärdatei sowie die Startargumente definiert.

Auf der Registerkarte Details definiert man den Anzeigenamen des Dienstes. Der Anzeigename ist die Bezeichnung, unter der der Dienst in der Windows Diensteverwaltung angezeigt wird.

Auf der Registerkarte Log On werden die Zugangsdaten des Benutzers hinterlegt, mit dessen Berechtigungen der Dienst ausgeführt wird.

Konfiguration von Seafile als Dienst mit NSSM

Die Einrichtung von Seafile als Dienst erforderte bis zur Version 6.1 des Sync Clients die Anlage von zwei Programmen als Dienste. Die ccnet.exe und die seaf-deamon.exe waren für die korrekte Funktion des Seafile Clients notwendig. Mit der Version 6.2 wurde die ccnet-Komponente entfernt. In der nachfolgenden Anleitung kann der ccnet-Teil bei neueren Clients daher weg gelassen werden. (Mehr zur Architektur von Seafile im Seafile Manual.)

ccnet.exe

Unter Path im Tab Application geben Sie den Pfad zur ccnet.exe an. Diese befindet sich im Ordner bin im Standard Installationsorder des Sync Clients (d.h. “C:\Program Files (x86)\Seafile” für Seafile Sync Client 6.1). Das Feld Startup directory, das nach Angabe des Pfads automatisch ausgefüllt wird, muss nicht geändert werden, da ccnet nicht in einem bestimmten Verzeichnis gestartet werden muss. Als Argument geben Sie folgendes ein:

-c C:\Users\Admin\ccnet

Geben Sie nun im Tab Details den gewünschten Anzeigenamen des Dienste (z.B. Seafile ccnet) und ggf. eine Beschreibung ein.

Im Tab Log On geben Sie nach Klick auf den Radio Button This account den Benutzernamen und das Passwort des Benutzers Admin ein.

Zum Abschluss geben Sie nun bei Service name den Namen des Dienstes ein, unter dem er intern verwaltet wird und bestätigen Sie die Einrichtung. Sind die Pfade und Zugangsdaten korrekt, folgt eine Erfolgsmeldung.

seaf-daemon.exe

Im Tab Application im Feld Path geben Sie den Pfad der seaf-daemon.exe an (d.h. “C:\Program Files (x86)\Seafile\bin\seaf-daemon.exe” für Seafile Sync Client 6.1). Auch hier kann das Startup directory leer bleiben. Als Startargumente geben Sie folgendes an:

-c C:\Users\Admin\ccnet -d C:\Users\Admin\Seafile\seafile-data -w C:\Users\Seafile\Seafile

Die übrigen Schritte sind identisch mit dem Vorgehen für die ccnet.exe.

Start der Dienste

Die beiden Dienste sind nun angelegt. Der Start erfolgt am einfachsten über die Diensteverwaltung services.msc. Mit einem Rechtsklick auf den Dienstnamen lässt sich der Dienst über das Kontextmenü starten.

Diensteverwaltung services.msc

Wenn Sie im Tab Details den Starttyp nicht geändert haben, dann starten die beiden Seafile Dienste automatisch bei jedem Systemstart. Sollte der Server, auf der Seafile Sync Client als Windows Service eingerichtet ist, mal neu gestartet werden, dann müssen Sie nicht dran denken, die beiden Dienste manuell neu zu starten.

Wollen Sie später einmal den Umfang der synchronisierten Bibliotheken ändern, dann stoppen Sie zunächst die Dienste über die Windows Diensteverwaltung. Rufen Sie erst dann den Sync Client als Desktop Anwendung auf und nehmen die Änderungen vor.