GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Seafile mit Nginx unter Ubuntu 20.04 LTS

Seafile ist ein Open-Source-Dateihosting- und Cloud-Speichersystem mit erweiterten Funktionen wie Synchronisierung von mehreren Plattformen (plattformübergreifendes System), Datenschutz mit integrierter Dateiverschlüsselung und Unterstützung für Zwei-Faktor-Authentifizierung (TFA), Versionskontrolle, Dateisperrung, Online-Bearbeitung und vieles mehr. Seafile ist in der Programmiersprache C und Python geschrieben und bietet ähnliche Funktionen wie Dropbox, mega.co.nz und andere.

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie einen Seafile-Server mit Nginx-Webserver und der MariaDB-Datenbank installieren und konfigurieren. Wir werden den Seafile-Server unter dem Nginx-Webserver mit aktiviertem HTTPS SSL Letsencrypt installieren und die neueste MariaDB auf dem Ubuntu 20.04-System verwenden.

Voraussetzungen

  • Ubuntu 20.04
  • Root-Rechte

Was werden wir tun?

  • Seafile-Python-Abhängigkeiten installieren
  • MariaDB installieren und konfigurieren
  • Seafile Server für Linux-Server herunterladen
  • Seafile Server mit MariaDB installieren
  • Seafile mit Domainnamen konfigurieren
  • Seafile als Systemdienst ausführen
  • SSL Letsencrypt und DHPARAM generieren
  • Installieren und konfigurieren Sie Nginx als Reverse-Proxy
  • Firewall einrichten
  • Testen

Schritt 1 – Seafile-Python-Abhängigkeiten installieren

Der erste Schritt, den wir unternehmen müssen, bevor wir den Seafile-Server auf dem System installieren, ist die Installation seiner Abhängigkeiten. Seafile ist eine Python-basierte Anwendung und erfordert Python 3.x, um auf dem Server ausgeführt zu werden.

Vor der Installation von Paketen müssen wir das Ubuntu-Repository aktualisieren.

sudo-apt-Update

Installieren Sie jetzt Python 3.x mit allen Abhängigkeiten, die für die Installation des Seafile-Servers benötigt werden, indem Sie die folgenden apt-Befehle verwenden.

sudo apt install python3 libpython3.8 python3-setuptools python3-pil python3-ldap python3-urllib3 ffmpeg python3-pip python3-mysqldb python3-memcache python3-requests libmemcached-dev

Installieren Sie danach zusätzliche Python-Pakete aus dem PyPI-Repository mit dem folgenden pip-Befehl.

pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap

Als Ergebnis wurden alle Paketabhängigkeiten für Seafile installiert.

Schritt 2 – MariaDB installieren und konfigurieren

Seafile bietet Unterstützung für SQLite und den Datenbankserver MariaDB. Für diese Anleitung verwenden wir den MariaDB-Datenbankserver für unsere Installation. Wir werden den Seafile-Server mit der neuesten MariaDB-Version bereitstellen.

Installieren Sie den MariaDB-Server mit dem folgenden apt-Befehl.

sudo apt install mariadb-server -y

Nachdem die Installation abgeschlossen ist, starten Sie den MariaDB-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

systemctl start mariadb
systemctl enable mariadb

Der MariaDB-Server ist auf dem Ubuntu-System installiert, überprüfen Sie ihn mit dem folgenden Befehl.

systemctl status mariadb

Der MariaDB-Dienst ist eingerichtet und läuft.

Als nächstes müssen wir das MariaDB-Root-Passwort mit dem Befehl „mysql_secure_installation“ konfigurieren.

mysql_secure_installation

Jetzt werden Sie nach der MariaDB-Konfiguration gefragt und geben Ihr starkes Root-Passwort für MariaDB ein.

Aktuelles Passwort für Root eingeben (Eingabe für keins):Enter drücken
Root-Passwort festlegen? [Y/n] Y
Anonyme Benutzer entfernen? [Y/n] Y
Root-Anmeldung aus der Ferne nicht zulassen? [Y/n] Y
Testdatenbank und Zugriff darauf entfernen? [Y/n] Y  
Berechtigungstabellen jetzt neu laden? [J/n] Ja

Als nächstes erstellen wir eine neue Datenbank für den Seafile-Server. Wir werden 3 Datenbanken für jede Seafile-Komponente erstellen und einen neuen Datenbankbenutzer erstellen. Wir werden einen neuen Benutzer namens „seafile“ erstellen und er wird alle Privilegien für alle drei Datenbanken „ccnet-db“, „seafile-db“ und „seahub-db“ haben.

