So installieren Sie Seafile mit Nginx unter openSUSE Leap 42.1

Seafile ist eine kostenlose Datei-Hosting-Software mit einem Funktionsumfang wie Dropbox oder Google Drive, die auf Ihrem eigenen Server installiert werden kann. Seafile wird unter einer OpenSource-Lizenz veröffentlicht. Sie können Ihren eigenen sicheren Dateisynchronisations- und Share-Server mit Seafile erstellen, es ist eine zuverlässige File-Sharing-Software, die es Benutzern ermöglicht, ihre Daten auf dem Server zu verschlüsseln. Seafile ist in C und Python geschrieben.

In diesem Tutorial zeige ich Ihnen, wie Sie unter openSUSE Leap 42.1 einen eigenen Dateisynchronisations- und Share-Server mit Seafile erstellen können. Wir führen Sie durch die Installation der Seafile und konfigurieren dann die Web-GUI mit https-Verschlüsselung hinter einem nginx Reverse-Proxy-Server.

Voraussetzung

  • OpenSUSE Sprung 42.1 – 64bit
  • Root-Rechte
  • Zypper-Befehl verstehen

Schritt 1 – Konfigurieren des Hostnamens

Melden Sie sich bei Ihrem openSUSE-Server an:

ssh root@192.168.1.101

Nachdem Sie sich am Server angemeldet haben, bearbeiten Sie die hosts-Datei mit vim:

vim /etc/hosts

Konfiguration einfügen (ersetzen Sie die IP und den Hostnamen durch Ihre eigenen Werte):

192.168.1.101   cloud.kuonseafile.co    cloud

Speichern und beenden.

Hinweis:

192.168.1.101 = meine Server-IP-Adresse.

Cloud = mein Server-Hostname.

kuonseafile.co = mein Domainname.

Überprüfen Sie Hostname und FQDN (Fully Qualified Domain Name):

hostname
hostname -f

Überprüfen Sie Hostname und IP-Adresse.

Schritt 2 – Abhängigkeiten installieren

Seafile ist in Python geschrieben, daher benötigen wir mehrere Python-Bibliotheken für die Installation. Für die Datenbank unterstützt seafile SQLite und MySQL, in diesem Tutorial werde ich eine MySQL-Datenbank verwenden, die eine bessere Leistung als SQLite bietet.

Installieren Sie alle Pakete einschließlich MySQL/MariaDB-Server mit dem Befehl zypper unten:

zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client

Wenn die Installation abgeschlossen ist, fahren Sie mit dem nächsten Schritt fort.

Schritt 3 – Datenbank konfigurieren

Es gibt eine Sache, die Sie wissen sollten, wenn Sie eine Seafile bereitstellen möchten. Seafile benötigt 3 Datenbanken:

  1. ccnet-Datenbank
  2. Seafile-Datenbank
  3. seahub Datenbank

In Schritt 2 haben wir den MySQL/MariaDB-Server erfolgreich installiert, starten ihn nun mit dem folgenden Befehl:

rcmysql start

Setzen Sie ein neues Passwort für den mysql root-Benutzer mit dem Befehl mysqladmin:

/usr/bin/mysqladmin -u root password 'aqwe123'

Als nächstes loggen Sie sich in die MySQL-Shell ein und erstellen 3 Datenbanken für Seafile und einen neuen Benutzer für diese 3 Datenbanken.

Melden Sie sich an der MySQL-Shell an:

mysql -u root -p

TYP PASSWORT “ aqwe123 „.

Erstellen Sie die drei Datenbanken für die Installation der Seafile – ccnet_db, seafile_db und seahub_db:

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

Und erstellen Sie eine neue Benutzer-Seefilecloud mit dem Passwort’seafilecloud@‘:

create user seafilecloud@localhost identified by 'seafilecloud@';

Erteilen Sie nun dem Seafilecloud-Benutzer Zugriff auf alle Datenbanken:

grant all privileges on ccnet_db.* to seafilecloud@localhost identified by 'seafilecloud@';
grant all privileges on seafile_db.* to seafilecloud@localhost identified by 'seafilecloud@';
grant all privileges on seahub_db.* to seafilecloud@localhost identified by 'seafilecloud@';
flush privileges;

Alle Datenbanken sind bereit für die Installation der Seafile.

