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

So richten Sie einen Seafile-Server mit Nginx unter Ubuntu 18.04 ein

Seafile ist eine kostenlose und Open-Source-Cloud-basierte Dateifreigabeplattform, die zum Speichern von Dateien und zum Synchronisieren der Daten auf mehreren Geräten verwendet werden kann. Seafile ist ein selbst gehostetes und leistungsstarkes Speichersystem, mit dem Sie auf Ihren eigenen privaten Servern hosten können. Seafile kann kostenlos verwendet werden und ist anderen Speicheranbietern sehr ähnlich, einschließlich OwnCloud, NextCloud, Google Drive und DropBox.

Mit Seafile können Sie auf Ihre Dateien, Kontakte und Daten über PCs und Mobilgeräte zugreifen und diese synchronisieren.

Seafile verfügt über eine Vielzahl von Funktionen, darunter Unterstützung für Clientverschlüsselung, Unterstützung für Versionskontrolle, LDAP-Authentifizierung, Zwei-Faktor-Authentifizierung, Antivirus-Integration, Office-Web-App-Integration, Freigabe öffentlicher Links, zuverlässige Dateisynchronisierung, Drive-Client-Unterstützung und vieles mehr .

In diesem Tutorial erklären wir, wie man einen Seafile-Server mit Nginx als Reverse-Proxy unter Ubuntu 18.04 installiert und konfiguriert.

Voraussetzungen

  • Ein frisches Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform.
  • Ein gültiger Domänenname, der auf Ihre VPS-IP-Adresse verweist. In diesem Tutorial verwenden wir seafile.example.com.

Hinweis :Informationen zur Verwaltung der DNS-Einträge finden Sie im Atlantic DNS Guide.

Schritt 1 – Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Schritt 2 – Erforderliche Abhängigkeiten installieren

Zuerst müssen Sie alle Abhängigkeiten installieren, die für die Installation des Seafile-Servers erforderlich sind. Sie können alle installieren, indem Sie den folgenden Befehl ausführen:

apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests unzip wget -y

Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Schritt 3 – Nginx und MariaDB installieren

Als nächstes müssen Sie den Nginx-Webserver und den MariaDB-Datenbankserver auf Ihrem Server installieren. Sie können sie installieren, indem Sie den folgenden Befehl ausführen:

apt-get install nginx mariadb-server mariadb-client -y

Starten Sie nach Abschluss der Installation den Nginx- und MariaDB-Dienst und aktivieren Sie ihn nach dem Systemneustart:

systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Schritt 4 – Erstellen Sie eine Datenbank für Seafile

Seafile besteht aus drei Hauptkomponenten:Seahub, Seafile-Server und Ccnet-Server. Jede Komponente benötigt eine separate Datenbank, um ihre Daten zu speichern. Sie müssen für jede dieser Komponenten eine separate Datenbank erstellen.

Melden Sie sich dazu mit dem folgenden Befehl bei der MariaDB-Shell an:

mysql -u root -p

Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und erstellen Sie dann die erforderlichen Datenbanken mit den folgenden Befehlen:

CREATE DATABASE seafiledb character set = 'utf8';
CREATE DATABASE ccnetdb character set = 'utf8';
CREATE DATABASE seahubdb character set = 'utf8';

Erstellen Sie als Nächstes den Datenbankbenutzer mit dem folgenden Befehl:

CREATE USER 'seafileuser'@'localhost' IDENTIFIED BY 'password';

Als nächstes erteilen Sie dem Benutzer der Seafile-Datenbank alle Berechtigungen mit dem folgenden Befehl:

GRANT ALL ON seafiledb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON ccnetdb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON seahubdb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Leeren Sie als Nächstes die Berechtigungen und beenden Sie die MariaDB-Shell mit dem folgenden Befehl:

FLUSH PRIVILEGES;
EXIT;

An diesem Punkt haben Sie alle Datenbanken erstellt, die zum Speichern der Seafile-Daten erforderlich sind.

Schritt 5 – Seafile-Server installieren

Laden Sie als Nächstes die neueste Version von Seafile von der offiziellen Website mit dem Befehl wget herunter:

wget https://download.seadrive.org/seafile-server_7.0.5_x86-64.tar.gz

Extrahieren Sie die heruntergeladene Datei nach dem Herunterladen mit dem folgenden Befehl:

tar -xvzf seafile-server_7.0.5_x86-64.tar.gz

Kopieren Sie als Nächstes das extrahierte Verzeichnis in das Nginx-Webstammverzeichnis:

cp -r seafile-server-7.0.5 /var/www/html/seafile

Als nächstes starten Sie das Seafile-Installationsskript mit dem folgenden Befehl:

