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. Ersetzen Sie ||HOST|| durch Ihren Host in der hier bereitgestellten Datei
https://www.sim-networks.com/user/assets/getnginxconfig_seafile.txt
und verwenden Sie deren Inhalt als Servereinstellungen (der folgende Befehl öffnet den Inhalt der Datei):
sudo nano /etc/nginx/sites-enabled/default
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 folgenden Befehls:
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, 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
Sollte es einmal zu Fehlern kommen, können Sie sich derzeit noch aus dem Ordner /opt/seafile/ heraus 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.