Cloud-Speicher · 10 min read · Sep 14, 2025

So installieren Sie Seafile Self-Hosted Cloud Storage auf Debian 12

Seafile ist ein Open-Source-Dateihosting-System, das im Django-Webframework geschrieben ist. Es ist eine plattformübergreifende Software, die eine Reihe von Cloud-Speicherfunktionen bietet und es Benutzern ermöglicht, Dateien innerhalb des Seafile-Ökosystems zu speichern, zu verwalten und zu teilen.

In Seafile werden Dateien auf dem zentralen Server gespeichert und können mit Clients auf mehreren Geräten und Mobiltelefonen synchronisiert werden. Seafile ist eine Alternative zu Dateihosting-Diensten wie Google Drive, Dropbox und Mega.nz. Mit Seafile können Sie eine Dateifreigabefunktion für Ihre privaten Cloud-Anwendungen erstellen.

Dieser Artikel führt Sie durch die Installation von Seafile auf einem Debian 12-Server mit MariaDB als Datenbank, Nginx als Reverse-Proxy und HTTPS über Letsencrypt sowie UFW (Uncomplicated Firewall), um Seafile abzusichern.

Voraussetzungen

Um mit diesem Leitfaden zu beginnen, stellen Sie sicher, dass Sie die folgenden Anforderungen haben:

  • Ein Debian 12-Server
  • Ein Nicht-Root-Benutzer mit Administratorrechten
  • Ein Domainname, der auf die Server-IP-Adresse verweist

Abhängigkeiten installieren

Seafile ist im Django-Webframework geschrieben, das auf Python basiert. Um Seafile zu installieren, müssen Sie sicherstellen, dass Python installiert ist. Außerdem benötigen Sie Abhängigkeiten wie MariaDB/MySQL als Datenbank, Nginx als Reverse-Proxy und Memcached oder Redis für Sitzungs- und Cache-Management. In diesem Abschnitt installieren Sie diese Pakete über den APT-Paketmanager.

Zuerst führen Sie den folgenden Befehl aus, um Ihren Debian-Paketindex zu aktualisieren.

sudo apt update

Führen Sie nun den folgenden Befehl aus, um Abhängigkeiten wie Python3, den MariaDB-Server, den Nginx-Webserver, Memcached und einige zusätzliche Bibliotheken auf Ihrem System zu installieren.

sudo apt install mariadb-server nginx python3 python3-dev python3-setuptools python3-pip libmariadb-dev-compat ldap-utils libldap2-dev libsasl2-dev python3.11-venv memcached libmemcached-dev

Geben Sie ‘ Y ‘ ein, um die Installation zu bestätigen.

Abhängigkeiten installieren

Nachdem die Installation abgeschlossen ist, überprüfen Sie den MariaDB-Server mit dem folgenden Befehl.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Im folgenden Output sehen Sie, dass der MariaDB-Server aktiviert und läuft.

Überprüfen des MariaDB-Dienstes

Überprüfen Sie nun den Nginx-Dienst mit dem folgenden Befehl.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Sie können sehen, dass der Nginx-Webserver läuft und aktiviert ist.

Überprüfen des Nginx-Dienststatus

Überprüfen Sie schließlich den Memcached-Dienst, um sicherzustellen, dass er läuft. Der Memcached-Dienst sollte laufen und aktiviert sein.

sudo systemctl is-enabled memcached  
sudo systemctl status memcached

Überprüfen des Memcached-Dienstes

MariaDB-Server einrichten

Nachdem Sie MariaDB installiert haben, besteht der nächste Schritt darin, die Bereitstellung des MariaDB-Servers zu konfigurieren und abzusichern. Anschließend erstellen Sie einen neuen MariaDB-Benutzer mit mehreren Datenbanken, die von Seafile verwendet werden. Sie sichern MariaDB mit dem Befehl ‘ mariadb-secure-installation ‘ und verwenden den ‘ mariadb ‘ Client, um neue Benutzer und Datenbanken zu erstellen.

