Skip to main content

Installation von Seafile mit Apache und MySQL

In diesem Artikel zeigen wir, wie Seafile unter Ubuntu 14.04 installiert wird. Seafile ist eine Software, mit der Cloud-Speicher auf dem eigenen Server bereitgestellt werden kann. Als Open-Source-Produkt ist Seafile eine gute Alternative zu Diensten wie Dropbox, um die Speicherung der Daten selbst in der Hand zu haben. Seafile bietet ähnliche Funktionen wie die bekannten Cloudspeicher-Dienste und stellt Client-Software für Windows, Linux, Mac, Android und iOS zur Verfügung.

Es ist jedem selbst überlassen, ob die Installation auf dem Server oder Raspberry Pi daheim oder bei einem IT-Dienstleister erfolgt, in diesem Falle haben wir uns für letzteres entschieden. Wir benutzen einen Virtual-Server mit 4 GB Arbeitsspeicher und einem Festplattenspeicher von 300 GB. Es gibt für die Installation zwei Varianten: Entweder man benutzt ein Installationsscript, welches die Installation aller Komponenten automatisch durchführt oder die Installation wird manuell durchgeführt.

Alexander Jackson, der Autor des Installationsscriptes gibt allerdings folgene Warnung für das Benutzen des Scriptes aus:

Never run these scripts on a production server. They are more or less a one trick pony and could seriously damage production systems. Run it only once and delete it afterwards. If something goes wrong, restart with a fresh machine.

Trotzdem haben wir das Script getestet, allerdings mit der aktuellen Version 5.0.4 kein funktionierendes Ergebnis bekommen (Stand 21.02.2016). Deshalb möchten wir in dieser Anleitung zeigen wie wir Seafile manuell auf einem Ubuntu 14.04 System installieren.

Konfiguration

Nach der Installation haben wir folgende Konfiguration:

  • Seafile 5.0.4 installiert
  • MySQL-Datenbank
  • Apache als Webserver
  • Verschlüsselung über HTTPS (SSL) aktiviert
  • Memcached konfiguriert

Installation von Seafile mit MySQL

Wir melden uns als erstes im System an und laden die Installationsdatei herunter:

In unserem Fall ist dies die Version 5.0.4. Unter der Download-Seite von Seafile könnt ihr die aktuelle Version sehen und den Download-Link entsprechen anpassen.

Nun entpacken wir die Datei:

Bevor wir nun das Installationsscript mit MySQL starten, müssen wir noch die MySQL-Datenbank auf dem Server installiert. Dazu führen wir zunächst eine Aktualisierung der Paketlisten aus:

Danach installieren wir MySQL:

Im Laufe der Installation müssen wir das Root-Kennwort für die MySQL-Datenbank festlegen. Dieses Kennwort müssen wir uns merken, da wir es später benötigen. Außerdem werden noch ein paar weitere Pakete benötigt, die wir nun herunterladen:

Nun ist alles vorbereitet. Jetzt wechseln wir in das Seafile-Server Verzeichnis:

Und führen die Installation mit folgendem Script durch:

 

Das Script führt durch die Installation:

Festlegen der Serverdaten
Festlegen der Serverdaten

Zunächst wird nach dem Server-Namen, der IP oder Domain, dem Ablageort der Daten und dem Seafile-Port gefragt.

 

Neue Datenbank anlegen
Neue Datenbank anlegen

Dann erstellen wir eine neue Seafile-Datenbase und wählen dazu entsprechend „1“.

 

MySQL-Daten angeben
MySQL-Daten angeben

Nun kommen wir zu den MySQL-Serverdaten. Da die Datenbank auf dem gleichen Server läuft, wählen wir „localhost“ und den Standardport. Hier müssen wir nun das Root-Passwort der MySQL-Datenbank angeben. Dann wird ein neuen Seafile-DB-Benutzer angelegt und mit einem Passwort versehen. Die letzten drei Punkte lassen wir in der Standardeinstellung.

