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

So installieren Sie Seafile mit Nginx unter Ubuntu 18.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 MySQL-Datenbank installieren und konfigurieren. Wir werden den Seafile-Server unter dem Nginx-Webserver mit aktiviertem HTTPS-SSL-Letsencrypt installieren und das neueste MySQL 5.8 auf dem Ubuntu 18.04-System verwenden.

Voraussetzungen

  • Ubuntu 18.04
  • Root-Rechte

Was werden wir tun?

  1. Seafile-Python-Abhängigkeiten installieren
  2. Installieren und konfigurieren Sie MySQL
  3. Seafile Server für Linux-System herunterladen
  4. Seafile-Server installieren
  5. Nginx und Letsencrypt installieren
  6. Nginx als Reverse-Proxy für Seafile-Server konfigurieren
  7. Seafile-Server konfigurieren
  8. Seafile-Server als Dienst ausführen
  9. UFW-Firewall konfigurieren
  10. 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 2.7, 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 2.7 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 python -y
sudo apt install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests -y

Warten Sie, bis alle Abhängigkeiten installiert sind.

Schritt 2 – MySQL installieren und konfigurieren

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

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

sudo apt install mysql-server mysql-client -y

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

systemctl start mysql
systemctl enable mysql

Der MySQL-Server wird auf dem Ubuntu-System installiert.

Jetzt müssen wir das MySQL-Root-Passwort mit dem Befehl „mysql_secure_installation“ konfigurieren.

mysql_secure_installation

Jetzt werden Sie nach der MySQL-Passwortrichtlinie gefragt, 0 für NIEDRIG, 1 für MITTEL und 2 für STRONG. Geben Sie die Zahl „1“ für die MITTLERE Passwortrichtlinie ein, drücken Sie die Eingabetaste und geben Sie dann Ihr sicheres Passwort ein.

Geben Sie für andere einfach 'Y' ein, wie unten gezeigt.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Die Einrichtung des MySQL-Root-Passworts ist abgeschlossen.

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 MySQL-Client-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.

create database `ccnet-db` character set = 'utf8';
create database `seafile-db` character set = 'utf8';
create database `seahub-db` character set = 'utf8';

create user 'seafile'@'localhost' identified by '[email protected]';

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;

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

Schritt 3 – Seafile Server für Linux-System 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 „mohammad“.

useradd -m -s /bin/bash mohammad

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

su - mohammad
wget https://download.seadrive.org/seafile-server_6.2.5_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_6.2.5_x86-64.tar.gz
mv seafile-server-6.2.5/ seafile-server/

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

Schritt 4 – Installieren Sie Seafile Server mit MySQL

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

Melden Sie sich als Benutzer „mohammad“ an und gehen Sie in das Verzeichnis „seafile-server“.

su - mohammad
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 „mohammad“-Benutzer in das Verzeichnis „~/seafile-server-latest“.

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

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

./seafile.sh start

Führen Sie dann den Seahub-Server aus.

./seahub.sh start

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.

netstat -plntu

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

Stoppen Sie jetzt Seafile und Seahub-Server.

./seafile.sh stop
./seahub.sh stop

Schritt 5 – Nginx mit Letsencrypt installieren und konfigurieren

Für diese Anleitung wird der Seafile-Server unter dem Nginx-Webserver mit aktiviertem HTTPS ausgeführt. Und in diesem Schritt installieren wir den Nginx-Webserver und das Letsencrypt-Tool und generieren dann den SSL-Letsencrypt- und DHPARAM-Schlüssel für den Domänennamen des Seafile-Servers.

Installieren Sie den Nginx-Webserver mit dem folgenden apt-Befehl.

sudo apt install nginx -y

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

systemctl start nginx
systemctl enable nginx

Installieren Sie nun das letsencrypt-Tool zum Generieren von SSL-letsencrypt-Zertifikaten.

sudo apt install letsencrypt -y

Der Nginx-Webserver und das letsencrypt-Tool wurden installiert.

Gehen Sie als Nächstes in das Verzeichnis „/etc/nginx“ und erstellen Sie eine neue Konfigurationsdatei „certbot.conf“ für letsencrypt.

cd /etc/nginx/
vim snippets/certbot.conf

Fügen Sie dort die folgende Konfiguration ein.

location /.well-known {
    alias /var/www/html/.well-known;
}

Speichern und beenden.

Bearbeiten Sie die standardmäßige virtuelle Hostdatei.

vim sites-available/default

Fügen Sie die folgende Include-Zeile unten in die 'Server {...}'-Klammer ein.

include snippets/certbot.conf;

Speichern und beenden.

Testen Sie die nginx-Konfiguration und starten Sie den Webserver neu.

nginx -t
systemctl restart nginx

Und wir sind bereit, ein neues letsencrypt-SSL-Zertifikat für den Domänennamen des Seafile-Servers zu generieren.

Generieren Sie die SSL-Zertifikatsdateien mit dem 'certbot'-Befehl wie unten gezeigt.

certbot certonly --rsa-key-size 4096 --webroot --agree-tos --no-eff-email --email [email protected] -w /var/www/html -d cloud.hakase-labs.io

Hinweis:

  • Wir generieren ein neues SSL-Zertifikat und geben die Schlüsselgröße auf „4096“ an.

Jetzt erhalten Sie alle SSL-Zertifikatsdateien, die sich im Verzeichnis „/etc/letsencrypt/live“ befinden.

Und für die zusätzliche Sicherheit generieren wir den Diffie-Hellman-Schlüssel mit der Größe 4096 mit dem OpenSSL-Befehl.

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

Alle benötigten Zertifikate wurden generiert.