Führen Sie den Befehl ‘ mariadb-secure-installation ‘ unten aus, um Ihre MariaDB-Serverinstallation abzusichern.

sudo mariadb-secure-installation

Jetzt werden Sie nach den folgenden Konfigurationen gefragt:

  • Für die Standardinstallation des MariaDB-Servers ohne Root-Passwort drücken Sie ENTER, wenn Sie nach dem Passwort gefragt werden.
  • Die lokale Authentifizierung für MariaDB-Root-Benutzer ist standardmäßig gesichert, geben Sie ‘ n ‘ ein, wenn Sie gefragt werden, ob Sie die Authentifizierungsmethode auf ‘ unix_socket ‘ ändern möchten.
  • Geben Sie ‘ Y ‘ ein, um ein neues MariaDB-Root-Passwort zu erstellen. Geben Sie dann das starke Passwort für Ihren MariaDB-Root-Benutzer ein und wiederholen Sie es.
  • Wenn Sie gefragt werden, ob Sie die Remote-Authentifizierung für den MariaDB-Root-Benutzer deaktivieren möchten, geben Sie ‘ Y ‘ ein, um zuzustimmen.
  • Geben Sie ‘ Y ‘ ein, um die Standarddatenbank ‘test’ zu entfernen und die anonymen Berechtigungen zu entfernen.
  • Geben Sie schließlich ‘ Y ‘ ein, um das Neuladen der Tabellenberechtigungen zu bestätigen.

Nachdem Sie das MariaDB-Root-Passwort konfiguriert und MariaDB gesichert haben, erstellen Sie neue Datenbanken und einen Benutzer für die Seafile-Installation.

Führen Sie den Befehl ‘ mariadb ‘ unten aus, um sich beim MariaDB-Server anzumelden. Geben Sie Ihr MariaDB-Root-Passwort ein, wenn Sie dazu aufgefordert werden.

sudo mariadb -u root -p

Erstellen Sie einen neuen Benutzer ‘ seafile ‘ mit der folgenden Abfrage. Stellen Sie sicher, dass Sie das folgende Passwort mit einem neuen sicheren Passwort ändern.

create user 'seafile'@'localhost' identified by 'password';

Führen Sie die folgenden Abfragen aus, um neue Datenbanken ‘ ccnet_db ‘, ‘ seafile_db ‘ und ‘ seahub_db ‘ zu erstellen.

create database ccnet_db character set = 'utf8';  
create database seafile_db character set = 'utf8';  
create database seahub_db character set = 'utf8';

Führen Sie als Nächstes die folgenden Abfragen aus, um dem Benutzer ‘ seafile ‘ den Zugriff auf die Seafile-Datenbanken zu ermöglichen.

GRANT ALL PRIVILEGES ON ccnet_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seafile_db.* to seafile@localhost;  
GRANT ALL PRIVILEGES ON seahub_db.* to seafile@localhost;

Datenbank und Benutzer erstellen

Überprüfen Sie nun die Berechtigungen für den Benutzer ‘ seafile ‘, um den Zugriff und die Berechtigungen für die Datenbanken ‘ ccnet_db ‘, ‘ seafile_db ‘ und ‘ seahub_db ‘ sicherzustellen.

SHOW GRANTS FOR seafile@localhost;

Geben Sie schließlich ‘ quit ‘ ein, um den MariaDB-Server zu verlassen.

Überprüfen der Benutzerberechtigungen und Beenden

Python-Abhängigkeiten installieren

In diesem Abschnitt erstellen Sie einen neuen Systembenutzer zum Ausführen von Seafile, erstellen ein Installationsverzeichnis und eine Python-virtuelle Umgebung und installieren dann die Python-Abhängigkeiten mit dem Befehl ‘ pip ‘.

Zuerst fügen Sie einen neuen Benutzer ‘ seafile ‘ mit dem folgenden Befehl hinzu.

