Schlagwort-Archive: Cloud

Seafile

SeaFile und OwnCloud

Cloud-Fileserver, der (insbesondere bei vielen kleinen Dateien) sehr viel schneller arbeitet als OwnCloud. Daher lohnt sich auch die Kombination, OwnCloud für die Synchronisation von Kalender, Aufgaben sowie Kontakte zu verwenden und Seafile für die Dateisynchronisation.

Eine sehr ausführliche Anleitung gibt es auch unter http://manual.seafile.com/deploy/using_mysql.html

SeaFile installieren

Die aktuelle Version kann unter http://seafile.com/en/download/ heruntergeladen werden. Für den Banana Pi mit Bananian als System kann das Server-Paket für den Raspberry Pi verwendet werden.

Die Installation erfolgt durch Entpacken in ein eigenes Verzeichnis z. B. unter /root

Beim Entpacken wird der Symbolische Link seafile-server-latest erstellt, der auf das aktuelle Verzeichnis verweist. Bei einem Update muss dann das neue Archiv nur wie oben beschrieben entpackt werden und schon ist die neue Version installiert ohne dass die alte Version überschrieben wird. Auch die Einstellungen bleiben erhalten.

Abhängigkeiten installieren

Folgende Pakete werden für Seafile benötigt:

  • python 2.7
  • python-setuptools
  • python-imaging
  • python-mysqldb

MySQL-Datenbanken erstellen

Zuvor muss MySQL vollständig eingerichtet sein. Dies wird im Kapitel zur Owncloud-Installation im Detail beschrieben.

Folgende SeaFile-Komponenten benötigen jeweils eine eigene Datenbank:

  • ccnet server
  • seafile server
  • seahub

Die einfachste Möglichkeit ist, das Konfigurationsscript setup-seafile-mysql.sh im aktuellen Seafile-Ordner zu verwenden:

Das Skript führt detailliert durch die gesamte Konfiguration. Hier ein Beispiel für eine lokale Installation:

Sollen viele Clients auf Seafile zugreifen, sollte zuvor ulimit erhöht werden:

Server starten

Beim ersten Start von Seahub wird ein Admin-Account erstellt. Der User-Name bei Seafile ist immer eine E-Mail-Adresse.

Danach kann der erste Zugriff über einen Browser erfolgen:

 Beim Systemstart automatisch starten

Hierzu wird als root ein Init-Script erstellt (/etc/init.d/seafile-server):

Dann das Script ausführbar machen und rc.d aktualisieren:

Manche Systeme starten den Server nach einen Reboot nicht, da Apache noch nicht läuft. Daher kann der Start über einen Cron-Job nachgeholt werden (Eintrag in /etc/crontab):

Mitgelieferte Skripte

seaf-gc.sh

Seafile verwaltet die Dateien in Datenblöcken. Alte Datenblöcke von gelöschten Dateien und Bibliotheken werden jedoch nicht automatisch gelöscht, wodurch der von Seafile benötigte Speicher immer mehr anwächst. Somit empfiehlt es sich, unnötige Datenblöcke löschen zu lassen. Hierzu muss nur das Skript seaf-gc.sh im Seafile-Ordner gestartet werden:

Das entfernen unnötiger Datenblöcke ist z. B. vor dem Erstellen eines Backups zu empfehlen (siehe Kapitel Backup).

seaf-fsck.sh

Nach einem Systemabsturz kann die Dateistruktur von Seafile defekt sein. hierzu gibt es ein eigenes Script, das fehlerhafte Strukturen reparieren kann:

reset-admin.sh

Wenn man das Admin-Passwort vergessen hat oder der Admin-Account nicht mehr richtig funktioniert, kann mit dem Tool reset-admin.sh der Admin-Account zurückgesetzt werden.

seaf-fuse.sh

Stellt die Dateistruktur aller User und Bibliotheken in einem Verzeichnis dar, das mit dem Script seaf-fuse.sh gemountet wird. Allerdings besteht auf dieses Verzeichnis nur lesender Zugriff.

Unmounten geht wie folgt:

Backup

Anbei ein Skript für ein Backup mit MySQL und storeBackup. Zunächst wird der Seafile-Server gestoppt, damit im Backup ein definierter Zustand gespeichert wird. Dann werden unnötige Datenblöcke gelöscht (seaf-gc.sh) und die Datenbanken gesichert.
Als Backup-Programm wird storeBackup verwendet. Die verwendete Konfigurationsdatei wird im Skript unter /root/bin/storeBackup/seafile.cfg gesucht. Da die Datenbanken zuvor in den Daten-Ordner von Seafile gesichert wurden, sind diese ebenfalls im Backup enthalten.
Am Ende wird der Seafile-Server wieder gestartet.

Backup zurückspielen:

Update

Mit folgendem Script kann eine neue Version von Seafile automatisch eingespielt werden. Es muss lediglich die neue Versionsnummer eingegeben werden. Das Script ist für den Raspberry-Pi bzw. Banana-Pi geschrieben und muss für andere Systeme ggf. angepasst werden.