GNU/Linux >> LINUX-Kenntnisse >  >> OpenSuse

So installieren Sie Seafile mit Nginx auf openSUSE Leap 42.1

Seafile ist eine kostenlose Datei-Hosting-Software mit einer Funktionalität wie Dropbox oder Google Drive, die auf Ihrem eigenen Server installiert werden kann. Seafile wird unter einer OpenSource-Lizenz veröffentlicht. Mit Seafile können Sie Ihren eigenen sicheren Dateisynchronisierungs- und Freigabeserver erstellen. Es handelt sich um eine zuverlässige Dateifreigabesoftware, mit der Benutzer ihre Daten auf dem Server verschlüsseln können. Seafile ist in C und Python geschrieben.

In diesem Tutorial zeige ich Ihnen, wie Sie Ihren eigenen Dateisynchronisierungs- und Freigabeserver mit Seafile auf openSUSE Leap 42.1 erstellen. Wir führen Sie durch die Installation von Seafile und konfigurieren dann die Web-GUI mit https-Verschlüsselung hinter einem Nginx-Reverse-Proxy-Server.

Voraussetzung

  • OpenSUSE Leap 42.1 - 64bit
  • Root-Rechte
  • Zypper-Befehl verstehen

Schritt 1 - Konfigurieren Sie den Hostnamen

Melden Sie sich bei Ihrem openSUSE-Server an:

ssh [email protected]

Nachdem Sie sich beim Server angemeldet haben, bearbeiten Sie die Hosts-Datei mit vim:

vim /etc/hosts

Konfiguration einfügen (IP und Hostname durch eigene Werte ersetzen):

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 den Hostnamen und FQDN (Fully Qualified Domain Name):

hostname
hostname -f

Schritt 2 - Abhängigkeiten installieren

Seafile ist in Python geschrieben, daher benötigen wir für die Installation mehrere Python-Bibliotheken. 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 folgenden Zypper-Befehl:

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

Fahren Sie nach Abschluss der Installation mit dem nächsten Schritt fort.

Schritt 3 - Datenbank konfigurieren

Es gibt eine Sache, die Sie wissen sollten, wenn Sie 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 Sie ihn nun mit dem folgenden Befehl:

rcmysql start

Legen Sie mit dem mysqladmin-Befehl ein neues Passwort für den mysql-Root-Benutzer fest:

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

Melden Sie sich als Nächstes bei der MySQL-Shell an und erstellen Sie drei Datenbanken für Seafile und einen neuen Benutzer für diese drei Datenbanken.

Melden Sie sich bei der MySQL-Shell an:

mysql -u root -p

GEBEN SIE DAS PASSWORT "aqwe123"

EIN

Erstellen Sie die drei Datenbanken für die Seafile-Installation – 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 einen neuen Benutzer seafilecloud mit dem Passwort „[email protected]“:

create user [email protected] identified by '[email protected]';

Gewähren Sie nun dem seafilecloud-Benutzer Zugriff auf alle Datenbanken:

grant all privileges on ccnet_db.* to [email protected] identified by '[email protected]';
grant all privileges on seafile_db.* to [email protected] identified by '[email protected]';
grant all privileges on seahub_db.* to [email protected] identified by '[email protected]';
flush privileges;

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

Schritt 4 – Seafile installieren und konfigurieren

In diesem Schritt werden wir Seafile installieren und konfigurieren. Wir werden Seafile unter dem Seafile-Benutzer- und Home-Verzeichnis installieren, also müssen wir einen neuen Linux-Benutzer mit dem Namen "seafile" erstellen.

Neuen Benutzer erstellen

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

useradd -m -s /bin/bash seafile

Hinweis:

-m =Erstellen Sie ein neues Home-Verzeichnis für den Benutzer unter "/home/".
-s /bin/bash =Definieren Sie die Shell für den Benutzer.

Seafile herunterladen

Wechseln Sie mit dem folgenden su-Befehl zum Seafile-Benutzer:

su - seafile

Jetzt befinden Sie sich im Seafile-Home-Verzeichnis, laden Sie Seafile Server 5 mit dem wget-Befehl herunter:

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

Extrahieren 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