Melden Sie sich mit dem folgenden Befehl bei der MySQL-Shell an.

mysql -u root -p

Erstellen Sie nun neue Datenbanken „ccnet-db“, „seafile-db“, „seahub-db“ und erstellen Sie einen neuen Benutzer „seafile“. Gewähren Sie dann dem 'seafile'-Benutzer alle 3 Datenbankrechte.

Führen Sie unten die MySQL-Abfragen aus.

Datenbank „ccnet-db“ erstellen Zeichensatz =„utf8“;
Datenbank „seafile-db“ erstellen Zeichensatz =„utf8“;
Datenbank „seahub-db“ erstellen Zeichensatz =„ utf8';

erstellen Sie den Benutzer 'seafile'@'localhost', identifiziert durch '[email protected]';

GEWÄHREN SIE ALLE PRIVILEGIEN AUF `ccnet-db`.* an ` seafile`@localhost;
GEWÄHREN SIE ALLE PRIVILEGIEN AUF `seafile-db`.* an `seafile`@localhost;
GEWÄHREN SIE ALLE PRIVILEGIEN AUF `seahub-db`.* an `seafile`@localhost;

Der MariaDB-Server wurde installiert, das Root-Passwort eingerichtet und die Datenbank für die Seafile-Installation erstellt.

Schritt 3 – Seafile Server für Linux-Server herunterladen

In diesem Tutorial wird der Seafile-Server als Dienst auf dem systemd-System ausgeführt, und er wird unter einem Nicht-Root-Benutzer ausgeführt.

Erstellen Sie einen neuen Benutzer namens „ryujin“.

useradd -m -s /bin/bash ryujin

Melden Sie sich jetzt als Benutzer ‚ryujin‘ an und laden Sie die neueste Version des Seafile-Servers mit wget herunter.

su - ryujin
wget -q https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.3_x86-64.tar.gz

Extrahieren Sie die Datei „seafile-server.tar.gz“ und benennen Sie das Hauptverzeichnis in „seafile-server“ um.

tar -xf seafile-server_7.1.3_x86-64.tar.gz
mv seafile-server-*/ seafile-server/

Der Quellcode des Seafile-Servers wurde in das Verzeichnis „/home/ryujin/seafile-server“ heruntergeladen.

Schritt 4 – Installieren Sie Seafile Server mit MariaDB

In diesem Schritt installieren wir den Seafile-Server mit dem von Seafile bereitgestellten MariaDB-Setup-Skript.

Melden Sie sich als 'ryujin'-Benutzer an und gehen Sie zum 'seafile-server'-Verzeichnis.

su - ryujin
cd seafile-server/

Führen Sie nun das Skript „setup-seafile-mysql.sh“ aus.

./setup-seafile-mysql.sh

Das Installationsskript führt die Überprüfung des Python-Moduls durch. Stellen Sie sicher, dass alle Abhängigkeiten installiert sind und drücken Sie dann die Eingabetaste.

Jetzt kommen Sie zur Seafile-Konfiguration.

  • Servername:Geben Sie Ihren Seafile-Servernamen ein, z. B. „hakase-cloud“.
  • Server-Domänenname:Geben Sie den Domänennamen für Ihren Seafile-Server „cloud.hakase-labs.io“ ein.
  • Seafile-Datenverzeichnis:Belassen Sie die Standardkonfiguration und drücken Sie die Eingabetaste.
  • Seafile-Dateiserver-Port:Lassen Sie ihn auf dem Standard-Port '8082'.

Nun zur Datenbankkonfiguration. Sie werden nach 2 Optionen gefragt:Lassen Sie das Skript die Datenbank für Sie erstellen oder verwenden Sie eine vorhandene Datenbank.

Wählen Sie Option '2', um vorhandene Datenbankeinstellungen zu verwenden.

  • Datenbankhost:Standard-Localhost
  • Datenbankport:standardmäßig auf mysql normaler Port '3306'
  • Datenbankbenutzer ist 'seafile' mit dem Passwort '[email protected]'
  • ccnet-Datenbank:'ccnet-db'
  • Seafile-Datenbank:'seafile-db'
  • seahub-Datenbank:'seahub-db'