Erstellen Sie die MySQL-Datenbank für Seafile.

Schritt 4 – Installation und Konfiguration der Seafile

In diesem Schritt werden wir die Seafile installieren und konfigurieren. Wir werden seafile unter dem seafile user und dem home directory installieren, also müssen wir einen neuen Linux user mit dem Namen „seafile“ anlegen.

Erstellen Sie den neuen Benutzer

Legen Sie einen neuen Benutzer mit dem Namen seafile für die Installation an:

useradd -m -s /bin/bash seafile

Hinweis:

m = Neues Home-Verzeichnis für den Benutzer unter „/home/“ anlegen.
-s /bin/bash = Definiert die Shell für den Benutzer.

Seafile herunterladen

Wechseln Sie mit dem Befehl su unten zum Benutzer seafile:

su - seafile

Jetzt befinden Sie sich im Heimatverzeichnis der Seafile, laden Sie den Seafile-Server 5 mit dem Befehl wget herunter:

wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz

Entpacken Sie das Seafile-Archiv und benennen Sie es um:

tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server

Seafile 5 installieren

Gehen Sie in das Verzeichnis seafile-server und führen Sie die Setup-Datei aus, um seafile zu installieren:

cd seafile-server/

Wir werden die Seafile mit MySQL-Datenbank installieren, also führen Sie die Setup-Datei MySQL aus:

./setup-seafile-mysql.sh

Nun werden Sie nach den Serverdetails gefragt.

Servername = verwenden Sie den Server-Hostnamen.
Server ip oder Domain = verwenden Sie meine Server ip-Adresse.
Seafile Data direcoty = einfach Enter drücken.
Port für Seafile-Dateiserver = einfach Enter drücken.

Seafile-Installation 1

Als nächstes konfigurieren Sie die Datenbank. Wir haben eine eigene Datenbank für die Installation erstellt, also wählen Sie die Nummer „2“.

Nun werden Sie nach dem Datenbankprofil gefragt:

Host des mysql = Standard ist localhost.
Standard-Port = 3306.
MySQL-Benutzer für Seafile = Verwendet den Benutzer, den wir in Schritt 3 – „Seafilecloud“ erstellt haben.
MySQL-Passwort = Passwort für den Seafilecloud-Benutzer.
ccnet-Datenbank = Wir haben die Datenbank erstellt – ccnet_db.
Seafile-Datenbank = seafile_db.
Seahub-Datenbank = seahub_db.

Seafile-Installation 2

Wenn keine Fehler aufgetreten sind, können Sie die Installation mit „Enter“ bestätigen.

Seafile-Installation 3

Warten Sie, bis das Skript die Konfiguration und die Datenbank generiert hat.

Seafile-Installation 4

Start Seafile und Seahub

Seafile ist installiert, jetzt können Sie es mit dem folgenden Befehl starten:

./seafile.sh start
./seahub.sh start

Du wirst aufgefordert, einen Admin-Benutzer für seafile zu erstellen, gib einfach deine Admin-E-Mail und dein Passwort ein.

Start Seafile und Seeventil

In diesem Schritt können Sie auf die Web-GUI der Seafile auf Port 8000 zugreifen.

Schritt 5 – Nginx installieren und konfigurieren

Nginx ist ein leichter Webserver mit geringem Speicherverbrauch und CPU-Verbrauch. In diesem Schritt installieren wir nginx und erstellen dann einen neuen virtuellen Host für den Reverse-Proxy-Zugriff auf die Seafile. Wir werden https für Verbindungen auf dem Server aktivieren.

Nginx installieren

Installieren Sie den nginx-Webserver mit dem Befehl zypper:

zypper in nginx

Generierung des SSL-Zertifikats

Gehen Sie anschließend in das nginx-Verzeichnis und erstellen Sie ein neues Verzeichnis für das SSL-Zertifikat. Erzeugen Sie dann die Zertifikatsdatei mit dem Befehl OpenSSL:

mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/

Erzeugen Sie nun die Zertifikatsdatei:

openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

Virtuellen Host konfigurieren

Erstellen Sie im nginx-Verzeichnis ein neues Verzeichnis namens „vhosts.d“, um die virtuelle Hostdatei zu speichern. Erstellen Sie dieses Verzeichnis und erstellen Sie dann eine neue virtuelle Hostdatei mit vim:

mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf

Fügen Sie die Konfiguration des virtuellen Hosts unten ein:

    server {
        listen       80;
        server_name  cloud.kuonseafile.co;    #Domain Name
        rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https
    }
    server {
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/cacert.pem;        # path to your cacert.pem
        ssl_certificate_key /etc/nginx/ssl/privkey.pem;    # path to your privkey.pem
        server_name cloud.kuonseafile.co;                    #Domain Name
        proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
server_tokens off;

location / {
fastcgi_pass    127.0.0.1:8000;
fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
fastcgi_param   PATH_INFO           $fastcgi_script_name;

fastcgi_param   SERVER_PROTOCOL        $server_protocol;
fastcgi_param   QUERY_STRING        $query_string;
fastcgi_param   REQUEST_METHOD      $request_method;
fastcgi_param   CONTENT_TYPE        $content_type;
fastcgi_param   CONTENT_LENGTH      $content_length;
fastcgi_param   SERVER_ADDR         $server_addr;
fastcgi_param   SERVER_PORT         $server_port;
fastcgi_param   SERVER_NAME         $server_name;
fastcgi_param   HTTPS               on;
fastcgi_param   HTTP_SCHEME         https;

access_log      /var/log/nginx/seahub.access.log;
error_log       /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout  36000s;
proxy_read_timeout  36000s;
proxy_send_timeout  36000s;
send_timeout  36000s;
}
location /media {
root /home/seafile/seafile-server/seahub;
}
}

Ersetzen Sie den server_name durch Ihren eigenen Domainnamen – Zeile 3 und 11.
Ersetzen Sie für die Medienstandortleitung 47 den Pfad der Seafile-Installation -‚/home/seafile/seafile/seafile-server/seahub‘.

Speichern Sie die Datei, verlassen Sie den Editor und testen Sie die Konfiguration mit dem Befehl:

nginx -t

Stellen Sie sicher, dass die Konfiguration kein Problem oder Fehler aufweist.

Seafile so konfigurieren, dass es Ihre eigene Domain und HTTPS verwendet.

Wechseln Sie in die Benutzer-Seedatei und bearbeiten Sie die Konfiguration. Bevor Sie die Konfiguration bearbeiten, schalten Sie den Seafile- und Seahub-Dienst aus.

su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop

Gehen Sie zurück zum Heimatverzeichnis des Seafile-Benutzers, dann gehen Sie zum Verzeichnis conf und bearbeiten Sie die Dateien ccnet.conf und seahub_settings.py.

cd ~/
cd conf/

Bearbeiten Sie die Datei ccnet.conf:

vim ccnet.conf

Auf Zeile 5: ‚SERVICE_URL‘ – ersetzen Sie die Domain durch Ihren eigenen Domainnamen mit https.

SERVICE_URL = https://cloud.kuonseafile.co/

Speichern und beenden.

Bearbeiten Sie nun seahub_settings.py.

vim seahub_settings.py

Fügen Sie die neue Zeile unten hinzu, um das File-Server-Root zu definieren.

FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'

Speichern und beenden.

Schritt 6 – Starten Sie die Seafile und testen Sie sie.

Nginx ist installiert – MariaDB/MySQL sind installiert und der Seafile-Server ist installiert.

Lassen Sie Nginx und MySQL beim Booten starten:

systemctl enable nginx
systemctl enable mysql

Starten Sie die Dienste neu:

systemctl restart nginx
systemctl restart mysql

Als nächstes starten Sie Seafile und Seahub vom Benutzer der Seafile:

su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi

Alle Dienste werden gestartet.

Jetzt können Sie auf den Seafile-Server mit der URL Ihres Servers zugreifen. Meins schon:

cloud.kuonseafile.co

Sie werden auf die https-Verbindung Login-Seite von seafile weitergeleitet.

Geben Sie die Admin-Benutzerdaten ein, die wir in Schritt 4 erstellt haben.

Seafile-Login

Jetzt kannst du den Datei-Manager für die Seafile sehen und anfangen, Dateien auf deinen Seafile-Server hochzuladen.

Der Datei-Manager für die Seafile.

Referenz

Das könnte Dich auch interessieren …