sudo adduser seafile

Benutzer hinzufügen

Erstellen Sie nun ein neues Installationsverzeichnis ‘ /opt/seafile ‘ und wechseln Sie in dieses Verzeichnis.

mkdir -p /opt/seafile; cd /opt/seafile

Führen Sie den folgenden Befehl aus, um eine ‘ venv ‘ Python-virtuelle Umgebung zu erstellen und zu aktivieren. Sobald sie aktiviert ist, sollte Ihre Shell wie ‘ (venv) user@hostname # ‘ aussehen.

python3 -m venv venv  
source venv/bin/activate

Einrichten von venv

Führen Sie als Nächstes den Befehl ‘ pip3 ‘ unten aus, um die Python-Abhängigkeiten für Seafile zu installieren. Diese Pakete müssen innerhalb der ‘ venv ‘ virtuellen Umgebung installiert werden.

pip3 install --timeout=3600 django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3

Python-Abhängigkeiten installieren

Nachdem die Installation abgeschlossen ist, ändern Sie den Besitz des Verzeichnisses ‘ /opt/seafile ‘ auf den Benutzer ‘ seafile ‘ mit dem folgenden Befehl.

sudo chown -R seafile: /opt/seafile

Seafile herunterladen und installieren

An diesem Punkt sind Sie bereit, Seafile zu installieren. Jetzt laden Sie den Quellcode von Seafile herunter, installieren ihn mit MariaDB und Memcached, fügen den Domainnamen von Seafile über die Standardkonfiguration hinzu und starten dann den Seafile-Prozess manuell.

Führen Sie den folgenden Befehl aus, um sich als Benutzer ‘ seafile ‘ anzumelden und in das Verzeichnis ‘ /opt/seafile ‘ zu wechseln.

su seafile  
cd /opt/seafile

Laden Sie den Quellcode von Seafile herunter und entpacken Sie ihn mit dem folgenden Befehl. In diesem Beispiel installieren Sie Seafile 11, stellen Sie sicher, dass Sie die Seafile-Downloadseite überprüfen, um die neueste Version zu erhalten.

wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_11.0.12_x86-64.tar.gz  
tar xf seafile-server_11.0.12_x86-64.tar.gz

Aktivieren Sie nun die ‘ venv ‘ virtuelle Umgebung mit folgendem:

source venv/bin/activate

Wechseln Sie in das Verzeichnis ‘ seafile-server-11.0.12 ‘ und führen Sie das Skript ‘ setup-seafile-mysql.sh ‘ aus. Damit installieren Sie Seafile auf Ihrem System mit MariaDB als Datenbank.

cd seafile-server-11.0.12  
./setup-seafile-mysql.sh

Jetzt werden Sie nach den folgenden Seafile-Konfigurationen gefragt:

  • Geben Sie den Namen Ihres Seafile-Servers ein.
  • Geben Sie Ihre Domain für die Seafile-Installation ein.
  • Geben Sie ‘ 2 ‘ ein, um Seafile mit vorhandenen MySQL/MariaDB-Datenbanken und Benutzern zu integrieren.
  • Geben Sie die Details des MariaDB-Hosts, Ports, Benutzers und des Passworts ein.
  • Geben Sie die Datenbank für ccnet als ‘ ccnet_db ‘, seafile als ‘ seafile_db ‘ und seahub als ‘ seahub_db ‘ ein.
  • Drücken Sie ENTER, um die Installation zu bestätigen und die Konfiguration abzuschließen.

Seafile mit MySQL/MariaDB installieren

Installation abgeschlossen

Nachdem die Konfiguration abgeschlossen ist, ändern Sie die Seafile-Konfiguration, um sie unter dem Nginx-Reverse-Proxy auszuführen.

Wechseln Sie in das Verzeichnis ‘ /opt/seafile/conf ‘ und öffnen Sie die Datei ‘ seahub_settings.py ‘ mit dem ‘ nano ‘ Editor.