Drücken Sie nun erneut die Eingabetaste, um unsere Seafile-Serverkonfiguration zu bestätigen.

Und wenn die Installation abgeschlossen ist, erhalten Sie das unten gezeigte Ergebnis.

Die Installation und Konfiguration des Seafile-Servers wurde erfolgreich abgeschlossen. Und der Seafile-Dateiserver wird unter Port '8082' laufen, der Seahub-Dienst wird unter Port '8000' laufen.

Als Nächstes werden wir testen, ob der Seafile-Server und der Seahub-Server mit dem Startskript ausgeführt werden.

Gehen Sie als 'ryujin'-Benutzer in das Verzeichnis '~/seafile-server-latest'.

su - ryujin
cd ~/seafile-server-latest/

Starten Sie nun den Seafile-Server, indem Sie den folgenden Befehl ausführen.

./seafile.sh starten

Führen Sie dann den Seahub-Server aus.

./seahub.sh starten

Wenn Sie das Startskript „seahub.sh“ zum ersten Mal ausführen, werden Sie aufgefordert, einen Administratorbenutzer und ein Kennwort für den Seafile-Server zu erstellen.

Geben Sie Ihre Administrator-E-Mail-Adresse und Ihr Passwort ein und drücken Sie dann die Eingabetaste.

Und der Admin-Benutzer und das Passwort wurden erstellt – überprüfen Sie nun die Seafile- und Seahub-Service-Ports ‚8082‘ und ‚8080‘ mit dem Befehl netstat.

ss -plnt4

Und Sie werden sehen, dass der Seafile-Server und der Seahub-Server auf dem Ubuntu 20.04-System betriebsbereit sind.

Stoppen Sie jetzt Seafile und Seahub-Server.

./seafile.sh stoppen
./seahub.sh stoppen

Schritt 5 – Seafile mit Domainnamen konfigurieren

Für dieses Tutorial führen wir die Seafile mit unserem Domainnamen ‚seafile.hakase-labs.io‘ aus. Dazu müssen wir einige der Seafile-Konfigurationen bearbeiten.

Melden Sie sich beim Benutzer „ryujin“ an und gehen Sie in das Verzeichnis „conf“.

su - ryujin
cd conf/

Bearbeiten Sie die Konfiguration „ccnet.conf“ mit dem vim-Editor.

vim ccnet.conf

Ändern Sie bei der Option „SERVICE_URL“ den Wert mit dem Domänennamen und stellen Sie sicher, dass Sie das Standard-HTTP-Protokoll wie unten beschrieben durch das sichere HTTPS-Protokoll ändern.

SERVICE_URL =https://seafile.hakase-labs.io

Speichern und schließen.

Als nächstes bearbeiten Sie die Konfiguration 'seafile.conf'.

vim seafile.conf

Geben Sie im Abschnitt „[fileserver]“ die „Host“-IP-Adresse für den Seafile-Dienst an. Der Seafile-Dienst wird unter der unten angegebenen lokalen Adresse ausgeführt.

[Dateiserver]
Host =127.0.0.1
Port =8082

Speichern und schließen.

Bearbeiten Sie als Nächstes die Datei „seahub_settings.py“ mit dem vim-Editor.

vim seahub_settings.py

Fügen Sie unten in der Zeile die Option „FILE_SERVER_ROOT“ hinzu.

FILE_SERVER_ROOT ='https://seafile.hakase-labs.io/seafhttp'

Speichern und schließen.

Und die Seafile-Konfiguration ist abgeschlossen, sie wird unter dem Domainnamen „seafile.hakase-labs.io“ ausgeführt.

Schritt 6 – Ausführen von Seafile als Systemd-Dienst

Nachdem wir Seafile mit dem Domainnamen konfiguriert haben, richten wir Seafile und Seahub als Systemdienst ein.

Gehen Sie in das Verzeichnis „/etc/systemd/system“ und erstellen Sie eine neue Dienstdatei für Seafile mit dem Namen „seafile.service“.

cd /etc/systemd/system/
vim seafile.service

Fügen Sie die folgende Konfiguration ein.

[Unit]
Description=Seafile
After=network.target mysql.service nginx.service

[Service]
Type=forking
ExecStart=/home/ryujin/seafile-server-latest/seafile.sh start
ExecStop=/home/ryujin/seafile-server-latest/seafile.sh stop
User=ryujin
Gruppe =ryujin

[Installieren]
WantedBy=multi-user.target

