RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Hier gibt's Anleitungen und Themen dazu.

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Outi »

History:

28.06.2017 - V01.06 - Anleitung auf Version Seafile 6.1.1 angepasst, aktualisiert und getestet (MySQL)
25.02.2017 - V01.05 - Anleitung auf Version Seafile 6.0.7 angepasst, aktualisiert und getestet (MySQL)
11.03.2016 - V01.04 - Autostartscript Hinweis für MySQL und weiteren symbolischen Link hinzugefügt
10.03.2016 - V01.03 - Seafile Download Link wieder rückgängig gemacht, da geänderter Link nicht mehr gefunden wird
01.03.2016 - V01.02 - Seafile Download Link angepasst und Lösung für mögliche Fehlermeldung bei der Konfiguration berücksichtigt
12.09.2015 - V01.01 - Pfade optimiert und Datenbank MySQL als Alternative hinzugefügt
07.09.2015 - V01.00 - Erste Fertigstellung


Hinweis:
Diese Anleitung/Information erhebt keinen Anspruch auf Vollständigkeit und kann Fehler enthalten und die Benutzung erfolgt auf eigene Gefahr.
Es wird keinerlei Haftung für Schäden und/oder Datenverluste übernommen.

Info:
Diese Anleitung setzt ein fertig konfiguriertes RASPBIAN mit MySQL voraus (falls MySQL verwendet werden soll).

Wichtig:
Die Anleitung beschreibt die einfache Installation im lokalen Netz ohne Verschlüsselung.
Da seafile einen eigenen Webserver Service mitbringt, ist lediglich MySQL zu installieren und zu konfigurieren.

Wer des Weiteren Webseiten parallel mit fastcgi und ggf. Verschlüsselung für seafile und dyndns nutzen möchte, braucht eine umfangreichere Konfiguration, die ich aktuell aus Zeitgründen (noch) nicht liefern kann.


Bei dieser Anleitung wird eine externe Festplatte verwendet, die unter /media/hdd ansprechbar ist.
(Weitere Infos zum Einbinden von USB Geräten befinden sich hier: Externer Link RASPBIAN Festplatte einbinden )


Inhaltsverzeichnis:
(1) Seafile installieren
(2) Seafile automatisch starten


(1) Seafile installieren

Zuerst werden wie immer die Paketliste und die dazugehörigen Pakete in Raspbian aktualisiert:

Code: Alles auswählen

sudo apt-get update && sudo apt-get upgrade
Als nächstes werden weitere benötigte Pakete installiert:

Hinweis:
Seit Version 6.1.0 ist es erforderlich, das abhängige Paket python-requests zu installieren.
Dies wurde inzwischen in der Anleitung berücksichtigt.

Mit Datenbank SQLite3

Code: Alles auswählen

sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-requests sqlite
Mit Datenbank MySQL

Code: Alles auswählen

sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-requests python-mysqldb
Nun wird ein neuer User seafile angelegt und dessen Homeverzeichnis:
(Das Homeverzeichnis und damit Seafile wird auf der SD Karte im Pi angelegt und installiert, da die Platte zwecks einfacherem Zugriff in NTFS formatiert wurde und nur für die Seafile Daten genutzt wird. Das Installieren von Seafile auf NTFS könnte diverse Probleme bereiten, da z.B. das Rechtemanagement unter Debian nicht mehr funktioniert.)

Code: Alles auswählen

sudo adduser seafile --disabled-login
Beim Anlegen des Users werden einige Sachen abgefragt, die man alle leer einfach mit Enter bestätigen kann.

Es folgt ein symbolischer Link (der Einfachheit halber anderer Anleitungen):

Code: Alles auswählen

sudo ln -s /home/seafile /var/lib/seafile
Nun folgt der Wechsel vom User pi zum neuen User seafile und damit auch in sein neues Homeverzeichnis unter /home/seafile:

Code: Alles auswählen

sudo su - seafile
Nun folgt der Download von Seafile (wieder auf Versionslink geändert, da der allgemeine Link momentan nicht funktioniert):

Code: Alles auswählen

wget https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
Der obige Link sollte von Zeit zu Zeit auf neuere Versionen überprüft werden. Es gab bis vor Kurzem ein allgemeiner Link, der immer die neuste Version abrief. Dieser funktioniert aktuell genauso wenig, wie der direkte Download über die deutsche Webseite von Seafile. Daher erfolgt momentan der Link zur direkten Version.

Das Downloadverzeichnis befindet sich hier: Externer Link Offizielles Seafile Download Verzeichnis