Schritt 6 – Nginx als Reverse-Proxy für Seafile-Server konfigurieren

Gehen Sie in das Konfigurationsverzeichnis „/etc/nginx“ und erstellen Sie mit vim eine neue virtuelle Hostdatei „seafile“.

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

Fügen Sie dort die folgende Konfiguration ein.

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

        ssl_dhparam /etc/nginx/dhparam.pem;

        #SSL Security
        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 off;

        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-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            proxy_read_timeout  1200s;

            # used for view/edit office file via 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 /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;
        }
        location /media {
            root /home/mohammad/seafile-server-latest/seahub;
        }
    }

Speichern und beenden.

Aktivieren Sie den virtuellen Seafile-Host und testen Sie die Konfiguration.

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

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

systemctl restart nginx

Die Nginx-Konfiguration als Reverse-Proxy für den Seafile-Server wurde abgeschlossen.

Schritt 7 - Seafile-Server konfigurieren

Um den Seafile-Server unter dem Domainnamen des Nginx-Webservers auszuführen, müssen wir die Standardkonfiguration „seafile“ für den „ccnet-Dienst“, „seafile-Server“ und „seahub-Server“ bearbeiten.

Melden Sie sich als Benutzer „mohammad“ an und gehen Sie in das Verzeichnis „conf/“.

su - mohammad
cd conf/

Bearbeiten Sie die Konfigurationsdatei des ccnet-Dienstes „ccnet.conf“.

vim ccnet.conf

Ändern Sie in der Zeile „SERVICE_URL“ den Wert wie unten gezeigt in den Domänennamen mit HTTPS.

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

Speichern und beenden.

Bearbeiten Sie nun die Datei ‚seafile.conf‘ für die Konfiguration des Seafile-Servers.

vim seafile.conf

Fügen Sie die Zeile „host“ mit dem Wert „127.0.0.1“ localhost wie unten beschrieben hinzu.

[fileserver]
host = 127.0.0.1
port = 8082

Speichern und beenden.

Und schließlich werden wir die Datei ‚seahub_settings.py‘ bearbeiten.

vim seahub_settings.py

Ändern Sie in der Zeile „FILE_SERVER_ROOT“ den Wert in den Domänennamen mit HTTPS.

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

Speichern und beenden.

Schritt 8 – Ausführen von Seafile Server als Dienst

In diesem Tutorial führen wir den Seafile-Server als Dienst auf dem Ubuntu 18.04-System aus. Wir werden ein neues Dienstskript für Seafile und Seahub erstellen.

Gehen Sie in das Verzeichnis ‚/etc/systemd/system‘ und erstellen Sie eine neue Servicedatei ‚seafile.service‘.

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

Fügen Sie dort das folgende Seafile-Dienstskript ein.

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

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

[Install]
WantedBy=multi-user.target

Speichern und beenden.

Erstellen Sie nun die Seahub-Dienstdatei ‚seahub.service‘.

vim seahub.service

Fügen Sie dort das folgende Seahub-Dienstskript ein.

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

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

[Install]
WantedBy=multi-user.target

Speichern und beenden.

Hinweis:

  • Ändern Sie den Pfad der Skripte seafile.sh und seahub.sh.

Laden Sie nun das systemd-System neu.

systemctl daemon-reload

Und starten Sie den Seafile- und Seahub-Dienst.

systemctl start seafile
systemctl start seahub

Aktivieren Sie diese Dienste so, dass sie jedes Mal beim Systemstart gestartet werden.

systemctl enable seafile
systemctl enable seahub

Die Seafile- und Seahub-Dienste sind betriebsbereit - überprüfen Sie dies mit den folgenden Befehlen.

systemctl status seafile
systemctl status seahub

netstat -plntu

Schritt 8 – UFW-Firewall konfigurieren

Es wird empfohlen, die Firewall auf jedem System immer einzuschalten. Für Ubuntu-Systeme schalten wir die UFW-Firewall ein und fügen ihr die SSH-, HTTP- und HTTPS-Ports hinzu.

Fügen Sie den „ssh“-Port hinzu und aktivieren Sie die UFW-Firewall.

ufw allow ssh
ufw enable

Geben Sie 'y' ein, um die Firewall einzuschalten.

Fügen Sie nun HTTP- und HTTPS-Dienste hinzu.

ufw allow http
ufw allow https

Überprüfen Sie die Listenregeln auf der Firewall.

ufw status numbered

Und Sie erhalten drei Dienste SSH, HTTP und HTTPS auf der Liste.

Schritt 9 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie die Seafile-Server-URL-Installation ein. Meine ist:

http://cloud.hakase-labs.io/

Und Sie werden auf die Anmeldeseite der sicheren HTTPS-Verbindung umgeleitet.

Geben Sie die Administrator-E-Mail-Adresse „[email protected]“ und das Passwort „mypassword“ ein und klicken Sie dann auf die Schaltfläche „Anmelden“.

Jetzt erhalten Sie das Seafile-Dashboard wie unten gezeigt.

Zusätzlich - ein Bild hochgeladen und auf dem Seafile-Dashboard angezeigt.

Die Installation und Konfiguration des Seafile-Servers mit Nginx-Webserver und Letsencrypt auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.


Ubuntu
  1. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  2. So installieren Sie Seafile mit Nginx unter Ubuntu 20.04 LTS

  3. So installieren Sie Phorum mit Nginx auf Ubuntu 18.04 LTS

  4. So installieren Sie Nginx mit PHP5 und MySQL unter Ubuntu 11.10

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

So installieren Sie GitBucket mit Nginx unter Ubuntu 20.04 LTS

So installieren Sie phpMyAdmin mit Nginx (LEMP) unter Ubuntu 18.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