cd /opt/seafile/conf  
nano seahub_settings.py

Fügen Sie Ihren Domainnamen zur Option ‘ SERVICE_URL ‘ hinzu und stellen Sie sicher, dass Sie das ‘ https ‘ am Anfang einfügen.

SERVICE_URL = 'https://seafile.howtoforge.local'

Fügen Sie die Option ‘ FILE_SERVER_ROOT ‘ wie folgt mit Ihrem Domainnamen hinzu.

FILE_SERVER_ROOT = 'https://seafile.howtoforge.local/seafhttp'

Fügen Sie schließlich die Einstellung ‘ CACHES ‘ hinzu, um Seafile mit dem Memcached-Cachesystem zu integrieren.

CACHES = {  
'default': {  
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',  
'LOCATION': '127.0.0.1:11211',  
},  
}

Wenn Sie fertig sind, speichern Sie die Datei und beenden Sie den Editor.

Wechseln Sie nun zurück in das Verzeichnis ‘ /opt/seafile/seafile-server-latest/ ‘ und führen Sie die Skripte ‘ seafile.sh ‘ und ‘ seahub.sh ‘ aus, um Seafile zu starten.

cd /opt/seafile/seafile-server-latest/  
  
./seafile.sh start  
./seahub.sh start

Wenn Seafile startet, sehen Sie eine Ausgabe ‘ Seafile-Server gestartet ‘. Sie werden auch aufgefordert, einen Administrationsbenutzer für Seafile einzurichten, also stellen Sie sicher, dass Sie Ihren Benutzernamen, Ihre E-Mail und Ihr Passwort eingeben.

Seafile und Seahub starten

Nginx als Reverse-Proxy einrichten

Jetzt, da Seafile mit MariaDB und Memcached läuft, besteht der nächste Schritt darin, Nginx als Reverse-Proxy für Seafile einzurichten. Stellen Sie sicher, dass Sie einen Domainnamen bereit haben, der auf Ihre Server-IP-Adresse verweist.

Erstellen Sie eine neue Nginx-Serverblockkonfiguration ‘ /etc/nginx/sites-available/seafile ‘ mit dem folgenden ‘ nano ‘ Editor.

sudo nano /etc/nginx/sites-available/seafile

Fügen Sie die folgende Konfiguration ein und stellen Sie sicher, dass Sie die Option ‘ server_name ‘ mit Ihrem Domainnamen ändern.

log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';  
  
server {  
listen 80;  
server_name seafile.howtoforge.local;  
  
proxy_set_header X-Forwarded-For $remote_addr;  
  
location / {  
proxy_pass http://127.0.0.1:8000;  
proxy_set_header Host $http_host;  
proxy_set_header X-Real-IP $remote_addr;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header X-Forwarded-Host $server_name;  
proxy_read_timeout 1200s;  
  
# verwendet zum Anzeigen/Bearbeiten von Office-Dateien über den Office Online-Server  
client_max_body_size 0;  
  
access_log /var/log/nginx/seahub.access.log seafileformat;  
error_log /var/log/nginx/seahub.error.log;  
}  
  
location /seafhttp {  
rewrite ^/seafhttp(.*)$ $1 break;  
proxy_pass http://127.0.0.1:8082;  
client_max_body_size 0;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  
proxy_connect_timeout 36000s;  
proxy_read_timeout 36000s;  
proxy_send_timeout 36000s;  
  
send_timeout 36000s;  
  
access_log /var/log/nginx/seafhttp.access.log seafileformat;  
error_log /var/log/nginx/seafhttp.error.log;  
}  
location /media {  
root /opt/seafile/seafile-server-latest/seahub;  
}  
}

Speichern Sie die Datei und beenden Sie sie, wenn Sie fertig sind.

