Installation der Seafile 6.3.2 in ISPConfig 3.1

Seafile ist ein Open-Source-Cloud-basiertes Dateispeichersystem ähnlich wie Dropbox & Box. Der Unterschied besteht darin, dass Seafile auf dem eigenen System eines Kunden bereitgestellt werden kann. Dies bietet einen höheren Sicherheitsgrad, da die Passwörter nur zwischen dem Kunden, der das System einrichtet, und seinen eigenen Benutzern ausgetauscht werden und nicht zwischen einem Unternehmens-Hostingunternehmen.

Es gibt ein paar Tutorials zur Einrichtung des Seafile-Servers für ISPConfig, aber keine, die keine große Mehrheit der Bearbeitung der Dateien erforderten, die gemäß den Empfehlungen des ISPConfig-Entwicklers wirklich allein gelassen werden sollten. Während dieses Setup für Ubuntu 18.04 LTS und ISPConfig 3 geschrieben wurde, kann es für andere Distributionen verwendet werden. Diese Lösung funktioniert für mich, aber es wird keine Garantie oder Garantie ausgedrückt oder impliziert.

Es wird davon ausgegangen, dass der Leser die Seafile mit MySQL und Apache (auch https) einsetzen möchte. Es wird auch davon ausgegangen, dass Sie ISPConfig funktional nutzen können, da es sich hierbei nicht um ein ISPConfig-Tutorial handelt.

1 Einrichtung der Website

Öffnen Sie Ihr ISPConfig Hosting-Control Panel, klicken Sie auf die Registerkarte Sites und erstellen Sie eine neue Website. Sie sollten sicherstellen, dass Sie None für Auto-Subdomain, SSL, Let’s Encrypt SSL und Fast-CGI für PHP auswählen. Während Sie eine bestehende Website technisch nutzen können, funktioniert die Erstellung einer neuen besser, da wir so alle Cloud-Dateien von anderen Websites getrennt halten können. Dies ist auch notwendig, um das ISPConfig-Panel für Konfigurationsänderungen zu nutzen.

Klicken Sie im Konfigurationspanel der Website auf die Registerkarte Optionen und fügen Sie Folgendes in den Abschnitt Apache Direktiven ein:

Alias /media /var/www/seafile.myseafile.com/private/seafile/seafile-server-latest/seahub/media
RewriteEngine On

<Location /media>
Require all granted
</Location>

# seafile httpserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
# 
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/

Nginx-Richtlinien

Du solltest auch einen Shell-Benutzer für diese Seite anlegen, da es in Kürze notwendig sein wird.

SSH-Benutzer

2 Datenbanken erstellen

Wählen Sie im Bereich Standorte in ISPConfig den Eintrag Datenbankbenutzer und Neuen Benutzer hinzufügen. Erstellen Sie einen einzelnen Benutzer pro Client, der die Seafile-Datenbanken dieses Clients verwaltet.

Datenbankbenutzer

Nachdem der Datenbankbenutzer erstellt wurde, klicken Sie auf Datenbanken und dann auf Neue Datenbank hinzufügen. Sie müssen drei separate Datenbanken hinzufügen: ccnetdb, seafiledb, seafiledb, seahubdb.

Erste Datenbank

Datenbank

dritte Datenbank

3 Herunterladen und Installieren der Seafile-Software

Es gibt einige erforderliche Pakete, die wir installieren müssen. SSH in Ihren Server mit einem Benutzer, der über ausreichende Berechtigungen zur Installation von Software verfügt.

apt-get install python2.7 python-setuptools python-simplejson python-pil python-mysqldb python-flup

Ich ziehe es vor, dass alle meine Server im privaten Verzeichnis laufen, anstatt im Webverzeichnis, also richten wir uns als solche ein. SSH in den Server mit dem oben erstellten Benutzernamen.

cd private
mkdir seafile
cd seafile
wget https://download.seadrive.org/seafile-server_6.3.2_x86-64.tar.gz
or for 32bit
wget https://download.seadrive.org/seafile-server_6.2.5_i386.tar.gz

tar zxvf seafile-server_6.3.2_x86-64.tar.gz
mkdir installed
mv seafile-server_* installed

cd seafile-server-*
./setup-seafile-mysql.sh

An dieser Stelle müssen Sie die Fragen beantworten, die sich auf Ihr System und Ihre Installation beziehen. Wenn Sie zu dem Abschnitt Please Choose a way to initialize seafile databases gelangen, müssen Sie 2 auswählen und die Datenbankinformationen aus Ihrem ISPConfig-Setup eingeben.

4 Start

Es ist an der Zeit, die Seafile zu starten und sicherzustellen, dass die Erstinstallation funktioniert.

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

Nachdem Sie die Dienste gestartet haben, öffnen Sie Ihren Webbrowser und navigieren Sie zu der oben von Ihnen erstellten Website-Adresse mit Port 8000

. http://192.168.1.111:8000/

5 Apache-Einrichtung

Ändern Sie nun die SERVICE_URL in /path/to/seafile-server/ccnet/ccnet/ccnet.conf.

SERVICE_URL = https://www.myseafile.com

Wir müssen auch den FILE_SERVER_ROOT in /path/to/seafile-server/seahub_settings.py ändern.

FILE_SERVER_ROOT = 'https://www.myseafile.com/seafhttp'

Starten Sie den Apache neu.

sudo service apache2 restart

Starten Sie die Seafile-Dienste neu.

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

6 Dienste automatisch starten

Da das Ziel hier ist, alles in ISPConfig enthalten zu halten, anstatt einen Startup-Service zu erstellen, werden wir das Seafile-Skript zu den Cron-Jobs der Benutzer hinzufügen. Natürlich müssen Sie sicherstellen, dass der Client die Möglichkeit hat, vollständige Cron-Jobs hinzuzufügen.

Erstellen Sie eine Startdatei:

cd ~/private/seafile
touch startSeafile.sh
chmod +x startSeafile.sh

Fügen Sie den folgenden Code in die DateistartSeafile.sh Skript:

#!/bin/bash
# Change the value of "seafile_dir" to your path of seafile installation
seafile_dir=/var/www/clients/client1/web2/private/seafile
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

## Sleep command is necessary to prevent MYSQL errors if
## this script runs before MYSQL is fully operational
sleep 60 &
wait %1

case "$1" in
start)
${script_path}/seafile.sh start >> ${seafile_init_log} &
wait %1
${script_path}/seahub.sh start >> ${seahub_init_log} &
wait %1
;;
restart)
${script_path}/seafile.sh restart >> ${seafile_init_log} &
wait %1
${script_path}/seahub.sh restart >> ${seahub_init_log} &
wait %1
;;
stop)
${script_path}/seafile.sh $1 >> ${seafile_init_log} &
${script_path}/seahub.sh $1 >> ${seahub_init_log}
;;
*)
echo "Usage: /etc/init.d/seafile {start|stop|restart}"
exit 1
;;
esac

Um sicherzustellen, dass Cron-Dateien richtig geschrieben werden, gibt es ein paar Dinge, die überprüft werden sollten. Klicken Sie auf Client -> [Ihr Kunde] -> Limits. Stellen Sie sicher, dass die Cron Job Limits auf Full Cron mit 0 Verzögerung zwischen den Ausführungen eingestellt sind. Danach müssen Sie nur noch den einzelnen Job startServer.sh cron in den Abschnitt Commands to Run von ISPConfig einfügen.

/var/www/clients/client1/web42/private/seafile/startSeafile.sh start

Cronjob

Das ist alles!

Links

Das könnte Dich auch interessieren …