cd /var/www/html/seafile
./setup-seafile-mysql.sh

Während der Installation werden Sie aufgefordert, mehrere Fragen wie unten gezeigt zu beantworten:

Checking python on this machine ...
  Checking python module: python-mysqldb ... Done.

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

        https://github.com/haiwen/seafile/wiki

Press ENTER to continue
-----------------------------------------------------------------


What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] seafile

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] seafile.example.com

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/var/www/html/seafile-data" ]

Which port do you want to use for the seafile fileserver?
[ default "8082" ]

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 2

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

Which mysql user to use for seafile?
[ mysql user for seafile ] seafileuser

What is the password for mysql user "seafileuser"?
[ password for seafileuser ]

verifying password of user seafileuser ...  done

Enter the existing database name for ccnet:
[ ccnet database ] ccnetdb

verifying user "seafileuser" access to database ccnetdb ...  done

Enter the existing database name for seafile:
[ seafile database ] seafiledb

verifying user "seafileuser" access to database seafiledb ...  done

Enter the existing database name for seahub:
[ seahub database ] seahubdb

verifying user "seafileuser" access to database seahubdb ...  done

---------------------------------
This is your configuration
---------------------------------

    server name:            seafile
    server ip/domain:       seafile.example.com

    seafile data dir:       /var/www/html/seafile-data
    fileserver port:        8082

    database:               use existing
    ccnet database:         ccnetdb
    seafile database:       seafiledb
    seahub database:        seahubdb
    database user:          seafileuser



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Nach erfolgreicher Installation sollten Sie folgende Ausgabe erhalten:

-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://github.com/haiwen/seafile/wiki

for information.

Als nächstes erteilen Sie Seafile mit dem folgenden Befehl Berechtigungen:

chown -R www-data:www-data /var/www/html/

Als nächstes müssen Sie eine FILE_SERVER_ROOT-Einstellung in der Datei seahub_settings.py hinzufügen:

nano /var/www/html/conf/seahub_settings.py

Fügen Sie die FILE_SERVER_ROOT-Einstellungen wie unten gezeigt hinzu:

SECRET_KEY = "x)0=j*l6b+4amq2n^&)c=q5p==exn13%s&6x!*48u4p0p97k)4"
FILE_SERVER_ROOT = 'http://seafile.example.com/seafhttp'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
:        'NAME': 'seahubdb',
        'USER': 'seafileuser',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Schritt 6 – Admin-Benutzer für Seafile erstellen

Als nächstes müssen Sie einen Admin-Benutzer erstellen und ein Passwort für Seafile festlegen. Wechseln Sie dazu in das Verzeichnis seafile und starten Sie den seafile-Dienst mit folgendem Befehl:

cd /var/www/html/seafile
su -p -l www-data -s /bin/bash -c "./seafile.sh start"

Starten Sie als Nächstes den Seahub-Dienst und erstellen Sie mit dem folgenden Befehl ein Administratorkonto:

su -p -l www-data -s /bin/bash -c "./seahub.sh start"

Sie werden aufgefordert, Ihre E-Mail-Adresse und Ihr Admin-Passwort wie unten gezeigt anzugeben:

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] [email protected]

What is the password for the admin account?
[ admin password ]

Enter the password again:
[ admin password again ]



----------------------------------------
Successfully created seafile admin
----------------------------------------

Seahub is started

Done.

Wenn Sie fertig sind, stoppen Sie die Seafile- und Seahub-Dienste:

su -p -l www-data -s /bin/bash -c "./seafile.sh stop"
su -p -l www-data -s /bin/bash -c "./seahub.sh stop"

Schritt 7 – Erstellen Sie eine Systemd-Datei für Seafile und Seahub

Als Nächstes müssen Sie eine systemd-Einheitendatei für Seafile und Seahub erstellen, um den Dienst zu verwalten.

Erstellen Sie zunächst eine Seafile-Servicedatei mit dem folgenden Befehl:

nano /etc/systemd/system/seafile.service

Fügen Sie die folgenden Zeilen hinzu:

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

[Service]
User=www-data
Group=www-data

Type=forking
ExecStart=/var/www/html/seafile-server-latest/seafile.sh start
ExecStop=/var/www/html/seafile-server-latest/seafile.sh stop

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Erstellen Sie dann mit dem folgenden Befehl eine systemd-Dienstdatei für Seahub:

nano /etc/systemd/system/seahub.service

Fügen Sie die folgenden Zeilen hinzu:

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

[Service]
User=www-data
Group=www-data
Type=forking

ExecStart=/var/www/html/seafile-server-latest/seahub.sh start
ExecStop=/var/www/html/seafile-server-latest/seahub.sh stop

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als Nächstes den Seafile- und Seahub-Dienst neu und ermöglichen Sie ihnen, nach dem Systemneustart mit dem folgenden Befehl zu starten:

systemctl start seafile
systemctl enable seafile
systemctl start seahub
systemctl enable seahub

Führen Sie den folgenden Befehl aus, um den Seafile-Dienst zu überprüfen:

systemctl status seafile

Ausgabe:

● seafile.service - Seafile
   Loaded: loaded (/etc/systemd/system/seafile.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-28 08:48:31 UTC; 8s ago
  Process: 15487 ExecStart=/var/www/html/seafile-server-latest/seafile.sh start (code=exited, status=0/SUCCESS)
    Tasks: 16 (limit: 1150)
   CGroup: /system.slice/seafile.service
           ├─15522 /var/www/html/seafile/seafile/bin/seafile-controller -c /var/www/html/ccnet -d /var/www/html/seafile-data -F /var/www/html/c
           ├─15524 ccnet-server -F /var/www/html/conf -c /var/www/html/ccnet -f /var/www/html/logs/ccnet.log -d -P /var/www/html/pids/ccnet.pid
           └─15527 seaf-server -F /var/www/html/conf -c /var/www/html/ccnet -d /var/www/html/seafile-data -l /var/www/html/logs/seafile.log -P

Nov 28 08:48:28 ubuntu1804 systemd[1]: Starting Seafile...

Führen Sie den folgenden Befehl aus, um den Seahub-Dienst zu überprüfen:

systemctl status seahub

Ausgabe:

● seahub.service - Seafile
   Loaded: loaded (/etc/systemd/system/seahub.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-28 08:50:49 UTC; 18s ago
  Process: 15547 ExecStart=/var/www/html/seafile-server-latest/seahub.sh start (code=exited, status=0/SUCCESS)
 Main PID: 15573 (python2.7)
    Tasks: 6 (limit: 1150)
   CGroup: /system.slice/seahub.service
           ├─15573 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15579 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15580 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15581 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15582 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           └─15583 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel

Nov 28 08:50:43 ubuntu1804 systemd[1]: Starting Seafile...

Schritt 8 – Reverse-Proxy mit Nginx konfigurieren

Als Nächstes müssen Sie Nginx als Reverse-Proxy für Seafile installieren und konfigurieren, um die Client-Anfragen von den Ports 8000 und 8082 an den Nginx-Port 80 weiterzuleiten.

Erstellen Sie dazu mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Nginx-Host:

nano /etc/nginx/sites-available/seafile

Fügen Sie die folgenden Zeilen hinzu:

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/seafile;
    server_name  seafile.example.com;

     client_max_body_size 100M;

     autoindex off;

     access_log /var/log/nginx/example.com.access.log;
     error_log /var/log/nginx/example.com.error.log;

     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;
        }

     location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            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 /var/www/html/seafile-server-latest/seahub;
        }
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Aktivieren Sie dann den virtuellen Nginx-Host mit dem folgenden Befehl:

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

Starten Sie schließlich den Nginx-Dienst mit dem folgenden Befehl neu:

systemctl restart nginx

Schritt 9 – Greifen Sie auf die Seafile-Weboberfläche zu

Öffnen Sie nun Ihren Webbrowser und navigieren Sie zur URL http://seafile.example.com. Sie sollten die Anmeldeseite von Seafile sehen:

Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf Anmelden Taste. Sie sollten das Standard-Dashboard von Seafile sehen:

Schlussfolgerung

Im obigen Tutorial haben wir gelernt, wie man den Seafile-Server mit Nginx als Reverse-Proxy auf Ubuntu 18.04 VPS installiert. Ich hoffe, Sie haben jetzt genug Wissen, um Ihren eigenen Filesharing-Server mit Seafile zu hosten. Beginnen Sie noch heute mit Seafile auf einem VPS von Atlantic.Net!


Linux
  1. So richten Sie Nginx-Serverblöcke unter Ubuntu 18.04 ein

  2. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  3. So richten Sie Nginx als Reverse Proxy unter Ubuntu 20.04 ein

  4. So richten Sie mit Nginx mehrere SSLs auf einer IP ein

  5. Installieren Sie phpMyAdmin auf Ubuntu 20.04 mit Nginx

So installieren Sie Nginx unter Ubuntu 14.04

So installieren Sie NGINX unter Ubuntu 20.04

So richten Sie die Zeitsynchronisierung mit NTP unter Ubuntu 18.04 ein

So richten Sie Tomcat mit Nginx als Reverse Proxy unter Ubuntu 18.04 ein

So richten Sie einen FTP-Server mit ProFTPD in Ubuntu 18.04 ein

So richten Sie einen Mailserver mit Modoboa unter Ubuntu 20.04 ein