Es ist schon praktisch, wenn man von so gut wie überall Zugriff auf seine Daten hat. Eine Cloud eignet sich dafür wohl hervorragend. Dropbox kennt mittlerweile wohl jeder!
Aber den meisten ist wohl auch bewusst, dass Dropbox für sensible bzw. persönliche Daten eher weniger gut geeignet ist. Ich war also schon lange auf der Suche nach einer passenden Alternative, wo ich meine Daten nicht auf irgendwelchen Servern von Drittanbietern hochladen muss und ständig die Kontrolle habe, was genau mit meinen Files passiert.
Als ich damals über ownCloud gestolpert bin, war ich echt begeistert! Eine gute und kostenlose Alternative zu Dropbox, die sich mit wenigen Handgriffen auf dem eigenen Webspace installiere lässt. Aber irgendwie war ich auf Dauer nie wirklich zufrieden damit. Selbst mit genügend Ressourcen läuft ownCloud oft zäh und alles andere als flüssig. Speziell der Up- bzw. Download von einer größeren Anzahl Daten bereitet da weniger Freude. Wem es da ähnlich wie mir geht, der sollte vielleicht mal einen Blick auf Seafile werfen! Eine gute Alternative zu ownCloud oder Dropbox!
Ich will hier aber gar nicht lange auf Seafile eingehen, sondern direkt zur Installation unter CentOS 6.5 kommen.
Dazu benötigen wir erst einmal folgende installierte Pakete:
- MySQL/MariaDB
- Python 2.6 oder höher
- Python-setuptools
- Python-simplejson
- Python-imaging
- Python-mysqldb
1.) Installation der Python Module
Eventuell müssen wir hier einige Pakete noch installieren. Das machen wir einfach mit Hilfe von Yum. Dazu einfach per SSH auf euren Server connecten und als root anmelden.
yum install python-imaging MySQL-python python-simplejson python-setuptools
Solltet ihr hier Probleme haben, bzw. die Pakete nicht zur Verfügung stehen, so müsst ihr einfach die passenden Repos hinzufügen. Wie das ganze funktioniert seht ihr hier.
2.) Installation des Seafile Servers
Dafür legen wir zunächst einen neuen Benutzer an, ggf. mit einem neuen Passwort, wobei das nicht zwingend notwendig ist, wenn der Benutzer sonst keinen Shell-Zugriff benötigt.
adduser seafile passwd seafile
Nun wechseln wir in das Home-Verzeichnis unseres neuen Benutzers:
su seafile
Jetzt müssen wir noch die neuste Version (ggf. hier danach suche) des Seafile Server herunterladen und entpacken und öffnen:
wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_x86-64.tar.gz tar xfz seafile-server_3.1.6_x86-64.tar.gz cd seafile-server_3.1.6/
Nun haben wir die Auswahl zischen einer Installation mit, bzw. ohne MySQL. Die Entscheidung liegt bei euch. Wenn ihr vorhabt viele Files und Benutzer zu verwalten, dann solltet ihr vielleicht auf MySQL setzten, wenn ihr das Ganze aber nur für euch privat nutzt, dann reicht in der Regel SQLLite aus.
./setup-seafile-mysql.sh ./setup-seafile.sh
Solltet ihr euch für die Installation mit MySQL entscheiden, müsst ihr evtl. noch vorher die passende Datenbank anlegen. Das macht ihr entweder mit Hilfe von phpMyAdmin, oder auch per SSH:
create database `ccnet-db`; create database `seafile-db`; create database `seahub-db`; create user 'seafile'@'localhost' identified by 'password'; 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`; FLUSH PRIVILEGES; exit;
Die weiteren Installationsschritte sind selbsterklärend, einfach immer schön den Anweisungen in der Console folgen. Zur Not das Script einfach noch mal neu starten
3.) Starten des Servers und des Webinterfaces
cd seafile-server-latest/ ./seafile.sh start ./seahub.sh start
4.) Seafile beim Booten des Servers als Service starten
Für den Fall, dass wir den Server mal unerwartet neustarten müssen, können wir unseren Seafile Server noch als Service hinzufügen und quasi beim Booten mit starten.
Dazu erstellen wir zunächst eine neue Datei, /etc/sysconfig/seafile
# Change the value of "user" to your linux user name user=seafile # Change the value of "script_path" to your path of seafile installation seafile_dir=/home/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 # Change the value of fastcgi to true if fastcgi is to be used fastcgi=false # Set the port of fastcgi, default is 8000. Change it if you need different. fastcgi_port=8000
Dann erstellen wir die beiden Scripte /etc/init.d/seafile
#!/bin/bash # # seafile # # chkconfig: - 68 32 # description: seafile # Source function library. . /etc/init.d/functions # Source networking configuration. . /etc/sysconfig/network if [ -f /etc/sysconfig/seafile ];then . /etc/sysconfig/seafile else echo "Config file /etc/sysconfig/seafile not found! Bye." exit 200 fi RETVAL=0 start() { # Start daemons. echo -n $"Starting seafile: " ulimit -n 30000 su - ${user} -c"${script_path}/seafile.sh start >> ${seafile_init_log} 2>&1" RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/seafile return $RETVAL } stop() { echo -n $"Shutting down seafile: " su - ${user} -c"${script_path}/seafile.sh stop >> ${seafile_init_log} 2>&1" RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/seafile return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart}" RETVAL=3 esac exit $RETVAL
bzw. /etc/init.d/seahub
#!/bin/bash # # seahub # # chkconfig: - 69 31 # description: seahub # Source function library. . /etc/init.d/functions # Source networking configuration. . /etc/sysconfig/network if [ -f /etc/sysconfig/seafile ];then . /etc/sysconfig/seafile else echo "Config file /etc/sysconfig/seafile not found! Bye." exit 200 fi RETVAL=0 start() { # Start daemons. echo -n $"Starting seahub: " ulimit -n 30000 if [ $fastcgi = true ]; then su - ${user} -c"${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log} 2>&1" else su - ${user} -c"${script_path}/seahub.sh start >> ${seahub_init_log} 2>&1" fi RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/seahub return $RETVAL } stop() { echo -n $"Shutting down seafile: " su - ${user} -c"${script_path}/seahub.sh stop >> ${seahub_init_log} 2>&1" RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/seahub return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart}" RETVAL=3 esac exit $RETVAL
Jetzt müssen wir unsere beiden Services nur noch aktivieren:
chmod 550 /etc/init.d/seafile chmod 550 /etc/init.d/seahub chkconfig --add seafile chkconfig --add seahub chkconfig seahub on chkconfig seafile on
Und nun können wir sie auch schon starten:
service seafile start service seahub start
Damit wären wir auch schon am Ende. Bei Fragen und Problemen stehe ich euch natürlich, wie gewohnt, zur Verfügung!
Ach ja, wenn ihr zu den eher weniger aufmerksamen Lesern wie ich gehöre, und die Installation nur überflogen habt, der Standard Port von eurem Seafile Server lautet ‚8000‘, d.h. ihr findet euren Server unter //domain.de:8000.