Und das Entpacken:

Code: Alles auswählen

tar xvf seafile-server_6.1.1_stable_pi.tar.gz
Nun wird das Paket in das Verzeichnis installed "weggesichert" (verschoben).

Code: Alles auswählen

mkdir installed && mv seafile-server_* installed
Es wird in das Seafile Verzeichnis gewechselt:

Code: Alles auswählen

cd seafile-server-*
Und das Setup gestartet:

Hinweis:
Wird der Seafile Datenordner außerhalb des Home Verzeichnisses des Users seafile betrieben, so kommt es nach dem Setup zu einer Fehlermeldung, dass das Verzeichnis nicht angelegt werden konnte. Vorab anlegen hilft leider nicht, da das Setup das Verzeichnis dann ablehnt, da es schon existiert.
Daher ist es empfehlenswert, das Setup als User root durchlaufen zu lassen.
Hier bei ist darauf zu achten, dass dann sowohl das Datenverzeichnis als auch das komplette Home Verzeichnis des Users rekursiv wieder den Besitzer und die Gruppe seafile zugewiesen bekommen.
Danach wird wieder zum User seafile zurück gewechselt und mit der Anleitung weiter verfahren.

Mit Datenbank SQLite3

Code: Alles auswählen

./setup-seafile.sh
Bei diesem Setup erfolgt erst ein Hinweistext, der mit Enter bestätigt wird.
Dann wird nach dem Servernamen gefragt, wie der Seafile Server später heißen soll.
Hier spielt es keine Rolle, wie er benannt wird. In dieser Anleitung heißt er schlicht Seafile.
Als nächstes wird nach der IP oder der Domain gefragt, unter der der Server erreichbar sein soll. Dies also entsprechend eintragen.
Dann folgt der Pfad für die späteren Daten, hier die Platte /media/usb/seafile-data.
Dann den Port übernehmen und 2x mit Enter bestätigen.

Mit Datenbank MySQL

Code: Alles auswählen

./setup-seafile-mysql.sh
Hier wird nach den MySQL Daten gefragt wie Server, Port, User für Seafile, usw ....
Dies bitte alles eingeben und bestätigen.
Das Setup legt dann auch die Datenbanken in MySQL an und bestätigt am Ende, wenn alles fertig ist.
Man kann die Datenbanken per phpMyAdmin prüfen.

Damit Wartungen und Updates ein wenig komfortabler vonstatten gehen, wird nun ein weiterer symbolischer Link hinzugefügt, der Seafile ein wenig von der direkten Versionsnummer trennt. Dies ist z.B. nützlich, um z.B. bei einem Update nicht auch noch sämtliche Konfigurationsdateien auf die neue Versionsnummer anpassen zu müssen (Pfade & Co.). Hier wird einfach z.B. aus seafile-server-6.1.1 der neue Pfad seafile-server-latest gemacht und nach einem Versionsupdate reicht es, wenn man bei der neuen Version einfach den Link anpasst, statt in den Konfigdateien die Versionsnummer zu korrigieren. Der alte Pfad bleibt aber weiterhin funktionsfähig, ändert sich aber mit jeder neuen Seafile Version, während der Link immer gleich bleibt.

Hierzu wird der Link wie folgt angelegt:

Code: Alles auswählen

ln -s /home/seafile/seafile-server-6.1.1 /home/seafile/seafile-server-latest
Es folgt nun der erste Start:

Code: Alles auswählen

/var/lib/seafile/seafile-server-latest/seafile.sh start
Und darauf der Start des Webinterfaces:

Code: Alles auswählen

/var/lib/seafile/seafile-server-latest/seahub.sh start
Danach wird man nach der Mailadresse und des Passworts des Admins gefragt. Hier sind die Daten einzugeben für den späteren Admin.
Kurz darauf läuft auch das Webinterface.

Es kommt nun mit ziemlicher Sicherheit vor, dass eine Fehlermeldung angezeigt wird:

Code: Alles auswählen

LC_ALL is not set in ENV, set to en_US.UTF-8
....
Dies kann vorerst ignoriert werden, da dies bei der Autostartkonfiguration berücksichtigt und korrigiert wird. Der Start und Stopp von Seafile wird dann auch nochmal weiter unten vereinfacht.

Es gibt nun verschiedene Möglichkeiten, das Webinterface zu starten, je nachdem, was beim Setup als Domain oder IP angegeben wurde.
Wichtig ist der Port 8000, wenn alles beim Standard gelassen wurde:

Code: Alles auswählen

http://domain_aus_dem_setup:8000

oder

http://IP_Adresse:8000

oder

http://servername_des_raspis:8000
Es erscheint im Browser die Loginmaske von Seafile, in der die zuvor als Admin definierten Daten eingegeben werden:

Bild

Danach wird die Startseite von Seafile geladen.

Bild

Somit funktioniert Seafile mir dem in Seafile integrierten Webinterface.
Ein verschlüsselter Zugriff bei Verwendung von NGINX wird in den nächsten Kapiteln gezeigt.

Alle weiteren Schritte werden nun nicht mehr als User seafile durchgeführt, sondern als User root.
Dazu verlassen wir den bisher genutzten User mit
und führen alle weiteren Befehle wieder mit sudo am Anfang aus.


(2) Seafile automatisch starten

Um Seafile automatisch beim Booten des RasPis zu starten, legen wir die folgende Datei an:

Code: Alles auswählen

sudo nano /etc/init.d/seafile-server
Und befüllen diese mit folgendem Inhalt:

Code: Alles auswählen

#!/bin/bash
### BEGIN INIT INFO
# Provides:          Seafile Server
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start Seafile-Daemon at boot time
# Description:       Enable service provided by Seafile.
### END INIT INFO

# Change the value of "user" to your linux user name
user=seafile

# Change the value of "seafile_dir" 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

# Fix Error Message while startup:
# /var/lib/seafile/haiwen/seafile-server-latest/seahub.sh: Zeile 207: Warnung: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): Datei oder Verzeichnis nicht gefunden. 
# Change locale to needed. This fix is only needed on a german / not english installation
export LC_ALL='de_DE.UTF-8'

case "$1" in
        start)
                sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
                if [ $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
                if [ $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 >> ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 >> ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile {start|stop|restart}"
                exit 1
        ;;
esac
Wichtig !!
Bei der Nutzung von MySQL muss die 4. Zeile von oben so lauten: # Required-Start: $remote_fs $syslog mysql (ohne "$" am Anfang vor dem Wort mysql !!).

Darin kann man den Port 8000 beliebig ändern und fast-cgi aktivieren, falls gewünscht.

Diese Datei wird nun ausführbar gemacht:

Code: Alles auswählen

sudo chmod 755 /etc/init.d/seafile-server
Und damit das Ganze noch funktioniert, folgt noch der folgende Befehl:

Code: Alles auswählen

sudo insserv seafile-server
sudo update-rc.d seafile-server defaults sollte NICHT mehr verwendet werden !!
Das funktioniert leider nicht mehr zuverlässig (auf einem Pi geht's, auf einem anderen nicht mehr).
Es wird auch generell unter Debian seit einigen Versionen von update-rc.dabgeraten und deshalb insserv empfohlen.

Man kann den Server ab sofort mit den folgenden Befehlen steuern:

Code: Alles auswählen

sudo service seafile-server start
sudo service seafile-server stop
sudo service seafile-server restart
Um das zu testen, wird der RasPi neu gestartet und das Webinterface wieder im Browser aufgerufen.
Läuft alles, kann die Konfiguration weiter gehen.

Verschlüsselter SSL Zugriff folgt später ....


Fortsetzungen, Korrekturen, Änderungen möglich ....

Copyright © 2024 by RasPiFun.de
;) Gruß Outi :D

Gospel-Webmaster
Mitglied
Mitglied
Beiträge: 6
Registriert: 28.06.2017, 08:51
RasPis: 1

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Gospel-Webmaster »

Hallo outi,

zunächst einmal ein ganz großes Lob für dieses tolle Forum. Ich bin auf dem Pi ein völliger Neuling, habe aber rudimentäre Kenntnisse in der Bedienung von Linux auf der Terminalebene.

Ich habe nun schon mehrfach versucht, eine Seafile-Cloud anhand anderer Anleitungen zu installieren und stabil zu betreiben. Leider hat das bisher nicht geklappt. Insbesondere der stabile Betrieb war nicht möglich. Irgendwas war (leider) immer. Nun habe ich dieses Forum entdeckt, das mir in seiner Art sehr sympathisch ist. Insbesondere finde ich die Genauigkeit und Detailtiefe sehr gut.

Leider bin ich genau über ein Detail "gestolpert". Du schreibst unter "Seafile automatisch starten":

Wichtig !!
Bei der Nutzung von MySQL muss die 4. Zeile von oben so lauten: # Required-Start: $remote_fs $syslog mysql (ohne "$" am Anfang !!).

Welches "$" ist hier gemeint? Ich sehe dort gleich zwei. Dürfen / Müssen die dort nun stehen, oder muss ich beide / eins noch entfernen?

Für eine kurze Erläuterung wäre ich sehr dankbar.

Viele Grüße
Sven

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Outi »

Hallo Sven,

vielen Dank für Dein Lob.

Ich sehe auf Grund Deiner Nachfrage, dass ich das ein wenig ungenau beschrieben habe. Danke für den Hinweis.

Der von Dir zitierte Satz bezieht sich auf das Wort mysql. Davor sollte das "$" entfernt werden, so wie es im Hinweis unter dem Code abgebildet ist.
Dort ist also bereits das genannte "$" entfernt worden.
Du musst also in der 4. Zeile nur rein das Wort mysql hinten dran hängen.
Ich habe das gleich in der Anleitung geändert.
;) Gruß Outi :D

Gospel-Webmaster
Mitglied
Mitglied
Beiträge: 6
Registriert: 28.06.2017, 08:51
RasPis: 1

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Gospel-Webmaster »

Hallo outi!

Das ging ja super schnell :P . Vielen Dank für die Klarstellung.

Sven

Gospel-Webmaster
Mitglied
Mitglied
Beiträge: 6
Registriert: 28.06.2017, 08:51
RasPis: 1

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Gospel-Webmaster »

Hallo outi,

ich habe Deine Anleitungen "RASPBIAN: Seafile installieren (SQLite3 / MySQL)", "RASPBIAN: NGINX, PHP, MySQL & phpMyAdmin" und die obige befolgt. Hat alles prima geklappt, nur nach dem abschließenden Reboot und Aufruf des Webinterfaces im Browser erhalte ich die Fehlermeldung, dass die Webseite nicht erreichbar ist (ERR_CONNECTION_REFUSED). Hast Du einen Tipp?

Viele Grüße
Sven

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Outi »

Hallo Sven,

so auf die Schnelle kann ich Dir wenig dazu sagen, da zu wenig Informationen.

Aber ich überprüfe eben meine Anleitungen nochmal auf die gerade aktuellen Packages und schau, ob ich den Fehler reproduzieren kann.

Bitte schau mal nach, ob Du Deinen Raspi im Netz findest, die Datenbank und der Webserver laufen.

Ich melde mich nachher nochmal, sobald ich durch bin.
;) Gruß Outi :D