Speichern und schließen.

Erstellen Sie als Nächstes die Seahub-Dienstdatei mit dem Namen „seahub.service“.

vim seahub.service

Fügen Sie die folgende Konfiguration ein.

[Unit]
Description=Seafile-Hub
After=network.target seafile.service

[Service]
Type=forking
ExecStart=/home/ryujin/seafile-server-latest/seahub.sh start
ExecStop=/home/ryujin/seafile-server-latest/seahub.sh stop
User=ryujin
Group=ryujin

[Installieren]
WantedBy=multi-user.target

Speichern und schließen.

Und die Seafile- und Seahub-Servicedateien wurden erstellt.

Laden Sie als Nächstes den systemd-Manager neu und vergewissern Sie sich, dass kein Fehler vorliegt.

systemctl daemon-reload

Starten Sie nun den Seafile-Dienst und fügen Sie ihn dem Systemstart hinzu.

systemctl start seafile
systemctl enable seafile

Starten und aktivieren Sie danach den Seahub-Dienst.

systemctl start seahub
systemctl enable seahub

Die Seafile- und Seahub-Dienste sind betriebsbereit, überprüfen Sie dies mit dem folgenden Befehl.

Systemctl-Status Seafile Seahub

Unten sehen Sie das Ergebnis, das Sie erhalten.

Damit ist die Konfiguration von Seafile und Seahub als Systemdienst abgeschlossen.

Schritt 7 – SSL Letsencrypt und DHPARAM generieren

In diesem Schritt generieren wir das SSL Letsencrypt- und DHPARAM-Zertifikat. Wir verwenden das certbot-Tool zum Generieren des SSL-Letsencrypt und den Befehl openssl zum Generieren des dhparam-Zertifikats.

Stellen Sie zum Generieren des SSL-Letsencrypt sicher, dass Sie den echten Domainnamen haben und auf Ihre Server-IP-Adresse verweisen.

Installieren Sie das certbot-Tool mit dem folgenden apt-Befehl auf dem Ubuntu-System.

sudo apt install certbot

Generieren Sie danach SSL Letsencrypt für den Seafile-Domänennamen ‚seafile.hakase-labs.io‘ mit dem certbot-Befehl wie unten beschrieben.

certbot certonly --agree-tos --no-eff-email --email [email protected] -d seafile.hakase-labs.io

Sobald der gesamte Vorgang abgeschlossen ist, ist Ihr Zertifikat im Verzeichnis „/etc/letsencrypt/live/seafile.hakase-labs.io“ verfügbar.

Generieren Sie als Nächstes das DHPARAM-Zertifikat mit dem Befehl openssl wie unten beschrieben.

openssl dhparam -out /etc/nginx/dhparam.pem 2048

Das DHAPRAM-Zertifikat wird generiert und ist unter „/etc/nginx/dhparam.pem“ verfügbar.

Als Ergebnis wurde das SSL Letsencrypt für den Seafile-Domainnamen und das DHPARAM-Zertifikat generiert.

Schritt 8 – Nginx als Reverse-Proxy installieren und konfigurieren

In diesem Schritt installieren und konfigurieren wir Nginx als Reverse-Proxy für den Seafile-Dienst. Der Nginx-Webserver wird unter dem sicheren HTTPS-Protokoll ausgeführt, wobei das SSL-Letsencrypt- und DHPARAM-Zertifikat oben generiert wird.

Installieren Sie Nginx mit dem folgenden apt-Befehl auf dem Ubuntu 20.04-Server.

sudo apt install nginx -y

Sobald die gesamte Installation abgeschlossen ist, starten Sie den Nginx-Dienst und fügen Sie ihn zum Systemstart hinzu.

systemctl start nginx
systemctl enable nginx

Und der Nginx-Dienst läuft auf dem Ubuntu-System.

Gehen Sie als Nächstes in das Verzeichnis „/etc/nginx/sites-available“ und erstellen Sie mit dem vim-Editor eine neue Virtualhost-Konfiguration „seafile“.

cd /etc/nginx/sites-available/
vim seafile

Fügen Sie die folgende Konfiguration ein.