Das war’s! Nun können wir den Seafile-Server starten. Dazu wechseln wir in das seafile-server-5.0.4-Verzeichnis und führen folgende Befehle aus:

Der erste Befehl startet den Seafile-Server. Seahub ist die Weboberfläche von Seafile, die seperat gestartet und gestoppt werden kann.

Beim ersten Start von Seahub wird noch ein Admin-Account festgelegt, mit dem wir uns in Seafile einloggen können:

Anlegen eines Admin-Benutzers
Anlegen eines Admin-Benutzers

Nun könnt ihr Seafile mit dem Webbrowser erreichen:

Der Link muss entsprechend eurer IP angepasst werden. Seafile ist standardmäßig unter Port 8000 zu erreichen.

Wenn ihr nun in dieser Anleitung mit der Einrichtung von Apache weitermacht, bitte stoppt Seafile und Seahub wieder.

 

Apache und HTTPS einrichten

Nun wollen wir Seafile unter Apache laufen lassen. Standardmäßig bringt Seafile den Webserver gunicorn mit, allerdings wird selbst vom Seafile-Entwicklerteam empfohlen, für den produktiven Einsatz von Seafile entweder Apache oder nginx zu verwenden.

Also wird im ersten Schritt der Apache-Webserver installiert:

Nachdem dies erfolgt ist, müssen noch vier Module installiert werden. Unter Ubuntu ist dies mit folgenden Befehlen einfach zu realisieren:

Da wir die Seite mit SSL verschlüsseln möchten, benötigen wir nun Zertifikate. Wenn Ihr bereits ein Zertifikat erworben habt, könnt ihr diesen Schritt überspringen. Ansonsten legen wir ein self-signed-Zertifikat an.

Bitte merkt euch, in welchem Verzeichnis die Dateien privkem.pem und cacert.pem liegen, da wird diese gleich benötigen.

Mit einem Texteditor (z.B. vi) muss nun die Konfiguration bearbeitet werden:

So kann die Datei aussehen:

<VirtualHost *:443>
ServerName www.techgarage.de
DocumentRoot /var/www

SSLEngine On
SSLCertificateFile /home/benutzer/seafile-server-5.0.4/cacert.pem
SSLCertificateKeyFile /home/benutzer/seafile-server-5.0.4/privkey.pem

Alias /media /home/benutzer/seafile-server-latest/seahub/media

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

RewriteEngine On

#
# seafile fileserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp – [QSA,L]

#
# seahub
#
SetEnvIf Request_URI . proxy-fcgi-pathinfo=unescape
SetEnvIf Authorization „(.*)“ HTTP_AUTHORIZATION=$1
ProxyPass / fcgi://127.0.0.1:8000/
</VirtualHost>

Die fett-markierten Stellen in der Konfiguration müssen von euch entsprechend angepasst werden.

Nun müssen wir nur noch die ccnet.conf und seahub_settings.py anpassen. Diese befinden sich im Ordner conf/.

 

ccnet.conf 

Hier ändern wir folgende Zeile:

 seahub_settings.py

Hier wird eine neue Zeile hinzugefügt:

Nun kann Seafile und Seahub wieder gestartet werden:

Wenn ihr mit dem Browser eurer Seafile-Seite mit https://IP-Adresse/Domain aufruft, sollte der Zugriff über HTTPS funktionieren.

Memcached aktivieren

Im letzen Schritt möchten wir Memcached aktivieren, um die Performance von Seafile zu verbessern. Dazu installieren wir zwei Pakete:

Nun muss ein letztes mal die seahub_settings.py bearbeitet werden. Folgender Code wird ergänzt:

Das war’s. Damit haben wir alles installiert. Wenn ihr nun Seafile und Seahub neustartet, funktioniert auch Memcached und ihr könnt eure eigene Cloud mit Seafile benutzen.