Seafile Cloud installieren und einrichten
Wir haben Ihnen die Cloud-Software Seafile bereits vorgestellt. In diesem Artikel möchte ich Ihnen zeigen, wie Sie Seafile auf Ihrem Server, zum Beispiel einem Raspberry Pi, installieren und einrichten können (Stand: Stand: 25.02.2023).
Schritt für Schritt werde ich Sie durch die Installation führen und Ihnen auch die Befehle mitteilen, die Sie in die Konsole Ihres Servers eingeben müssen. Dabei ist die Anleitung an die offizielle Seafile-Installationsanleitung angelehnt.
Voraussetzung für die korrekte Installation ist, dass Sie bereits über einen eigenen Server mit einem eigenen Host-Namen (z.B. ihrhost.dyndns.de) verfügen. Auch ein Nginx Webserver und MySQL müssen eingerichtet sein. Sollten Sie unserem Tutorial zur Einrichtung einer eigenen Cloud gefolgt sein, so ist dies bereits der Fall.
Wichtig: Bei Platzhaltern in diesem Tutorial (z.B. "[Platzhalter für Benutzer]") sind auch die eckigen Klammern zu ersetzen (z.B. "user0815").
Falls Sie Ubuntu als Betriebssystem verwenden sollten, finden Sie hier Hinweise zur Installation mit wenigen Klicks.
1. Installation und Herunterladen der notwendigen Pakete
Installieren Sie zunächst einige Pakete, die Seafile benötigt, über die Konsole:
sudo apt-get install -y python3 python3-setuptools python3-pip libmariadb-dev libmariadb-dev-compat && sudo apt-get install -y memcached libmemcached-dev
Weitere benötigte Pakete installieren wir mit:
sudo pip3 install --timeout=3600 django==3.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==9.3.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django_simple_captcha==0.5.* pycryptodome==3.16.* cffi==1.15.1 lxml
Wir legen nun den neuen Benutzer seafile an:
sudo adduser seafile
Anschließend legen wir noch einen neuen Ordner an, verteilen die Rechete und betreten diesen:
mkdir /opt/seafile && cd /opt/seafile && chown -R seafile: /opt/seafile
Jetzt fahren wir als Benutzer seafile fort:
su seafile
Suchen Sie jetzt nach dem aktuellen Server-Download-Link. Rufen Sie dafür auf Ihrem PC die Seafile-Seite auf. Sollten Sie den Raspberry Pi verwenden, benötigen Sie den Download-Link, der dort angegeben ist ("Latest version" anklicken > Datei unter "Assets" oder ähnlich > Link so ähnlich wie "seafile-server_8.0.5_stable_pi.tar.gz"), ansonsten zum Beispiel den für ein 64Bit-Linux. Diesen Download-Link müssen Sie nun abtippen und auf dem Raspberry Pi den folgenden Befehl ausführen:
sudo wget [HIER-DOWNLOAD-LINK-EINGEBEN] && sudo tar -xzvf *tar.gz
Lassen Sie sich nun alle Dateien in diesem Ordner anzeigen:
ls
Dabei sollte in der folgenden Liste so etwas wie "seafile-server-9.0.10" (oder andere Version am Ende) stehen. In dieses Verzeichnis können Sie nun mit folgendem Befehl automatisch navigieren:
cd seafile-server-*
2. MySQL für Seafile einrichten
Wir lassen Seafile nun die MySQL-Datenbank einrichten. Dafür sind sowohl das MySQL-Root-Passwort als auch der MySQL-Cloud-Benutzer und das zugehörige Passwort notwendig. Die Zugangsdaten haben Sie zuvor festgelegt. Starten Sie das entsprechende Skript:
sudo ./setup-seafile-mysql.sh
Die folgenden Angaben werden dabei von Ihnen abgefragt:
- server name: Denken Sie sich einen Namen für Ihren Server aus, z.B. "meine-cloud"
- ip or domain of the server: Geben Sie hier Ihren Server-Host ein, z.B. ihrhost.dyndns.de
- where to put seafile data: Wenn Sie kein externes Speichermedium für Ihre Daten verwenden wollen, drücken Sie erneut [Enter]
- port for the seafile fileserver: [Enter]
- 1 or 2: Wenn diese Frage erscheint geben Sie eine 1 ein und bestätigen Sie mit der Enter-Taste (Datenbanken neu erstellen)
- host of mysql server: localhost
- port of mysql server: 3306
- password of the mysql root user: Wie von Ihnen zuvor festgelegt
- mysql user of seafile: Ihr MySQL-Benutzername, wie er etwa in unserem Raspberry Pi-Tutorial erstellt wurde...
- passwort for mysql user: ...und das zugehörige Passwort.
- (3x) database name: jeweils [Enter] drücken
Nachdem die Konfiguration noch einmal angezeigt wird, sollten Sie mit [Enter] bestätigen.
Die Einrichtung der MySQL-Datenbanken für Seafile wird damit abgeschlossen.
3. SSL-Unterstützung aktivieren
Öffnen Sie nun eine Konfigurationsdatei:
sudo vi ../conf/seahub_settings.py
Navigieren Sie mit den Pfeiltasten zur entsprechenden Zeile und machen Sie aus dem "http" ein "https":
SERVICE_URL = "https://[IHRHOST.DYNDNS.DE]/"
Speichern Sie diese Datei durch [Esc] und ":wq" sowie [Enter].
4. Seafile-Administrator erstellen
Zunächst sorgen wir dafür, dass dem Benutzer seafile alle Dateien gehören, die wir zuvor in seinem Homeverzeichnis abgelegt haben:
sudo chown -R seafile: /opt/seafile/
Starten Sie Seafile und Seahub (Webinterface) als seafile-Benutzer, indem Sie folgende Befehle eingeben:
sudo -u seafile ./seafile.sh start && sudo -u seafile ./seahub.sh start
Sie werden nun nach einer E-Mail-Adresse und einem Passwort gefragt. Legen Sie diese beliebig fest, aber wählen Sie in jedem Fall ein sicheres Passwort und merken Sie es sich. Über diesen Administrator-Account können Sie Seafile später verwalten.
Beide Dienste beenden wir anschließend noch einmal, um zunächst Nginx fertig zu konfigurieren:
sudo -u seafile ./seafile.sh stop && sudo -u seafile ./seahub.sh stop
5. Nginx-Konfiguation
Wir haben Ihnen auch für die Konfiguration von Nginx für Seafile eine entsprechende Konfigurationsdatei erstellt. Mit dem folgenden Befehl laden Sie die Datei von unserem Server und speichern Sie direkt an der richtigen Stelle. Ersetzen Sie bitte [IHRHOST.DYNDNS.DE] durch Ihren Host und führen Sie den Befehl dann aus.
sudo wget -q -O /etc/nginx/sites-enabled/default - "https://eigene-cloud-einrichten.de/getNginxConfig?software=seafile&host=[IHRHOST.DYNDNS.DE]"
Wichtig: Sollten Sie nicht unserer Raspberry Pi-Anleitung gefolgt sein, so müssen Sie sicherstellen, dass die Dateien /var/www/ssl/cloudssl.crt und /var/www/ssl/cloudssl.key sowie /var/www/ssl/dhparam.pem existieren und Zertifikatsdateien für Ihr SSL-Zertifikat sind.
Wir starten den Webserver Nginx nun neu:
sudo service nginx restart
6. Seafile-Benutzer und Dienst einrichten
Nun wollen wir dafür sorgen, dass die Seafile-Dienste auch beim Hochfahren des Systems mitgestartet werden. Die folgende Methode wird nur von neueren Betriebssystemen (mind. Debian 8 oder Ubuntu 15.04) unterstützt.
Laden Sie von unserem Server 2 vorkonfigurierte Dateien herunter. Wir beginnen mit der ersten Datei mittels folgendem Befehl:
sudo wget -q -O /etc/systemd/system/seafile.service - https://eigene-cloud-einrichten.de/getSeafileService
Es folgt die 2. Datei, die Sie mit folgendem Befehl abspeichern:
sudo wget -q -O /etc/systemd/system/seahub.service - https://eigene-cloud-einrichten.de/getSeahubService
Abschließend sorgen wir dafür, dass die erstellten Dateien auch bei Systemstart ausgeführt werden:
sudo systemctl enable seafile.service && sudo systemctl enable seahub.service
Nun können wir Seafile starten:
sudo -u seafile ./seafile.sh start && sudo -u seafile ./seahub.sh start
Damit sollten Sie sich nun über das Webinterface unter Eingabe Ihres Hosts bei Seafile anmelden können. Sollte es sich um ein selbst-signiertes SSL-Zertifikat - wie im Raspberry Pi-Tutorial - handeln, umgehen Sie die Browser-Warnung durch Hinzufügen einer Sicherheits-Ausnahmeregel. Alternativ können Sie auch ein sog. Let'sEncrypt-Zertifikat kostenlos einrichten, zum Beispiel nach dieser Anleitung.
Sollte es mit Seafile zu Problemen kommen, kann unter Umständen ein Neustart helfen:
sudo shutdown -r now
7. Weiteren Port freigeben
Um Seafile auf einem Home-Server korrekt nutzen zu können, müssen Sie einen weiteren Port über ihren Router freigeben. Folgen Sie dabei diesem Abschnitt aus dem allgemeinen Tutorial und geben Sie auch den Port 8082 frei.
8. Seafile aktualisieren (später notwendig)
Wenn Sie Seafile auf die aktuelle Version bringen, können Sie sich an den folgenden Schritten orientieren, soweit ein Update nicht über das Interface möglich ist.
Kurz zusammengefasst:
- Wechseln Sie mit cd /opt/seafile in das korrekte Verzeichnis.
- Laden und entpacken Sie die nächsthöhere Version von Seafile, wenn Sie etwa Seafile 6.0 nutzen, z.B. erst die 6.1er-Version, dann anschließend führen Sie das ganze noch einmal für 6.2 durch, um auf 6.2 zu upgraden (siehe Abschnitt Download).
- Stoppen Sie Seafile & Seahub (wie oben beschrieben).
- Suchen Sie die entsprechende Upgrade-Datei, wie hier beschrieben, und führen Sie diese aus.
- Anschließend können Sie Seafile wieder starten (wie oben beschrieben).
9. Fehlerbehebung
Sollten es einmal zu Fehlern kommen, können SIe derzeit noch aus dem Ordner /opt/seafile/ heraus, sich durch den folgenden Befehl etwaige Fehlermeldungen anzeigen lassen:
sudo -u seafile ./seahub.sh start-fastcgi
Ein Fehler der in letzter Zeit häufiger aufgetreten ist, hat mit einer falschen Versionsbezeichnung zu tun. Wie Sie die Konfigurationsdatei in dem Fall ändern müssen erfahren Sie hier.
10. Fertig
Herzlichen Glückwunsch! Damit ist die Installation von Seafile abgeschlossen. Sie können sich nun in die Weboberfläche einloggen, indem Sie in Ihrem Browser https://[IHRHOST.DYNDNS.DE] aufrufen.
Screenshot: Webinterface von Seafile. So ähnlich wird Ihr Seafile bei einem Zugriff über den Browser aussehen.
Sollten Probleme bei der Nutzung dieses Tutorials aufgetreten sein, deren Lösung auch für andere Nutzer interessant sein könnte, so zögern Sie nicht mir das Problem über das Kontakt-Formular mitzuteilen, nachdem Sie sich die FAQ angeschaut haben.
Ansonsten wünsche ich Ihnen noch viel Spaß mit Ihrer Cloud basierend auf Seafile. Sie können nun auch die mobilen Apps für iOS* oder Android installieren, um auch mit Ihrem Smartphone auf Ihre Seafile-Cloud zugreifen zu können.