server {
        listen       80;
        server_name  seafile.hakase-labs.io;
        umschreiben ^ https://$http_host$request_uri? permanent;
        server_tokens off;
    }
    server {
        listen 443 ssl http2;
        server_name seafile.hakase-labs.io;
        
ssl_certificate /etc/letsencrypt/live/seafile.hakase-labs.io/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/seafile.hakase-labs.io/privkey.pem;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:5m;

        ssl_dhparam /etc/nginx/dhparam.pem;

        #SSL-Sicherheit
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA- AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_ecdh_curve secp384r1;
        ssl_prefer_server_ciphers on;
        server_tokens off;
       ssl_session_tickets aus;

        proxy_set_header X-Forwarded-For $remote_addr;

        location / {
            proxy_pass         http://127.0.0.1:8000;
proxy_set_header host $ host;
proxy_set_header x-real-ip $ remote_addr;
proxy_set_header x-forward-for $ proxy_add_x_forwarded_for;;

            # verwendet zum Anzeigen/Bearbeiten von Office-Dateien über Office Online Server
            client_max_body_size 0;

            access_log      /var/log/nginx/seahub.access.log;
            error_log       /var/log/nginx/seahub.error.log;
        }

        location /seafdav {
            proxy_pass         http://127.0.0.1:8080/ seafdav;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_he Ader x-forwarded-for $ proxy_add_x_forwarded_for;
proxy_set_header x-forwarded-host $ server_name;
proxy_set_header x-forwarded-proto $ Scheme;
proxy_read_timeout 1200S; br />
            access_log      /var/log/nginx/seafdav.access.log;
            error_log       /var/log/nginx/seafdav.error.log;
        }

        location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            client_max_body_size 0;
        _head Proxy_set X -Fored-for $ proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s; />            root /home/ryujin/seafile-server-latest/seahub;
        }
    }

Speichern und schließen.

Aktivieren Sie als nächstes die Virtualhost-Konfiguration für Seafile und testen Sie die Nginx-Konfiguration.

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

Stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den Nginx-Dienst neu.

systemctl startet nginx neu

Als Ergebnis wurde die Installation und Konfiguration von Nginx als Reverse-Proxy für Seafile erfolgreich abgeschlossen.

Schritt 9 – Firewall einrichten

Für dieses Tutorial führen wir Seafile mit aktivierter UFW-Firewall aus. Und wir müssen die SSH-, HTTP- und HTTPS-Dienste zur UFW-Firewallkonfiguration hinzufügen.

Fügen Sie die SSH-, HTTP- und HTTPS-Dienste mit dem folgenden Befehl zur UFW-Firewall hinzu.

für svc in ssh http https
lassen Sie
ufw $svc zu
fertig

Aktivieren Sie nun die UFW-Firewall und überprüfen Sie den Status der Konfiguration.

ufw enable
ufw-Status nummeriert

Und Sie erhalten das Ergebnis wie folgt.

Die UFW-Firewall ist aktiviert und der SSH-, HTTP- und HTTPS-Dienst wurde hinzugefügt.

Jetzt können wir Seafile verwenden.

Schritt 10 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie den Domänennamen der Seafile-Installation in die Adressleiste ein.

https://seafile.hakase-labs.io/

Jetzt werden Sie auf die sichere HTTPS-Verbindung umgeleitet und erhalten die Seafile-Anmeldeseite wie unten gezeigt.

Geben Sie oben das soeben erstellte Seafile-Benutzerpasswort ein und klicken Sie auf die Schaltfläche „Anmelden“.

Jetzt erhalten Sie das Seafile-Dashboard wie unten gezeigt.

Unten sehen Sie das Ergebnis, nachdem Sie einen neuen Ordner erstellt und die Datei auf den Seafile-Server hochgeladen haben.

Als Ergebnis wurde die Installation und Konfiguration von Seafile mit Nginx-Webserver und MariaDB-Datenbank auf Ubuntu 20.04 erfolgreich abgeschlossen.


Ubuntu
  1. So installieren Sie MariaDB in Ubuntu 20.04 LTS

  2. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  3. So installieren Sie Seafile mit Nginx unter Ubuntu 18.04 LTS

  4. So installieren Sie Magento mit Nginx unter Ubuntu 15.10

  5. So stellen Sie Modsecurity mit Nginx auf Ubuntu 20.04 LTS bereit

So installieren Sie Seafile auf Ubuntu 16.04 LTS

So installieren Sie Nginx mit dem Ngx_Pagespeed-Modul unter Ubuntu 16.04 LTS

So installieren Sie Joomla mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 20.04 LTS

So installieren Sie Seafile auf Ubuntu 20.04 LTS