Führen Sie nun den folgenden Befehl aus, um den ‘seafile’-Serverblock zu aktivieren und Ihre Nginx-Syntax zu überprüfen. Sie sehen eine Ausgabe ‘ Syntax ist ok - Test war erfolgreich ‘, wenn Sie eine korrekte Nginx-Konfiguration haben.

sudo ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/  
sudo nginx -t

Führen Sie schließlich den folgenden Befehl aus, um den Nginx-Webserver neu zu starten und Ihre Änderungen anzuwenden.

sudo systemctl restart nginx

Nginx als Reverse-Proxy einrichten

Seafile mit UFW und HTTPS absichern

Nachdem Sie Nginx als Reverse-Proxy konfiguriert haben, sichern Sie Seafile mit HTTPS und UFW (Uncomplicated Firewall). Sie installieren UFW und Certbot, öffnen Dienste wie SSH, HTTP und HTTPS und generieren dann neue SSL-Zertifikate mit Certbot von Letsencrypt.

Führen Sie zuerst den folgenden Befehl aus, um die Pakete ‘ ufw ‘ und ‘ certbot ‘ zu installieren.

sudo apt install ufw certbot -y

Certbot und UFW installieren

Führen Sie nun den folgenden Befehl aus, um die Profile ‘ OpenSSH ‘ und ‘ Nginx Full ‘ zu aktivieren. Das Profil ‘ OpenSSH ‘ öffnet den Standard-SSH-Port ‘ 22 ‘, und das Profil ‘ Nginx Full ‘ erlaubt sowohl HTTP- als auch HTTPS-Verbindungen zum Server.

sudo ufw allow OpenSSH  
sudo ufw allow 'Nginx Full'

Führen Sie als Nächstes den folgenden Befehl aus, um UFW zu starten und zu aktivieren. Geben Sie ‘ y ‘ zur Bestätigung ein, und Sie sehen eine Ausgabe ‘ Firewall ist aktiv und beim Systemstart aktiviert ‘.

sudo ufw enable

UFW aktivieren

Schließlich können Sie jetzt SSL-Zertifikate generieren und Ihre Seafile-Installation mit dem folgenden ‘ certbot ‘ Befehl absichern. Stellen Sie sicher, dass Sie den Domainnamen und die E-Mail-Adresse mit Ihren Informationen ändern.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d seafile.howtoforge.local

Nachdem der Vorgang abgeschlossen ist, sollte Ihre Seafile-Installation mit HTTPS gesichert sein, und Ihre Zertifikate sind im Verzeichnis ‘ /etc/letsencrypt/live/domain.com ‘ verfügbar.

Seafile aufrufen

Öffnen Sie Ihren Webbrowser und besuchen Sie Ihren Seafile-Domainnamen, z. B. https://seafile.howtoforge.local. Wenn die Installation erfolgreich war, werden Sie zur Anmeldeseite von Seafile aufgefordert.

Geben Sie Ihre Admin-E-Mail-Adresse und Ihr Passwort ein und klicken Sie auf ‘ Anmelden ‘.

Seafile anmelden

Wenn Sie die richtigen Admin-Anmeldeinformationen haben, sehen Sie das folgende Seafile-Dashboard.

Dashboard

Sie können jetzt versuchen, Dateien in Seafile hochzuladen, um sicherzustellen, dass die Installation erfolgreich war.

Fazit

Herzlichen Glückwunsch! Sie haben die Installation von Seafile Self-Hosted Cloud Storage auf dem Debian 12-Server abgeschlossen. Sie haben Seafile mit dem MariaDB-Datenbankserver und Nginx als Reverse-Proxy zum Laufen gebracht. Sie haben Seafile auch mit UFW (Uncomplicated Firewall) und SSL über Certbot und Letsencrypt abgesichert. Jetzt, da Seafile installiert ist, können Sie Seafile mit anderen Anwendungen wie dem ONLYOFFICE Document Server oder LibreOffice Online (Collabora Online) integrieren.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.