Installieren Sie Seafile 5

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

cd seafile-server/

Wir werden 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 Hostnamen des Servers.
Server-IP oder Domäne =Meine Server-IP-Adresse verwenden.
Seafile-Datenverzeichnis =einfach Enter drücken.
Port für Seafile-Dateiserver =einfach Enter drücken.

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

Nun werden Sie nach dem Datenbankprofil gefragt:

Host von mysql =Standard ist localhost.
Standardport =3306.
MySQL-Benutzer für Seafile =Verwendet den Benutzer, den wir in Schritt 3 erstellt haben - "seafilecloud".
MySQL-Passwort =Passwort für seafilecloud-Benutzer.
ccnet-Datenbank =Wir haben die Datenbank erstellt - ccnet_db.
seafile database =seafile_db.
seahub-Datenbank =seahub_db.

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

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

Seafile und Seahub starten

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

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

Sie werden aufgefordert, einen Admin-Benutzer für Seafile zu erstellen, geben Sie einfach Ihre Admin-E-Mail und Ihr Passwort ein.

In diesem Stadium können Sie über Port 8000 auf die Seafile-Web-GUI zugreifen.

Schritt 5 – Nginx installieren und konfigurieren

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

Installieren Sie Nginx

Installieren Sie den nginx-Webserver mit dem zypper-Befehl:

zypper in nginx

Generieren Sie das SSL-Zertifikat

Wechseln Sie als Nächstes in das nginx-Verzeichnis und erstellen Sie ein neues Verzeichnis für das SSL-Zertifikat. Generieren Sie dann die Zertifikatsdatei mit dem OpenSSL-Befehl:

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

Generieren 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 mit dem Namen „vhosts.d“, um die virtuelle Hostdatei zu speichern. Erstellen Sie dieses Verzeichnis und 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 server_name durch Ihren eigenen Domänennamen – Zeile 3 und 11.
Ersetzen Sie für den Medienspeicherort Zeile 47 durch den Pfad der Seafile-Installation – '/home/seafile/seafile-server/seahub'.

Speichern Sie die Datei und beenden Sie den Editor. Testen Sie dann die Konfiguration mit dem Befehl:

nginx -t

Stellen Sie sicher, dass es keine Probleme oder Fehler in der Konfiguration gibt.

Konfigurieren Sie Seafile, um Ihre eigene Domain und HTTPS zu verwenden

Wechseln Sie zum Benutzer-Seafile und bearbeiten Sie die Konfiguration. Deaktivieren Sie vor dem Bearbeiten der Konfiguration den Seafile- und Seahub-Dienst.

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

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

cd ~/
cd conf/

Bearbeiten Sie die ccnet.conf-Datei:

vim ccnet.conf

Zeile 5: 'SERVICE_URL' - ersetzen Sie die Domain durch Ihren eigenen Domainnamen durch 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 Stammverzeichnis des Dateiservers zu definieren.

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

Speichern und beenden.

Schritt 6 – Seafile starten und testen

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 Seafile-Benutzer:

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

Alle Dienste werden gestartet.

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

cloud.kuonseafile.co

Sie werden auf die Anmeldeseite der https-Verbindung von seafile umgeleitet.

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

Jetzt können Sie den Seafile-Dateimanager sehen und mit dem Hochladen von Dateien auf Ihren Seafile-Server beginnen.


OpenSuse
  1. So installieren Sie Mongodb 5 in Opensuse Leap 15.3

  2. So installieren Sie Mysql Server 8 auf OpenSUSE Leap 15.3

  3. So installieren und konfigurieren Sie Redis 6 unter OpenSUSE Leap 15.3

  4. So installieren Sie Erlang auf Opensuse Leap 15.3

  5. So installieren Sie Java 17 in OpenSUSE Leap 15.3

So installieren Sie Skype auf openSUSE Leap

So installieren Sie NGINX auf openSUSE

So installieren Sie TeamViewer 12 auf openSUSE Leap 42.2

So installieren Sie Dropbox auf openSUSE Leap 42.2

So installieren Sie RabbitMQ in OpenSUSE Leap 15.3

So installieren Sie Google Chrome auf openSUSE Leap 15