Gospel-Webmaster
Mitglied
Mitglied
Beiträge: 6
Registriert: 28.06.2017, 08:51
RasPis: 1

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Gospel-Webmaster »

Hallo outi,

vielen Dank für Dein Hilfsangebot. Der Raspi ist im Netz pingbar. PHP-Info wird mittels http://hostname/phpinfo.php korrekt angezeigt. PHPMyAdmin ist über http://hostname:81 erreichbar. Nur nginx gibt bei http://hostname den Fehler 403 - Forbidden aus. http://Dyn-DNS:8000 gibt den o.g. Fehler aus. Die Logfiles seafile.init.log und seahub.init.log zeigen an, dass beide fehlerfrei gestartet wurden. Auf dem Router sind die Portweiterleitungen für die Ports 81, 443, 8000, 8001 und 8082 eingerichtet und aktiv.

Ich hoffe, Dir damit ausreichend Infos gegeben zu haben. Wenn 'was fehlt, sag' bitte Bescheid.

Sven

Gospel-Webmaster
Mitglied
Mitglied
Beiträge: 6
Registriert: 28.06.2017, 08:51
RasPis: 1

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Gospel-Webmaster »

Mir fällt noch ein, dass ich fastcgi in der /etc/init.d/seafile-server auf true gestellt habe.

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Outi »

Ok, scheint an fastcgi zu liegen, ich habe das gleiche Fehlerbild.

Ich guck mal, ob ich da was dazu finde, hat sich inzwischen wohl einiges geändert.
;) Gruß Outi :D

Themenstarter
Outi
Administrator
Administrator
Beiträge: 474
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

Re: RASPBIAN: Seafile installieren (SQLite3 / MySQL)

Beitrag von Outi »

Ok, ich habe herausgefunden, dass seafile nicht mit dem fpm socket laufen soll (aus der nginx Anleitung).
Daher ist da einiges zum umkonfigurieren.
Ich melde mich wieder.

(Sorry für die Umstände, ich nutze seafile schon lange nicht mehr, seit ich eine Synology Diskstation habe ....)
;) Gruß Outi :D
Antworten