Seafile, Eure selbst gehostete Dropbox-Alternative¶

Synchronisiert und teilt Dateien reibungslos zwischen Euren Geräten! Seafile ist eine selbstgehostete Lösung mit der Ihr von überall auf Euren Cloud-Speicher zugreifen könnt. Seafile ist kostenfrei, quelloffen, schnell und zuverlässig. Die Software unterstützt Verschlüsselung und spart Bandbreite durch Delta-Synchornisierung, bei der nur geänderte Dateibereiche aktualisiert werden, nicht ganze Dateien.
Dieses Kapitel setzt voraus, dass Ihr Euren Homeserver bereits eingerichtet, grundlegende und fortgeschrittene Sicherheitsmaßnahmen umgesetzt und einen sicheren Fernzugriff konfiguriert habt.
Und was ist mit Nextcloud oder Syncthing?
Nextcloud ist eine beliebte und funktionsreiche Dateisynchronisierungslösung. Sie bietet viele Funktionen wie Kontaktverwaltung, Videokonferenzen, Webmail und Kalender. Die Dateisynchronisierung kann jedoch vergleichsweise langsam sein.
Syncthing ist eine dezentrale Dateisynchronisierungslösung. Im Gegensatz zu Seafile und Nextcloud benötigt sie weder zentralen Server noch Datenbank. Auch hier kann die Synchronisation vergleichsweise langsam sein und je nach Netzwerkkonfiguration zu Firewall-Problemen führen.
Warum nicht einfach die üblichen Cloud-Speicher nutzen?
Bedenkt Folgendes, wenn Ihr kommerzielle Cloud-Anbieter nutzt: Diese können auf Eure privaten Daten zugreifen und sie mit Dritten teilen. Dienste wie iCloud, GDrive, Dropbox oder OneDrive besitzen trotz gegenteiliger Behauptungen Kopien der Sicherheitsschlüssel, die Eure Privatsphäre schützen.
| Cloud-Anbieter | Datenschutzrichtlinien |
|---|---|
| Apple iCloud | “Bei der Verwendung von "Nachrichten" in iCloud wird auch Ende-zu-Ende-Verschlüsselung eingesetzt. Wenn du "iCloud-Backup" aktiviert hast, enthält deine Backup eine Kopie des Schlüssels, der deine Nachrichten schützt. Dadurch wird sichergestellt, dass du deine Nachrichten wiederherstellen kannst, wenn du den Zugriff auf den iCloud-Schlüsselbund und deine vertrauenswürdigen Geräte verloren hast.“ |
| Google Drive & WhatsApp | “Mediendateien und Nachrichten sind nicht durch die WhatsApp Ende-zu-Ende-Verschlüsselung geschützt, wenn sie auf Google Drive gespeichert sind.“ |
| Dropbox | “Um diese und andere Funktionen bereitzustellen, greift Dropbox auf Ihre Daten zu, speichert und scannt sie. Sie geben uns die Erlaubnis, diese Dinge zu tun, und diese Erlaubnis gilt auch für unsere Partner und vertrauenswürdige Dritte, mit denen wir zusammenarbeiten.” |
| Microsoft OneDrive | “Wenn Sie OneDrive verwenden, erfassen wir Daten über Ihre Nutzung des Dienstes sowie über den von Ihnen gespeicherten Inhalt, um den Dienst bereitzustellen, zu verbessern und zu schützen. Beispiele umfassen sowohl die Indizierung Ihrer OneDrive-Dokumente, so dass Sie diese später durchsuchen können als auch die Verwendung von Ortsinformationen, um Ihnen die Suche nach Fotos auf Basis der Orte, wo das Foto aufgenommen wurde, zu erleichtern.” |
Datenbank¶
Seafile kann mit verschiedenen Datenbanken wie MySQL, MariaDB oder PostgreSQL betrieben werden. Dieses Tutorial befasst sich mit der Erstellung von MySQL-Datenbanken für die Serverkomponenten von Seafile.
Schritt-für-Schritt-Anleitung
Meldet Euch mit dem folgenden Befehl bei MySQL als Root-Benutzer an:
sudo mysql -u root -p
Führt den folgenden Befehl aus, um den MySQL-Benutzer seafileadmin zu erstellen (passt den Benutzernamen entsprechend an). Stellt sicher, dass Ihr die Zeichenfolge StrongPassword durch ein sicheres, individuelles Passwort ersetzt:
CREATE USER 'seafileadmin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPassword';
Erzeugt als Nächstes die von Seafile benötigten Datenbanken und gewährt die richtigen Zugriffsrechte:
CREATE DATABASE ccnet;
CREATE DATABASE seafile;
CREATE DATABASE seahub;
GRANT ALL ON ccnet.* TO 'seafileadmin'@'localhost';
GRANT ALL ON seafile.* TO 'seafileadmin'@'localhost';
GRANT ALL ON seahub.* TO 'seafileadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Meldet Euch wieder als Benutzer seafileadmin bei MySQL an (passt den Benutzernamen entsprechend an):
sudo mysql -u seafileadmin -p
Stellt sicher, dass alle Datenbanken korrekt angelegt wurden:
SHOW DATABASES;
Die Ausgabe sollte in etwa folgendermaßen aussehen:
+--------------------+
| Database |
+--------------------+
| ccnet |
| information_schema |
| performance_schema |
| seafile |
| seahub |
+--------------------+
5 rows in set (0.01 sec)
Verlasst MySQL:
EXIT;
Installation¶
Prüft alle Abhängigkeiten und installiert Seafile auf Eurem Ubuntu 22.04 Server.
Schritt-für-Schritt-Anleitung
Voraussetzungen¶
Python ist zur Ausführung von Seafile erforderlich, installiert folgende Pakete auf dem Server:
sudo apt install python3 python3-{dev,setuptools,pip} libmysqlclient-dev ldap-utils libldap2-dev python3.12-venv memcached libmemcached-dev libffi-dev
Erstellt und aktiviert eine virtuelle Umgebung (venv), um Module von den Dateien zu trennen, die vom Ubuntu-Systempaketmanager installiert wurden:
sudo mkdir /var/www/seafile
cd /var/www/seafile
sudo python3 -m venv python-venv
source python-venv/bin/activate
sudo chown -R gofossadmin:gofossadmin /var/www/seafile
Installiert anschließend folgende Pakete in der aktiven virtuellen Umgebung:
pip3 install django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.2.* pylibmc captcha==0.5.* markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.6.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3
Installationsskript¶
Ermittelt die neueste Version von Seafile Server für Linux. Zum Zeitpunkt der Abfassung dieses Textes handelt es sich um die Version 11.0.13. Falls noch nicht geschehen, wechselt in das Verzeichnis /var/www/seafile und ladet das Paket mit den folgenden Befehlen herunter und entpackt es (passt die Versionsnummer entsprechend an):
cd /var/www/seafile
sudo wget -4 https://download.seadrive.org/seafile-server_11.0.13_x86-64.tar.gz
sudo tar -xvf seafile-server_*
sudo mkdir installed
sudo mv seafile-server_* installed
Führt das Installationsskript aus:
sudo bash seafile-server-11.0.13/setup-seafile-mysql.sh
Folgt den Anweisungen auf dem Bildschirm:
| Anweisungen | Beschreibung |
|---|---|
| Server Name | Wählt einen Namen für den Seafile-Server. Im Rahmen dieses Tutorials wählen wir gofoss_seafile, passt den Namen entsprechend an. |
| Domain | Gebt den vom Cloud-Speicher verwendeten Domain-Namen an. Im Rahmen dieses Tutorials wählen wir https://myfiles.gofoss.duckdns.org, passt die Domäne entsprechend an. Es handelt sich um dieselbe Adresse wie für die Web-Oberfläche, die wir später einrichten werden. |
| Port | Wählt den von Seafile verwendeten TCP-Port. Der Standardport ist 8082. |
| Databases | Verwendet die bestehenden ccnet/seafile/seahub-Datenbanken, die zuvor erstellt wurden. |
| Host of MySQL server | Der Standardwert ist localhost. |
| Port of MySQL server | Der Standardwert ist 3306. |
| MySQL user | Gebt den Namen des MySQL-Benutzers an. In unserem Beispiel ist das seafileadmin, passt den Benutzernamen entsprechend an. |
| Password of MySQL user | Gebt das Passwort des MySQL-Benutzers an. |
| ccnet database name | Gebt den Namen der ccnet-Datenbank an. In diesem Fall ist das ccnet. |
| seafile database name | Gebt den Namen der seafile-Datenbank an. In diesem Fall ist das seafile. |
| seahub database name | Gebt den Namen der seahub-Datenbank an. In diesem Fall ist das seahub. |
Nach erfolgreicher Installation sollte das Terminal in etwa folgende Ausgabe anzeigen:
-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------
run seafile server: ./seafile.sh { start | stop | restart }
run seahub server: ./seahub.sh { start <port> | stop | restart <port> }
-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------
port of seafile fileserver: 8082
port of seahub: 8000
When problems occur, refer to https://download.seafile.com/published/seafile-manual/home.md for information.
Konfiguration¶
Seafile wurde erfolgreich installiert! Konfiguriert nun Spracheinstellungen, Zugriffsrechte, Administratorkonten und den Autostart beim Booten.
Schritt-für-Schritt-Anleitung
Administratorkonto¶
Meldet Euch beim Server an und erstellt einen Systembenutzer, der Seafile ausführen wird. Hier nennen wir diesen Systembenutzer seafileadmin. Ihr könnt natürlich einen beliebigen Namen wählen, müsst dann aber die Befehle entsprechend anpassen:
sudo adduser --disabled-login seafileadmin
Falls noch nicht geschehen, wechselt in das Verzeichnis /var/www/seafile und erstellt ein Skript, das die virtuelle Umgebung beim Ausführen von Seafile aktiviert:
cd /var/www/seafile
sudo vi run_with_venv.sh
Fügt den folgenden Inhalt zur Datei hinzu:
#!/bin/bash
# Activate the python virtual environment (venv) before starting one of the seafile scripts
dir_name="$(dirname $0)"
source "${dir_name}/python-venv/bin/activate"
script="$1"
shift 1
echo "${dir_name}/seafile-server-latest/${script}" "$@"
"${dir_name}/seafile-server-latest/${script}" "$@"
Speichert und schließt die Datei (:wq!). Legt dann die richtigen Berechtigungen für das seafileadmin-Konto fest:
sudo chown -R seafileadmin:seafileadmin /var/www/seafile
sudo chmod -R 755 /var/www/seafile
sudo chmod 750 /home/seafileadmin
Startet Seafile:
sudo -H -u seafileadmin bash -C run_with_venv.sh seafile.sh start
Startet Seahub:
sudo -H -u seafileadmin bash -C run_with_venv.sh seahub.sh start
Beim ersten Start von Seahub wird die Einrichtung eines Administratorkontos verlangt. Für den Zweck dieses Tutorials geben wir die Administrator-E-Mail-Adresse seafileadmin@gofoss.net an. Natürlich kann jegliche geeignete E-Mail-Adresse verwendet werden. Wenn Ihr dazu aufgefordert werdet, gebt ebenfalls ein sicheres, individuelles Kennwort ein.
Deaktiviert die virtuelle Umgebung und wechselt zurück ins Stammverzeichnis:
deactivate
cd
Autostart¶
Stellt sicher, dass Seafile bei jedem Hochfahren des Servers automatisch gestartet wird. Erstellt eine erste Konfigurationsdatei:
sudo vi /etc/systemd/system/seafile.service
Gebt den folgenden Inhalt ein:
[Unit]
Description=Seafile
After= mysql.service network.target
[Service]
Type=forking
ExecStart= /var/www/seafile/run_with_venv.sh seafile.sh start
ExecStop= /var/www/seafile/run_with_venv.sh seafile.sh stop
User=seafileadmin
[Install]
WantedBy=multi-user.target
Speichert und schließt die Datei (:wq!). Erstellt nun eine zweite Konfigurationsdatei:
sudo vi /etc/systemd/system/seahub.service
Gebt den folgenden Inhalt ein:
[Unit]
Description=Seahub
After= mysql.service network.target seafile.service
[Service]
Type=forking
Environment="LC_ALL=en_US.UTF-8"
ExecStart= /var/www/seafile/run_with_venv.sh seahub.sh start
ExecStop= /var/www/seafile/run_with_venv.sh seahub.sh stop
User=seafileadmin
[Install]
WantedBy=multi-user.target
Speichert schließt die Datei (:wq!).
Startet Seafile bei jedem Boot-Vorgang automatisch:
sudo systemctl daemon-reload
sudo systemctl enable seafile
sudo systemctl enable seahub
Startet den Server neu:
sudo reboot
Vergewissert Euch, dass Seafile betriebsbereit ist (der Status sollte Active sein):
sudo systemctl status seafile
sudo systemctl status seahub
Nachbereitung¶
Der Cloud-Speicher ist von einer Domain Eurer Wahl aus zugänglich. Im Rahmen dieses Tutorials wählen wir https://myfiles.gofoss.duckdns.org. Natürlich ist jegliche andere Adresse möglich. Achtet nur darauf, dass Ihr die Befehle entsprechend anpasst. Öffnet die erste Konfigurationsdatei:
sudo vi /var/www/seafile/conf/seahub_settings.py
Vergewissert Euch, dass die SERVICE_URL auf die richtige Adresse verweist:
SERVICE_URL = "https://myfiles.gofoss.duckdns.org/"
Fügt anschließend die folgenden Zeilen am Ende der Datei hinzu (passt die Zeitzone sowie die FILE_SERVER_ROOT URL entsprechend Eurer eigenen Konfiguration an):
TIME_ZONE = 'Europe/Budapest'
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
LOGIN_ATTEMPT_LIMIT = 2
FILE_SERVER_ROOT = 'https://myfiles.gofoss.duckdns.org/seafhttp'
CSRF_TRUSTED_ORIGINS = ['https://myfiles.gofoss.duckdns.org']
Speichert und schließt die Datei (:wq!).
Um zu verhindern, dass ModEvasive Eure Geräte während der Dateisynchronisierung blockiert, ermittelt zunächst deren IP-Adressen. Öffnet dazu ein Terminal und führt ip a (Linux), ifconfig (macOS) oder ipconfig (Windows) aus. In der Regel wird ein Adresse wie 192.168.1.XX angezeigt, wenn Ihr über das lokale Netzwerk verbunden seid, oder 10.8.0.YY, wenn Ihr über VPN verbunden seid. Öffnet dann die Konfigurationsdatei:
sudo vi /etc/apache2/mods-enabled/evasive.conf
Ändert oder fügt die folgende Zeile hinzu, um sicherzustellen, dass Eure Geräte bei der Synchronisierung mit dem Seafile-Server nicht blockiert werden:
DOSWhitelist 192.168.1.XX 10.8.0.YY
Speichert und schließt die Datei (:wq!).
Web-Oberfläche¶
Richtet einen Apache Virtual Host als Reverse Proxy ein, um über eine eigene Adresse auf die Seafile-Weboberfläche zuzugreifen und den Server nicht direkt dem Internet auszusetzen. Weitere Details findet Ihr nachstehend.
Schritt-für-Schritt-Anleitung
Erstellt eine Apache-Konfigurationsdatei:
sudo vi /etc/apache2/sites-available/myfiles.gofoss.duckdns.org.conf
Fügt den folgenden Inhalt hinzu und passt die Einstellungen an Eure eigene Konfiguration an, z. B. den Domain-Namen (myfiles.gofoss.duckdns.org), den Pfad zu den SSL-Schlüsseln, die IP-Adressen und so weiter:
<VirtualHost *:80>
ServerName myfiles.gofoss.duckdns.org
ServerAlias www.myfiles.gofoss.duckdns.org
Redirect permanent / https://myfiles.gofoss.duckdns.org/
</VirtualHost>
<VirtualHost *:443>
ServerName myfiles.gofoss.duckdns.org
ServerAlias www.myfiles.gofoss.duckdns.org
ServerSignature Off
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
SSLEngine On
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLCertificateFile /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem
SSLCertificateKeyFile /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem
DocumentRoot /var/www/seafile
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.0/24
Allow from 10.8.0.1/24
</Location>
Alias /media /var/www/seafile/seafile-server-latest/seahub/media
RewriteEngine On
<Location /media>
Require all granted
</Location>
# seafile fileserver
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
# seahub
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
ErrorLog ${APACHE_LOG_DIR}/myfiles.gofoss.duckdns.org-error.log
CustomLog ${APACHE_LOG_DIR}/myfiles.gofoss.duckdns.org-access.log combined
</VirtualHost>
Speichert und schließt die Datei (:wq!).
Beachtet, dass die SSL-Verschlüsselung für Seafile mit der Anweisung SSLEngine On aktiviert und das zuvor erstellte SSL-Zertifikat /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem sowie der private SSL-Schlüssel /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem verwendet wurden.
Beachtet ebenfalls, dass ModSecurity in der Apache-Konfigurationsdatei mit der Anweisung SecRuleEngine Off deaktiviert wurde, da Seafile und ModSecurity nicht gut miteinander harmonieren.
Aktiviert als nächstes den Apache Virtual Host und ladet Apache neu:
sudo a2ensite myfiles.gofoss.duckdns.org.conf
sudo systemctl reload apache2
Konfiguriert Pi-Hole, um die lokale Adresse von Seafile nutzen zu können. Ruft dazu https://mypihole.gofoss.duckdns.org:8443/admin auf und meldet Euch über die Pi-Hole-Weboberfläche an (passt die URL entsprechend an). Öffnet den Menüeintrag Locale DNS Records und fügt die folgende Domain/IP-Kombination hinzu (passt wiederum die URL sowie IP entsprechend an):
DOMAIN: myfiles.gofoss.duckdns.org
IP ADDRESS: 192.168.1.100
Ruft https://myfiles.gofoss.duckdns.org auf und meldet Euch als seafileadmin@gofoss.net an (passt den Benutzernamen entsprechend an). Nehmt anschließend folgende Einstellungen vor:
| Einstellungen | Beschreibung |
|---|---|
| System Admin ‣ Settings | Ändert das Feld SERVICE_URL in https://myfiles.gofoss.duckdns.org um und klickt auf Save. |
| System Admin ‣ Settings | Ändert das Feld FILE_SERVER_ROOT in https://myfiles.gofoss.duckdns.org/seafhttp um und klickt auf Save. |
Clients¶
Seahub¶
Seahub ist die Weboberfläche von Seafile. Ihr könnt Euch über den Browser anmelden, um Ordner zu durchsuchen und Dateien hochzuladen, zu bearbeiten, herunterzuladen oder zu teilen. Seahub unterstützt Dateiformate von Microsoft und LibreOffice sowie Videos, Bilder, PDFs und Textdateien. Über Seahub vorgenommene Änderungen werden auf allen synchronisierten Geräten gespiegelt.
Synchronisations-Client¶
Dieses Programm hält ausgewählte Dateien und Ordner auf verbundenen Geräten synchron. Sie eignet sich besonders für Rechner mit viel Speicherplatz.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Installation | Ladet die neueste Version von Seafiles Desktop Sync Client für Windows herunter und installiert die Software. |
| Cloud-Ordner | Startet den Seafile-Client und wählt einen lokalen Ordner, der mit der Cloud synchronisiert werden soll. |
| Anmeldung | Gebt den Servernamen sowie die Benutzeranmeldedaten an. Bestätigt gegebenenfalls auch die Zwei-Faktor-Authentifizierung. |
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Installation | Ladet die neueste Version von Seafiles Desktop Sync Client für macOS herunter und installiert die Software. |
| Cloud-Ordner | Startet den Seafile-Client und wählt einen lokalen Ordner, der mit der Cloud synchronisiert werden soll. |
| Anmeldung | Gebt den Servernamen sowie die Benutzeranmeldedaten an. Bestätigt gegebenenfalls auch die Zwei-Faktor-Authentifizierung. |
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| AppImage herunterladen | Ladet die neueste Version von Seafiles Desktop Sync Client für Linux herunter. Der Dateiname sollte Seafile-x86_64-x.y.z.AppImage lauten. |
| AppImage ausführen | Macht die Datei ausführbar: sudo chmod +x Seafile-x86_64-x.y.z.AppImage. Startet den Seafile-Client: ./Seafile-x86_64-x.y.z.AppImage. |
| Cloud-Ordner | Wählt einen lokalen Ordner, der mit der Cloud synchronisiert werden soll. |
| Anmeldung | Gebt den Servernamen sowie die Benutzeranmeldedaten an. Bestätigt gegebenenfalls auch die Zwei-Faktor-Authentifizierung. |
SeaDrive¶
SeaDrive funktioniert wie ein Netzlaufwerk und ermöglicht den Zugriff auf Dateien ohne vorherige Synchronisation. Dateien lassen sich für die Offline-Nutzung auch zwischenspeichern. SeaDrive eignet sich ideal für Rechner mit begrenztem Speicherplatz.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Installation | Ladet die neueste Version des SeaDrive Clients für Windows herunter und installiert die Software. |
| Virtuelles Laufwerk | Startet den SeaDrive-Client und wählt einen Laufwerksbuchstaben für das virtuelle Laufwerk. Standardmäßig wird S: verwendet. |
| Anmeldung | Gebt den Servernamen sowie die Benutzeranmeldedaten an. Bestätigt gegebenenfalls auch die Zwei-Faktor-Authentifizierung. |
| Datei-Liste | SeaDrive ruft eine Liste aller auf dem Server gespeicherten Dateien und Ordner ab, ohne diese tatsächlich herunterzuladen. Eine Benachrichtigung wird angezeigt sobald der Vorgang abgeschlossen ist. Nun kann man über den Windows-Explorer auf die Cloud-Dateien zugreifen, als wären diese auf einer normalen Festplatte gespeichert. |
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Installation | Download & install the latest release of the SeaDrive Client for macOS. |
| Virtuelles Laufwerk | Startet den SeaDrive-Client und wählt einen Laufwerksbuchstaben für das virtuelle Laufwerk. Standardmäßig wird S: verwendet. |
| Anmeldung | Gebt den Servernamen sowie die Benutzeranmeldedaten an. Bestätigt gegebenenfalls auch die Zwei-Faktor-Authentifizierung. |
| Datei-Liste | SeaDrive ruft eine Liste aller auf dem Server gespeicherten Dateien und Ordner ab, ohne diese tatsächlich herunterzuladen. Eine Benachrichtigung wird angezeigt sobald der Vorgang abgeschlossen ist. Nun kann man auf die Cloud-Dateien zugreifen, als wären diese auf einer normalen Festplatte gespeichert. |
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| AppImage herunterladen | Ladet die neueste Version von Seafiles Desktop Drive Client für Linux herunter. Der Dateiname sollte SeaDrive-x86_64-x.y.z.AppImage lauten. |
| AppImage ausführen | Macht die Datei ausführbar: sudo chmod +x SeaDrive-x86_64-x.y.z.AppImage. Startet den SeaDrive-Client: ./SeaDrive-x86_64-x.y.z.AppImage. |
| Anmeldung | Gebt den Servernamen sowie die Benutzeranmeldedaten an. Bestätigt gegebenenfalls auch die Zwei-Faktor-Authentifizierung. Nach dem Einloggen wird das virtuelle Laufwerk hier eingebunden: ~/SeaDrive. |
| Datei-Liste | SeaDrive ruft eine Liste aller auf dem Server gespeicherten Dateien und Ordner ab, ohne diese tatsächlich herunterzuladen. Eine Benachrichtigung wird angezeigt sobald der Vorgang abgeschlossen ist. Nun kann man über den Windows-Explorer auf die Cloud-Dateien zugreifen, als wären diese auf einer normalen Festplatte gespeichert. |
Mobile Clients¶
Mit der Seafile-App könnt Ihr Eure Dateien von mobilen Geräten aus verwalten. Dateien werden dabei nicht vollständig synchronisiert, sondern zwischengespeichert – das spart Speicherplatz. Die App bietet zudem eine praktische Funktion zur automatischen Sicherung von Fotos auf Eurem Server.
Schritt-für-Schritt-Anleitung
Öffnet F-Droid auf Eurem Smartphone und installiert die Seafile Anwendung. Alternativ könnt Ihr Seafile auch über den Aurora Store oder Googles Play Store installieren.
| Einstellungen | Beschreibung |
|---|---|
| Server | Gebt die Adresse des Seafile-Servers an, z. B. https://myfiles.gofoss.duckdns.org (passt die Adresse entsprechend an). |
Gebt die E-Mail-Adresse des Seafile-Benutzers an, z. B. seafileuser@gofoss.net (passt die Adresse entsprechend an). | |
| Passwort | Gebt das Kennwort des Seafile-Benutzers an. |
| Token | Falls die Zwei-Faktor-Authentifizierung aktiviert ist, gebt ebenfalls den von Eurem Smartphone (z.b. andOTP) generierten Token ein. |
Schritt-für-Schritt-Anleitung
Installiert Seafile über den App Store.
| Einstellungen | Beschreibung |
|---|---|
| Server | Gebt die Adresse des Seafile-Servers an, z. B. https://myfiles.gofoss.duckdns.org (passt die Adresse entsprechend an). |
Gebt die E-Mail-Adresse des Seafile-Benutzers an, z. B. seafileuser@gofoss.net (passt die Adresse entsprechend an). | |
| Passwort | Gebt das Kennwort des Seafile-Benutzers an. |
| Token | Falls die Zwei-Faktor-Authentifizierung aktiviert ist, gebt ebenfalls den von Eurem Smartphone generierten Token ein. |
BenutzerInnen¶
Seafile unterscheidet zwischen zwei Benutzertypen. AdministratorInnen haben volle Zugriffsrechte. Sie können Dateien, Ordner und BenutzerInnen hinzufügen, bearbeiten und entfernen. Außerdem verwalten und aktualisieren sie die Seafile-Webseite. In unserem Beispiel wurde das Administratorenkonto seafileadmin während der Installation des Seafile-Servers angelegt. BenutzerInnen hingegen haben eingeschränkten Zugriff. Sie können Dateien und Ordner nur dann verwalten, wenn ihnen entsprechende Zugriffsrechte gewährt wurden.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Ruft https://myfiles.gofoss.duckdns.org auf und meldet Euch als Administrator an, z.B. seafileadmin@gofoss.net (passt den Benutzernamen entsprechend an). |
| Schritt 2 | Ruft das Menü System Admin ‣ Users ‣ Add user auf. |
| Schritt 3 | Gebt einen Benutzernamen sowie ein sicheres, individuelles Passwort an. Klickt dann auf Submit. |
Administratoren & BenutzerInnen benötigen einen VPN-Zugang
BenutzerInnen müssen über VPN mit dem Server verbunden sein, um auf Seafile zugreifen zu können.
Zwei-Faktor-Authentifizierung¶
Trefft weitere Sicherheitsvorkehrungen mit der optionalen Zwei-Faktor-Authentifizierung (2FA). Nach der Aktivierung erfordert die Anmeldung bei Seafile sowohl ein Passwort als einen sechsstelligen Code aus einer Telefon-App. Wir empfehlen die Nutzung von andOTP, verfügbar über F-Droid.
Schritt-für-Schritt-Anleitung
Zunächst muss der Seafile-Administrator 2FA aktivieren:
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Meldet Euch über die Seafile-Web-Oberfläche https://myfiles.gofoss.duckdns.org als seafileadmin@gofoss.net an (passt den Benutzernamen entsprechend an). |
| Schritt 2 | Ruft das Menü System Admin ‣ Settings ‣ Passwords auf. |
| Schritt 3 | Aktiviert die Zwei-Faktor-Authentifizierung für alle BenutzerInnen. |
Als nächstes muss jeder Benutzer individuell die 2FA konfigurieren. Beginnt mit dem Seafile-Administrator und wiederholt die Einstellung für jedes später eingerichtete Benutzerkonto:
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Meldet Euch über Seafiles Web-Oberfläche https://myfiles.gofoss.duckdns.org an (passt die Adresse entsprechend an). |
| Schritt 2 | Ruft das Menü Settings auf. |
| Schritt 3 | Aktiviert die Zwei-Faktor-Authentifizierung. |
| Schritt 4 | Öffnet andOTP auf dem Telefon des Benutzers. |
| Schritt 5 | Scannt den angezeigten QR-Code mit andOTP. |
| Schritt 6 | Gebt den von andOTP generierten 6-stelligen Code in Seafiles Web-Oberfläche ein. |
| Schritt 7 | Bewahrt die von Seafile bereitgestellte Liste von Backup-Tokens sicher auf. Diese Tokens ermöglichen es, den Zugriff auf Seafile ohne andOTP wiederherzustellen. |
Dateien hinzufügen¶
Erstellt mühelos neue Bibliotheken, Dateien und Ordner über Seahub im Browser. Auch das Hochladen von Dateien und Ordnern in bestehende Bibliotheken geht leicht.
Erstellt mühelos neue Bibliotheken, Dateien und Ordner über Seafiles Sync-Client. Auch das Hochladen von Dateien und Ordnern in bestehende Bibliotheken ist einfach.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Eine neue Bibliothek erstellen | Öffnet den Seafile Sync Client, klickt auf Select und ruft den lokalen Ordner auf, den Ihr mit dem Server synchronisieren möchtet. Alternativ könnt Ihr den lokalen Ordner auch per Drag & Drop in den dazu vorgesehenen Bereich schieben. Gebt als Nächstes einen Namen für die neue Bibliothek an und legt fest, ob diese mit einem Kennwort verschlüsselt werden soll oder nicht. |
| Dateien & Ordner hinzufügen | Verwendet den Dateimanager Eures Geräts. Ruft den synchronisierten Ordner auf und fügt Dateien und Ordner hinzu. Die Änderungen werden mit dem Seafile-Server sowie mit allen verbundenen Geräten synchronisiert. |
Dateien synchronisieren¶
Seafile arbeitet mit Bibliotheken, die Eure Dateien und Ordner enthalten. Der Sync-Client sorgt dafür, dass Änderungen an einer lokalen Bibliothek auf den Server und andere verbundene Geräte übertragen werden – und umgekehrt.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Bibliothek synchronisieren | Öffnet den Sync-Client auf Eurem Gerät und klickt mit der rechten Maustaste auf die Bibliothek. Wählt dann den Menüeintrag Sync this library. Alle Dateien und Ordner werden vom Server auf das lokale Gerät heruntergeladen. Von nun an wird jede Änderung an lokalen Dateien auf den Server gespiegelt und umgekehrt. |
| Bibliothek entsynchronisieren | Klickt mit der rechten Maustaste auf die Bibliothek und wählt den Menüeintrag Unsync, um die Synchronisierung einer Bibliothek zu beenden. Änderungen an lokalen Dateien werden nun nicht mehr zwischen Server und Geräten gespiegelt. |
| Cloud-Datei-Browser | Der Sync-Client bietet einen sogenannten Cloud-Datei-Browser. Mit diesem können BenutzerInnen ohne vorherige Synchronisierung direkt auf Server-Dateien zugreifen und diese abändern. Klickt dazu mit der rechten Maustaste auf eine (unsynchronisierte) Bibliothek und wählt den Menüeintrag Open Cloud File Browser. |
| Unterordner synchronisieren | Um das Synchronisieren großer Bibliotheken zu vermeiden, ist es möglich nur bestimmte Unterordner zu spiegeln. Klickt dazu mit der rechten Maustaste auf die Bibliothek, wählt den Menüeintrag Open Cloud File Browser, klickt mit der rechten Maustaste auf den Unterordner und wählt den Menüeintrag Sync this folder. |
SeaDrive funktioniert wie ein Netzlaufwerk. Ihr habt direkten Zugriff auf Dateien auf dem Server, ohne sie vorher synchronisieren zu müssen.
Mehr Informationen über den Synchronisationsstatus
Im Windows Explorer werden verschiedene Symbole angezeigt, die den Synchronisierungsstatus von Dateien und Ordnern anzeigen.
| Status | Symbol | Beschreibung |
|---|---|---|
| Nur in der Cloud | ![]() | Dies ist der Standardzustand von Dateien und Ordnern. Sie werden in SeaDrive angezeigt, aber nicht tatsächlich auf das lokale Gerät heruntergeladen. |
| Synchronisiert | ![]() | Sobald sich ein Benutzer entscheidet, auf eine Datei oder einen Ordner zuzugreifen, wird dieser auf das lokale Gerät heruntergeladen. |
| Teilweise synchronisiert | ![]() | Ordner, die sowohl nur in der Cloud als auch synchronisierte Dateien enthalten, werden als teilweise synchronisiert betrachtet. |
| Von anderen Nutzern gesperrt | ![]() | Von anderen Benutzern gesperrte Dateien können nur im Lesemodus geöffnet, aber nicht geändert, gelöscht oder umbenannt werden. |
| Von mir gesperrt | ![]() | Eine vom Eigentümer gesperrte Datei oder ein gesperrter Ordner kann nicht von anderen BenutzerInnen geändert werden. |
| Schreibgeschützt | ![]() | Dateien oder Ordner, die im schreibgeschützten Modus für einen Benutzer freigegeben sind, können geöffnet, aber nicht geändert, gelöscht oder umbenannt werden. |
Dateien teilen¶
Ihr könnt Dateien mit anderen Personen teilen – alles, was sie brauchen, ist ein Freigabe-Link und eine funktionierende VPN-Verbindung. Ein Seafile-Konto oder Login ist nicht erforderlich. Schützt die Freigabe-Links optional mit einem Passwort, einer Ablaufzeit oder eingeschränkten Zugriffsrechten.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Ruft die freizugebende Datei oder den freizugebenden Ordner auf. |
| Schritt 2 | Bewegt den Mauszeiger über die Datei oder den Ordner und klickt auf das Symbol Share. |
| Schritt 3 | Klickt im nun erscheinenden Fenster auf die Schaltfläche Share Link. |
| Schritt 4 | Klickt auf die Schaltfläche Generate, um den Freigabelink zu erstellen. |
| Schritt 5 | Legt optional ein Passwort, eine Ablaufzeit oder Zugriffsrechte fest. |
| Schritt 6 | Teilt den Link mit anderen per E-Mail, Messenger usw. |
Personen können Dateien mühelos auf Euren Server hochladen – dazu sind lediglich ein Hochlade-Link und eine funktionierende VPN-Verbindung nötig. Ein Seafile-Konto oder Login ist nicht erforderlich. Optional könnt Ihr Hochlade-Links mit einem Passwort sichern.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Ruft den Ordner auf, in den die Dateien hochgeladen werden sollen. |
| Schritt 2 | Bewegt den Mauszeiger über den Ordner und klickt auf das Symbol Share. |
| Schritt 3 | Klickt im nun erscheinenden Fenster auf die Schaltfläche Upload Link. |
| Schritt 4 | Klickt auf die Schaltfläche Generate, um den Hochlade-Link zu erstellen. |
| Schritt 5 | Legt optional ein Passwort fest. |
| Schritt 6 | Teilt den Link mit anderen per E-Mail, Messenger usw. |
Teilt Bibliotheken, Ordner und Dateien mühelos mit anderen Seafile-BenutzerInnen. Diese benötigen eine funktionierende VPN-Verbindung, ein Seafile-Konto und die passenden Zugriffsrechte.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Ruft die Bibliothek oder den Ordner auf, den Ihr für andere Seafile-BenutzerInnen freigeben möchtet. |
| Schritt 2 | Bewegt den Mauszeiger über die Bibliothek oder den Ordner und klickt auf das Symbol Share. |
| Schritt 3 | Klickt im nun erscheinenden Fenster auf die Schaltfläche Share to user oder Share to group. |
| Schritt 4 | Wählt BenutzerInnen oder Gruppen aus und klickt auf die Schaltfläche Submit. |
| Schritt 5 | Legt die Zugriffsrechte für die freigegebenen Dateien und Ordner fest, z. B. read-write, read-only, online read-write oder online read-only. |
Dateien wiederherstellen¶
Seafile erfasst Änderungen an Dateien, Ordnern und Bibliotheken. Es legt Sicherungskopien alter Dateiversionen und Schnappschüsse von Ordner- und Bibliotheksstrukturen für einen festgelegten Zeitraum an. Ihr könnt somit Dateien, Ordner oder ganze Bibliotheken bei versehentlichem Löschen oder Fehlern leicht wiederherstellen.
Legt fest, wie lange Seafile alte Dateiversionen oder Bibliothek-Schnappschüsse speichert. Die Frist lässt sich für jede Bibliothek individuell einstellen.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Meldet Euch über die Seahub-Web-Oberfläche an. Klickt im Navigationsbereich auf My Libraries. |
| Schritt 2 | Bewegt den Mauszeiger über die Bibliothek. |
| Schritt 3 | Klickt auf History Setting. |
| Schritt 4 | Definiert die Länge der Aufbewahrungsfrist. |
Stellt frühere Versionen einer Datei wieder her, indem Ihr den untenstehenden Anweisungen folgt.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Meldet Euch über die Seahub-Weboberfläche an. Ruft den Ordner, der die wiederherzustellende Datei enthält, auf. |
| Schritt 2 | Bewegt den Mauszeiger über die Datei. |
| Schritt 3 | Klickt auf History. |
| Schritt 4 | Ladet eine beliebige ältere Version der Datei herunter, stellt sie wieder her oder zeigt sie an. Bei Textdateien könnt Ihr ebenfalls den Inhalt von zwei Versionen vergleichen. Beachtet dabei, dass ältere Versionen einer Datei nicht angezeigt werden können, wenn diese die Aufbewahrungsfrist überschreiten. |
Stellt gelöschte Dateien oder Ordner aus dem Papierkorb wieder her, indem Ihr den untenstehenden Anweisungen folgt.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Meldet Euch über die Seahub-Web-Oberfläche an. Ruft den übergeordneten Ordner auf, der die gelöschte Datei oder den gelöschten Ordner enthielt. |
| Schritt 2 | Klickt auf das Papierkorb Symbol in der Betriebsleiste der Bibliothek. |
| Schritt 3 | Stellt die gelöschte Datei oder den Ordner wieder her. Beachtet dabei, dass Dateien und Ordner nicht wiederhergestellt werden können, wenn diese vor der Aufbewahrungsfrist gelöscht wurden. |
Erkundet ältere Versionen ganzer Bibliotheken und stellt sie wieder her. Die Datei- und Ordnerstruktur bleibt erhalten.
Schritt-für-Schritt-Anleitung
| Anweisungen | Beschreibung |
|---|---|
| Schritt 1 | Meldet Euch über die Seahub-Web-Oberfläche an. Ruft die wiederherzustellende Bibliothek auf. |
| Schritt 2 | Klickt auf die History Schaltfläche in der oberen Leiste. |
| Schritt 3 | Wählt einen früheren Zustand der Bibliothek aus und klickt auf View snapshot. |
| Schritt 4 | Ihr könnt eine beliebige ältere Version einer Datei oder eines Ordners herunterladen, wiederherstellen oder anzeigen. Wenn Ihr Eigentümer der Bibliothek seid, könnt Ihr die komplette Bibliothek in ihrem vorherigen Zustand wiederherstellen. Beachtet dabei, dass auf Schnappschüsse nicht zugegriffen werden kann, wenn diese die Aufbewahrungsfrist überschreiten. |
Dateien verschlüsseln¶
Seafile bietet durchgängige Verschlüsselung. Schützt Bibliotheken mit einem Passwort, damit nur autorisierte BenutzerInnen Zugriff haben. Der Inhalt verschlüsselter Bibliotheken bleibt für alle anderen unzugänglich, auch für Seafile-Administratoren. Beachtet, dass die Verschlüsselung nur die Dateiinhalte schützt, nicht jedoch Ordner- oder Dateinamen.
Upgrade¶
Führt Seafile-Upgrades vorsichtig durch, da der Prozess überwiegend manuell ist und Fehler passieren können. Minimiert Risiken, indem Ihr vorab alle Bibliotheken auf ein Gerät synchronisiert und Eure Daten sichert! Lest Euch die Upgrade-Anleitung sowie die detaillierten Upgrade-Hinweise sorgfältig durch. Untenstehend findet Ihr eine Anleitung für ein Upgrade.
Schritt-für-Schritt-Anleitung
Für die Zwecke dieses Tutorials nehmen wir an, dass Ihr ein Upgrade von Version 7.0.1 auf Version 8.0.1 durchführen möchtet. Dies wird als "Hauptversion-Upgrade" bezeichnet. "Kleinere Version-Upgrades", zum Beispiel von 7.0.1 auf 7.1.1, funktionieren ähnlich.
Lest zunächst die Upgrade-Hinweise. Diese beschreiben bestimmte Einstellungen oder Änderungen, die vor oder während des Upgrades vorgenommen werden müssen.
Ladet dann die neueste Version von Seafiles Server für Linux herunter und entpackt diese. In unserem Beispiel wäre das die Version 8.0.1. Stellt sicher, dass Ihr in den nachfolgenden Befehlen die Versionsnummer entsprechend anpasst:
sudo wget -4 https://download.seadrive.org/seafile-server_8.0.1_x86-64.tar.gz
sudo tar -xvf seafile-server_*
sudo mv seafile-server-* /var/www/seafile
sudo mv seafile-server_* /var/www/seafile/installed
Legt die richtigen Zugriffsrechte fest:
sudo chown -R seafileadmin:seafileadmin /var/www/seafile
sudo chmod -R 755 /var/www/seafile
Überprüft, ob alle Dateien vorhanden sind:
sudo ls -al /var/www/seafile
Die Verzeichnisstruktur sollte in etwa folgendermaßen aussehen:
/var/www/seafile/
-- ccnet
-- conf
-- installed
-- logs
-- pids
-- seafile-data
-- seafile-server-7.0.1
-- seafile-server-8.0.1
-- seafile-server-latest
-- seahub-data
Fahrt den Seafile-Server herunter:
sudo systemctl stop seafile
sudo systemctl stop seahub
Ruft eine Liste der verfügbaren Upgrade-Skripte ab:
sudo ls -al /var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_*
Die Terminal-Ausgabe sollte in etwa folgendermaßen aussehen:
...
/var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_6.0_6.1.sh
/var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_6.1_6.2.sh
/var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_6.2_6.3.sh
/var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_6.3_7.0.sh
/var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_7.0_7.1.sh
/var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_7.1_8.0.sh
...
Führt nun das oder die erforderliche(n) Upgrade-Skript(e) aus. Beginnt mit der aktuellen Seafile-Version und arbeitet Euch sich bis zur neuesten Version durch. In unserem Beispiel:
- müsst Ihr zuerst das Skript
upgrade_7.0_7.1.shausführen, um von Version 7.0.1 auf Version 7.1.x zu aktualisieren - Ihr müsst dann das Skript
upgrade_7.1_8.0.shausführen, um von Version 7.1.x auf Version 8.0.1 zu aktualisieren
Beginnt mit dem ersten Upgrade-Skript:
sudo bash /var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_7.0_7.1.sh
Die Terminal-Ausgabe sollte in etwa folgendermaßen aussehen:
-------------------------------------------------------------
This script would upgrade your seafile server from 7.0 to 7.1
Press [ENTER] to contiune
-------------------------------------------------------------
Updating seafile/seahub database ...
[INFO] You are using MySQL
[INFO] updating seahub database...
Done
migrating avatars ...
Done
updating /var/www/seafile/seafile-server-latest symbolic link to /var/www/seafile/seafile-server-7.1.0 ...
Nun das nächste Upgrade-Skript:
sudo bash /var/www/seafile/seafile-server-8.0.1/upgrade/upgrade_7.1_8.0.sh
Die Terminal-Ausgabe sollte in etwa folgendermaßen aussehen:
-------------------------------------------------------------
This script would upgrade your seafile server from 7.1 to 8.0
Press [ENTER] to contiune
-------------------------------------------------------------
Updating seafile/seahub database ...
[INFO] You are using MySQL
[INFO] updating seahub database...
Done
migrating avatars ...
Done
updating /var/www/seafile/seafile-server-latest symbolic link to /var/www/seafile/seafile-server-8.0.1 ...
Fahrt abschließend den Seafile-Server wieder hoch:
sudo systemctl start seafile
sudo systemctl start seahub
Wenn alles gut gelaufen ist, sollte Seafile betriebsbereit sein und den Status "Aktiv" anzeigen:
sudo systemctl status seafile
sudo systemctl status seahub
Wenn Ihr wollt und soweit alles richtig funktioniert, könnt Ihr die vorherige Version nun entfernen:
sudo rm -rf /var/www/seafile/seafile-server-7.0.1
Unterstützung¶
Weitere Einzelheiten findet Ihr im Seafile Serverhandbuch oder der Gemeinschaft.





