Auch hier ist die Voraussetzung eine LEMP-Installation, wie sie hier beschrieben ist: Installation von Nginx, MySQL und PHP
Seafile besitzt zwar einen einen eigenen, kleinen Web-Server, allerdings beherrscht dieser das HTTPS-Protokoll nicht. Um also eine verschlüsselte Übertragung zur Cloud zu erreichen, muss man Seafile hinter einem "richtigen" Web-Server betreiben - in diesem Fall NginX.
Die Einrichtung erfolgt in 4 Schritten:
- Seafile Grundinstallation
- Seafile mit Https hinter NginX einrichten
- WebDAV aktivieren
- Seafile beim Booten starten
Wenn man noch kein Zertifikat zur Verschlüsselung erstellt hat, kommt das natürlich zuerst!
Dazu das Verzeichnis /etc/ssl/nginx erstellen, in das Verzeichnis wechseln und dort ein selbstsigniertes Zertifikat erstellen.
mkdir /etc/ssl mkdir /etc/ssl/nginx cd /etc/ssl/nginx openssl genrsa -out privkey.pem 2048 openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
Schritt 1: Seafile Grundinstallation
Seafile braucht Phython, daher werden jetzt die notwendigen Pakete installiert.
apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb
Damit Seafile mit NginX zusammen arbeiten kann, noch mit
apt-get install python-flup
ein weiteres, notwendiges Paket installieren.
Damit der Dienst nicht als root-User läuft, bekommt der Dienst einen eigenen User, wie der Web-Server (www-data) oder MySQL.
Das geht mit dem Befehl
adduser SEAFILE-USER --disabled-login
Der Name SEAFILE-USER ist dabei frei wählbar. Durch die Option --disabled-login bekommt der Nutzer kein Passwort und der Nutzer kann sich nicht von außen am System anmelden. Es ist also ein interner System-User.
Nach diesen Vorbereitungen kann man jetzt anfangen, Seafile zu installieren. Auf der Seafile-Seite wird empfohlen, Seafile in dem entstandenen Ordner unter /home/ zu installieren. Ein Installationsverzeichnis wie zum Beispiel /opt/seafile/ oder /var/seafile/ ist aber ebenso möglich.
Ich gehe mal im Folgenden davon aus, dass Seafile in dem Ordner /home/SEAFILE-USER installiert werden soll.
Also mit
cd /home/SEAFILE-USER
in das Verzeichnis wechseln.
Jetzt sollte man zum Nutzer SEAFILE-USER werden mit
su - SEAFILE-USER
Jetzt lädt man mit
wget https://github.com/haiwen/seafile-rpi/releases/download/VERSION/seafile-server_VERSION_pi.tar.gz
das Paket für den Raspberry Pi von der Seafile-Seite herunter.
Jetzt das herunter geladene Paket entpacken mit
tar -zxvf seafile-server_VERSION_pi.tar.gz
Um die Grundinstallation von Seafile zu starten, in das Seafile-Verzeichnis wechseln und das Setup-Script für MySQL starten mit
cd seafile-server_VERSION ./setup-seafile-mysql.sh
Dort wird unter Anderem das Setup der Datenbank vorgenommen und die Ports des Servers eingestellt. Bei den Ports kann man die Default-Einstellungen übernehmen.
What is the name of the server? It will be displayed on the client. 3 – 15 letters or digits [ server name ] servername What is the ip or domain of the server? For example: www.mycompany.com, 192.168.1.101 [ This server’s ip or domain ] www.yourdomain.com ——————————————————- Please choose a way to initialize seafile databases: ——————————————————- [1] Create new ccnet/seafile/seahub databases [2] Use existing ccnet/seafile/seahub databases [ 1 or 2 ] 1 What is the host of mysql server? [ default “localhost” ] je nach Konfiguration What is the port of mysql server? [ default “3306” ] je nach Konfiguration What is the password of the mysql root user? [ root password ] je nach Konfiguration verifying password of user root … done Enter the name for mysql user of seafile. It would be created if not exists. [ default “root” ] seafileusr (zum Beispiel) Enter the password for mysql user “seafileusr”: [ password for seafileusr ] Passwort für den neuen Benutzer “seafileusr” ——————————— This is your configuration ——————————— […] ——————————— Press ENTER to continue, or Ctrl-C to abort ——————————— Enter —————————————————————– Your seafile server configuration has been finished successfully.
Damit ist die Grundinstallation abgeschlossen. Ok -- fast.
Jetzt einmal den Seafile-Server starten mit
/home/SEAFILE-USER/seafile-server-latest/seahub.sh start
Beim ersten start wird ein Administrator-Konto angelegt. Dazu in den folgenden Abfragen seine EMail-Adresse eingeben und ein Passwort festlegen.
---------------------------------------- It's the first time you start the seafile server. Now let's create the admin account ---------------------------------------- What is the email for the admin account? [ admin email ] email@example.org What is the password for the admin account? [ admin password ] Enter the password again: [ admin password again ] ---------------------------------------- Successfully created seafile admin ---------------------------------------- Loading ccnet config from /home/SEAFILE-USER/ccnet Loading seafile config from /home/SEAFILE-USER/seafile-data Seahub is started Done.
Das ist wichtig, da Seafile später sonst nicht automatisch starten kann.
Schritt 2: Seafile mit Https hinter NginX einrichten
Dazu müssen erstmal 2 Dateien angepasst werden.
1. ccnet.conf
In der Datei ccnet/ccnet.conf muss der Parameter "SERVICE_URL" angepasst werden:
nano /home/SEAFILE-USER/ccnet/ccnet.conf . . SERVICE_URL = https://www.yourdomain.com
2. seahub_settings.py
In der Datei seahub_settings.py den Parameter FILE_SERVER_ROOT anpassen:
nano /home/SEAFILE-USER/seahub_settings.py . . FILE_SERVER_ROOT = 'https://www.yourdomain.com/seafhttp'
Jetzt wird für NginX noch ein neuer, virtueller Host für die Cloud erzeugt. Dafür erzeugt man eine neue Datei in dem Ordner /etc/nginx/sites-available, z.B. myCloud
nano /etc/nginx/sites-available/myCloud server { listen 443; ssl on; ssl_certificate /etc/ssl/nginx/cacert.pem; # path to your cacert.pem ssl_certificate_key /etc/ssl/nginx/privkey.pem; # path to your privkey.pem server_name www.yourdomain.com; location / { fastcgi_pass 127.0.0.1:8000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; access_log /var/log/nginx/seahub.access.log; error_log /var/log/nginx/seahub.error.log; } location /seafhttp { rewrite ^/seafhttp(.*)$ $1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; } location /media { root /home/SEAFILE-USER/seafile-server-latest/seahub; } }
Dabei müssen die Pfade zu den SSL-Zertifikaten, server_name und der Pfad für location /media an die eigene Installation angepasst werden.
Jetzt muss diese Konfigurationsdatei noch durch einen symbolischen Link im Ordner /etc/nginx/sites-enabled aktiviert werden.
ln -s /etc/nginx/sites-available/mycloud /etc/nginx/sites-enabled
Standardmäßig ist die WebDAV-Schnittstelle bei Seafile deaktiviert. Um aber die Dateien der Cloud auf lokalen Rechner oder dem Tablet mounten zu können, ohne die Dateien zu synchronisieren, braucht man die aktivierte WebDAV-Schnittstelle.
Um sie zu aktivieren, muss man Änderungen in der Datei /home/SEAFILE-USER/conf/seafdav.conf vornehmen.
nano /home/SEAFILE-USER/conf/seafdav.conf [WEBDAV] # Diesen Wert auf true setzen enabled = true # Der Port ist frei wählbar, also einen beliebigen freien Port wählen port = 9999 # Da wir Seafile hinter NginX laufen lassen, muss fastcgi auf true gesetzt werden fastcgi = true # Hier den Nahmen wählen, unter dem die Cloud erscheint share_name = /meineCloud
Jetzt noch den folgenden Teil in der eben erstellte Konfigurationsdatei für die Cloud ergänzen: Darauf achten, dass der Port im fastcgi_pass auf den Port und die location auf den share_name gesetzt ist, der gerade in der seafdav.conf-Datei festgelegt wurde.
nano /etc/nginx/sites-available/myCloud location /meineCloud { fastcgi_pass 127.0.0.1:9999; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param HTTPS on; client_max_body_size 0; access_log /var/log/nginx/seafdav.access.log; error_log /var/log/nginx/seafdav.error.log; }
Jetzt kann man unter der Adresse www.yourdomain.com/meineCloud über WebDAV auf seine Dateien zugreifen.
Schritt 4: Seafile beim Booten starten
Dafür wird jetzt jetzt noch eine neue Datei in dem Ordner /etc/init.d/ erstellt, z.B. meineCloud.
Dort den folgenden Inhalt einfügen und die Parameter user und seafile_dir an die eigene Installation anpassen.
#!/bin/bash ### BEGIN INIT INFO # Provides: mathkernel # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Seafile-Server ### END INIT INFO # Change the value of "user" to your linux user name user=SEAFILE-USER # Change the value of "seafile_dir" to your path of seafile installation seafile_dir=/home/SEAFILE-USER script_path=${seafile_dir}/seafile-server-latest # Change the value of fastcgi to true if fastcgi is to be used fastcgi=true # Set the port of fastcgi, default is 8000. Change it if you need different. fastcgi_port=8000 case "$1" in start) su - ${user} ${script_path}/seafile.sh start if [ $fastcgi = true ]; then su - ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} else su - ${user} ${script_path}/seahub.sh start fi ;; restart) su - ${user} ${script_path}/seafile.sh restart if [ $fastcgi = true ]; then su - ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} else su - ${user} ${script_path}/seahub.sh restart fi ;; stop) su - ${user} ${script_path}/seafile.sh $1 su - ${user} ${script_path}/seahub.sh $1 ;; *) echo "Usage: /etc/init.d/seafile {start|stop|restart}" exit 1 ;; esac
Jetzt also einmal Nginx neu starten mit
/etc/init.d/nginx restart
und Seafile neu starten mit
/etc/init.d/meineCloud restart
Damit Seafile nun beim booten gestartet wird, kann man folgende Zeile in die Datei /etc/rc.local einfügen
nano /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. . . . # start seafile-server /etc/init.d/meineCloud start exit 0
Darauf achten, dass die Zeile vor dem "exit 0" eingefügt wird.
Und das wars.
Comments
Bothoma (not verified)
Hallo, danke für die
Mon, 03/16/2015 - 8:23pmHallo, danke für die Anleitung. Bin leider nur bis wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_VERSION_pi... gekommen. Dann gab es ein 404. Not found. Und nun bin ich überfragt :-) Gibt es eine Aktualisierung?
Grüße,
Tom
Bjoern Stremmel (not verified)
Hey Tom
Mon, 03/16/2015 - 10:07pmHey Tom
Der aktuelle Link ist
https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_pi.t...
Ich hatte versucht, das mit der Versionsnummer offen zu lassen .. sieht aber echt verwirrend aus. Sorry
Gruß Bjoern
little (not verified)
Hey Bjoern,
Wed, 03/25/2015 - 12:02pmHey Bjoern,
erstmal danke für dieses erstklassige Tutorial und die wirklich gute Seite.
Nun im Tutorial selbst bei Activate WebDAV fügst du in die Konfig-file ein
"location /meineCloud"
Sollte das nicht "myCloud" heißen?
Bjoern Stremmel (not verified)
Hallo und Danke.
Wed, 03/25/2015 - 1:24pmHallo und Danke.
Nein, das soll in diesem Fall wirklich "meineCloud" heißen. Dsa ist der Share-Name von deiner Seafile-Cloud. Du erreichst dann die WebDAV-Sachen, indem du dann als Adresse "https://deine.url.de/meineCloud" eingibst.
Der Parameter "meineCloud" taucht ja dann in der Konfig-Datei wieder auf mit "location meineCloud/ ... " mit den zugehörigen Einstellungen wieder auf.
Ich hoffe, das hilft weiter.
Gruß Bjoern
little (not verified)
So, ich nochmal,
Wed, 03/25/2015 - 3:03pmSo, ich nochmal,
bevor man ./seahub start ausführen kann muss doch zuerst
"/home/SEAFILE-USER/seafile-server-latest/seafile.sh start"
ausgeführt werden, oder? Bei mir verlangt seafile das.
Grüße
-noch am basteln-
Bjoern Stremmel (not verified)
Das kann gut sein .. :-)
Wed, 03/25/2015 - 4:22pmDas kann gut sein .. :-)
Ich erstelle mir ja in /etc/init.d/ ein Startscript für Seafile .. ist weiter unten in diesem Beitrag. Das macht dann die Arbeit für mich.
Floria (not verified)
Hallo
Sat, 05/02/2015 - 10:22amHallo
Ich habe mit Begeisterung deiner Anleitung gefolgt, leider muss man zwischendurch ein paar dinge für den Seafile-User freigeben (oder in den root Nutzer springen) aber es funktioniert.
Leider habe ich ein Problem, wenn ich den Banana Pi mit einer 2,5" HDD am SATA Port betreibe. Nach einem reboot, egal ob die gesamte Installation auf der SATA Platte liegt oder ich die Platte nur in einen Ordner gemountet habe, ich bekomme keine Verbindung mehr.
Weder über die Lokale IP noch über die Websteite.
Das Merkwürdige ist aber, dass auf dem Pi alles zu laufen scheint! Alle Dienste sind gestartet...
Vielleicht kennst du das ja.
Lg Florian
Bjoern Stremmel (not verified)
Hallo Florian
Sun, 05/03/2015 - 2:29amHallo Florian
Das klingt in der Tat merkwürdig - und von so was habe ich auch noch nichts gehört. Was mir dazu erstmal spontan einfällt, wäre ein zu schwaches Netzteil.
Für die Banane + SATA sollte das Netzteil 2 Ampere bringen, sonst kann es da zu einem instabilen System führen.
Könnte es das sein? Wenn nicht, müssen wir da wohl ein wenig tiefer bohren.
Gruß Bjoern
Benjamin Goldberg (not verified)
nano /etc/nginx/sites
Tue, 05/05/2015 - 5:52pmnano /etc/nginx/sites-available/myCloud
ich bin ja dort immernoch als seafile user eingeloggt
dort kommt dann bei mir beim erstellen bzw abspeichern des Inhaltes [ Fehler beim Schreiben von /etc/nginx/sites-available/cloud: Keine Berechtigu ]
Woran kann das liegen
Bjoern Stremmel (not verified)
Wenn du Einstellungen an den
Tue, 05/05/2015 - 6:01pmWenn du Einstellungen an den Systemdateien vornimmst - und dazu gehören die Dateien in /etc/nginx/sites-available/ - geht das nur als Nutzer root ... Sorry, wenn das da vielleicht ein wenig durcheinander geht ..
Als seafile user musst du eigentlich nur eingeloggt sein, wenn du seafile installierst und konfigurierst. Den Rest kannst du als Nutzer root machen ..
Ich hoffe, so kommst du weiter.
Gruß Bjoern
Benjamin Goldberg (not verified)
Ok vielen Dank für die
Tue, 05/05/2015 - 6:06pmOk vielen Dank für die schnelle Antwort
Nun habe ich folgendes Problem
/etc/init.d/nginx restart
klappt einwandfrei
/etc/init.d/cloud restart
dort kommt
zsh: keine Berechtigung: /etc/init.d/cloud
Woran liegt das
Bjoern Stremmel (not verified)
Naja, den Dienst "cloud" gibt
Tue, 05/05/2015 - 9:53pmNaja, den Dienst "cloud" gibt es nicht ..
Also musst du nicht cloud neu starten musst, sondern entweder Seafile oder NginX .. am besten Beides ..
Dann sollte es keine Probleme mehr geben ..
Gruß Bjoern
Benjamin Goldberg (not verified)
Oben hast du aber folgendes
Wed, 05/06/2015 - 4:58pmOben hast du aber folgendes geschrieben:
und Seafile neu starten mit
/etc/init.d/meineCloud restart
Eventuell steh ich aber auch grad etwas auf dem Schlauch.
Bjoern Stremmel (not verified)
Ja .. unter Schritt 4
Thu, 05/07/2015 - 1:04amJa .. unter Schritt 4
Das ist für den Fall, dass du in dem Ordner /etc/init.d/ eine Datei "meineCloud" angelegt hast mit dem Inhalt, wie unter Schritt 4 beschrieben.
Das ist ein Startscript für Seafile .. zum Beispiel um Seafile beim booten automatisch zu starten.
OK, wenn du diese Startdatei "cloud" genannt hast, musst du vielleicht noch mit
<pre>
chmod u+x /etc/init.d/cloud
</pre>
diese Datei ausführbar machen .. Das wäre noch das Einzige Problem, dass ich sehe .. und du musst es als Nutzer root machen ..
Das sollte es aber dann auch wirklich gewesen sein ..
Gruß Bjoern
Michael (not verified)
Hallo Bjoern,
Mon, 06/29/2015 - 10:29pmHallo Bjoern,
kann es sein, dass man vor dem Befehl "/home/SEAFILE-USER/seafile-server-latest/seahub.sh start" noch den Befehl "
./seafile.sh start" eingeben muss? War bei mir jedenfalls so, wenn ja, kannst du es ja oben noch einbauen :)
Vielen Dank übrigens für deine ausführlichen Guides. Sie helfen mir viel als Pi- und Linuxneuling!
Michael (not verified)
Ach ja und dein angegebene
Mon, 06/29/2015 - 10:33pmAch ja und dein angegebene Befehl "cd seafile-server_VERSION" ging bei mir nur mit "cd seafile-server-VERSION" also zweimal Bindestrich, statt Unterstrich...
Igor (not verified)
Hallo Björn,
Thu, 07/09/2015 - 9:40amHallo Björn,
vielen Dank für Deine Arbeit und die Anleitung. Kannst Du noch die Stellen anpassen, wo du auf myCloud referenzierst, da dies manchmal so:
nano /etc/nginx/sites-available/myCloud
und manchmal so:
ln -s /etc/nginx/sites-available/mycloud /etc/nginx/sites-enabled
ausieht. Ansonsten top Anleitung und Danke.
Bjoern Stremmel (not verified)
Hmm gern! Aber in diesem Fall
Fri, 07/10/2015 - 12:27amHmm gern! Aber in diesem Fall muss es so, da mit /etc/nmginx/sites-available/myCloud ein virtueller Host gemeint ist, der für NginX angelegt wird.
Mit nano (ein Texteditor) wird die Datei dann bearbeitet und mit ln -s /etc/nginx/sites-available/mycloud /etc/nginx/sites-enabled wird die Seite dann aktiviert ...
Gruß vom Bjoern
p3t3r (not verified)
Hi Bjoern,
Fri, 07/24/2015 - 10:29pmHi Bjoern,
ich verstehe noch nicht ganz, wie das mit der Verschlüsselung und den Zertifikaten funktioniert, wenn man via nginx Baikal und SeaFile auf einem Banana Pi betreiben will.
Konkret gefragt: Wenn Baikal via HTTPS läuft, kann ich dann Seafile hinterher installieren oder muss ich aufpassen, dass da nicht durcheinander kommt?
Danke und Gruß
p3t3r
Bjoern Stremmel (not verified)
Heyho
Sat, 07/25/2015 - 10:20pmHeyho
Nein, da musst du erstmal nichts weiter beachten. Da sollte nichts durcheinander kommen. Du musst dann vielleicht bei der Config-Datei aufpassen, aber mehr auch nicht.
Gruß vom Bjoern.
Benedikt (not verified)
Hallo,
Tue, 08/04/2015 - 3:16pmHallo,
also ich arbeite mich gerade auch noch durch die Installation.
Dabei sind mir ein Paar Dinge aufgefallen:
[code] /etc/init.d/seafile-server start [/code] sollte [code]/etc/init.d/meineCloud start heißen [/code]
In Schritt 4 musste ich, wie beschrieben noch
[code]chmod u+x /etc/init.d/cloud [/code]
ausführen
Leider gibt es in der seahub_settings.py keinen Parameter "FILE_SERVER_ROOT"
Ich habe Version 4.0.6 insalliert.
Momentan erhalte ich beim starten: Error:Seahub failed to start.
Bjoern Stremmel (not verified)
Hallo Benedikt
Thu, 08/06/2015 - 3:26pmHallo Benedikt
Sorry - natürlich muss es <pre>/etc/init.d/meineCloud start </pre> heißen. Ich habe es verbessert. Danke für den Hinweis.
Ist jetzt schon ein weilchen her, dass ich Seafile installiert habe .. Ich weiß jetzt gar nicht mehr, ob der Parameter „FILE_SERVER_ROOT“ in der seahub_settings.py drin war. Wenn er nicht drin ist, dann füge ihn einfach hinzu.
Ich hoffe, du hast seafile mittlerweile am laufen ..
Gruß Bjoern
Benedikt (not verified)
Hallo Bjorn,
Sat, 08/08/2015 - 9:38amHallo Bjorn,
also seafile läuft inzwischen, allerdings ohne WebDAV.
Jedoch habe ich alles nochmals neu aufgesetzt und viel im Seafile Manual (welches sehr gut verständlich ist) gelesen bzw. nach dieser Anleitung garbeitet:
http://jankarres.de/2013/06/raspberry-pi-owncloud-alternative-seafile-se...
Die Vorgehenesweise ist hier sehr anschaulich und habe diese mit deiner gemischt:
1.) Seafile installieren (nur sqligt) -> testen
2.) auf SSL umstellen nur nginx installieren -> testen
3.) WebDAV einstellen -> testen (wobei des hier bei mir hängt)
Btw. Seafile ist nun hier gehostet: https://github.com/haiwen/seafile-rpi/releases/download/VERSION/seafile-... (aktuell 4.3.1)
WebDAV werde ich auch noch aktiviert bekommen ;)
Bjoern Stremmel (not verified)
Freut mich.
Sat, 08/08/2015 - 9:59amFreut mich.
Ja, die Anleitungen von Jan sind klasse. Er hatte nur den Apache verwendet und ich wollte NginX nutzen und das Setup aufschreiben.
Wenn du noch Fragen hast, kann ich gerne versuchen, dir da weiter zu helfen.
Und danke für den Hinweis. Ich werde den Link gleich anpassen.
Gruß Bjoern
Alex (not verified)
Hast du WebDAV mitlerweile
Tue, 09/29/2015 - 3:56pmHast du WebDAV mitlerweile zum laufen gebracht?
Eigentlich muss man ja nur diese Config ändern, bei mir will es aber auch nicht laufen. Vielleicht ein Problem weil hinter Router und No-IP DNS Dienst?
Vielleicht kannst du ja erzählen woran es bei dir gelegen hat.
Bjoern Stremmel (not verified)
Also No-Ip sollte kein
Fri, 10/02/2015 - 6:24pmAlso No-Ip sollte kein Problem sein - zumindest nicht, wenn dort die richtige IP hinterlegt ist.
Hinter Router ist auch kein Problem, wenn die entsprechenden Ports im Router frei geschaltet sind. Je nachdem, wie du es konfiguriert hast sind das normalerweise Port 80 für normales http://.. oder Port 443 für verschlüsseltes https://..
Ich hoffe, das hilft dir weiter ..
Gruß Bjoern
Alex (not verified)
Läuft alles außer WebDAV.
Tue, 10/06/2015 - 8:42pmLäuft alles außer WebDAV. Toll dass du hier immer noch kommentierst! Riesen Dankeschön dafür.
Ich werde bald noch einmal neu installieren, um dann gleich alles richtig zu machen (und hoffentlich geht dann auch WebDAV). Ein paar Dinge wüsste ich gern noch:
1)Momentan nutze ich Sqlite, habe aber eine 1TB HDD dran. Kannst du mir sagen, ob MySQL hier besser performen würde?
2)Kann man den Server irgendwie noch "sicherer" machen? Https ist ja gut, dann braucht man auch nur Port 443 wie ich gelesen habe. Aber reicht das aus, sofern man starke passes benützt?
3) Was wäre wenn ich nur http nutze ohne nginx https und ausschließlich verschlüsselte Bibliotheken nutzen würde? Die Verschlüsselung ist doch end-to-end. Der Inhalt der Daten dürfte also geschützt sein, oder? Allerdings gibt es ja den "Token" bei verschlüsselten Bibliotheken der temporär auf dem Server gelegt wird. Dieser wäre dann auf jeden fall abgreifbar oder?
Punkt 3 ist als Gedankenexperiment zu sehen. Wirklich wichtig wäre ob ich lieber Mysql nutzen soll. Wie ist eure Erfahrung so?
I
Frank (fherb) (not verified)
Ganz großen Dank, Bjoern!
Tue, 10/06/2015 - 8:54pmGanz großen Dank, Bjoern! (Oder mit ö?)
Mit den drei Beiträgen zu nginx/https+Seafile+Baikal hast Du mir ganz viel Arbeit erspart! :-) Deine Beschreibungen sind wahrhaft plug'n-play: Bis auf wenige persönliche Änderungen hab ich Deine Installationsbeschreibungen nachvollzogen und alles spielt tatsächlich auf Anhieb. Da ich mir das ursprünglich alles selber zusammensuchen, testen und nachher auf meinem Blog in vergleichbarer Form, wie Du hier, beschreiben wollte, kann ich mir das jetzt sparen. Ich hab trotzdem 'nen Blogeintrag gemacht und hier her verwiesen. Alleine schon, damit ich es wiederfinde, wenn ich es wieder brauch. :-D Denn meinen Blog führe ich auch deshalb, um getestete Dinge mir für die Ewigkeit zu notieren (bin vergesslich) und dabei gleichzeitig Anderen zur Verfügung zu stellen.
Gibt es neue Erkenntnisse zur Stabilität von Seafile? Schwächen gefunden? Die Meinungen im Netz zu Owncloud haben mich geschockt: Das Wichtigste, die Synchronisation, erfolgt nicht zuverlässig! Hab deshalb jetzt Seafile und Baikal gewählt. In meiner Umgebung habe ich Daten doppelt und dreifach gesichert. Wenn aber der Synchronisationvorgang, auf den man sich verlässt, nicht zuverlässig ist, ist ganz schnell auch die dritte Sicherungskopie hinfällig. Denn sowas merkt man oft erst, wenn es absolut zu spät ist.
Nochmals Danke und viele Grüße aus Dresden,
Frank
Bjoern Stremmel (not verified)
Hey Alex
Tue, 10/06/2015 - 11:24pmHey Alex
Na dafür war das ja hier gedacht: um sich auszutauschen. Daher versuche ich natürlich, hier alle Kommentare zu beantworten. Komme nicht ganz so oft dazu, wie ich gern möchte, aber naja .. :-)
zu 1: Also ich habe in der Testphase keinen Unterschied zwischen Sqlite und MySQL festgestellt - das waren da allerdings nur wenige Daten - verglichen zu dem, was da jetzt drauf läuft.
Da ich aber sowieso eine MySQL-DB gebraucht habe, hatte ich mich von vorne herein dafür entschieden.
Ich denke mal, der Unterschied ist marginal, da bei Zugriff über das Internet sowieso die Bandbreite der Flaschenhals wäre .. zumindest wenn das Ding bei dir zu hause steht. Aber MySQL ist an sich schon als stabiler und performanter anzusehen.
zu 2: Also naja, wenn du dem Router nur erlaubst, Anfragen auf Port 443 auf deinen Server durchzulassen, ist das schon ziemlich sicher. Die Webserver machen da weniger Probleme, als schlecht programmierte Webseiten. Aber das liegt dann ja nicht unbedingt in deiner Hand. Also viel mehr kannst du dann fast nicht mehr machen .. es sei denn, du legst dann noch ein Passwort auf die Webseite / den Dienst.
Aber dann streiken dann auch viele Programme, die mit diesen Diensten reden sollen.
zu 3: Da gibt es zwei Sachen zu bedenken:
a) Das Passwort für die Bibliothek wird unverschlüsselt übertragen
b) du kannst mit Seafile per WebDAV ( noch ) nicht auf verschlüsselte Bibliotheken zugreifen - zumindest ist das mein letzter Stand. Das sollte man sich vorher überlegen.
Und ja .. WebDAV ist ein wenig fisselig einzurichten - ich hoffe, du schaffst es im 2ten Anlauf.
Gruß vom Bjoern
Bjoern Stremmel (not verified)
Hey Frank
Tue, 10/06/2015 - 11:39pmHey Frank
Weiß nicht, warum, aber du bist irgendwie im Spam gelandet.
Ja, da nicht für .. Ich hab das unter anderem auch für mich aufgeschrieben, damit ich nie wieder suchen muss ;-)
Mit Owncloud bin ich leider irgendwann verzweifelt und ich hab es dann nach ewigem rumsuchen und rumprobieren irgendwann einfach sein lassen.
Zur Stabilität kann ich zu Beiden nur sagen: Top!!!
Seit das läuft, läuft es einfach und ich hatte nie Probleme damit. Der Datei-Upload vom Androiden hatte am Anfang ein paar mal gehakt, aber das hat sich mittlerweile auch erledigt.
Ansonsten synchronisieren sich meine Geräte bislang ohne jegliche Probleme .. und auch bei Seafile ist die Performance bei großen Bibliotheken einwandfrei.
Ich kann echt nichts negatives berichten.
Gruß zurück aus Berlin
vom Bjoern
Alex (not verified)
Zum Thema Stabilität
Wed, 10/07/2015 - 9:14amZum Thema Stabilität/Datensicherheit:
Was macht eigentlich der Server wenn er das seafile-data Verzeichnis (bei mir auf externer HDD) nicht mehr findet? Also die HDD fällt aus, dann wäre es natürlich fatal wenn der Server so tut als wären die Bibliotheken gelöscht und die auf den Clients auch löscht. Weiß jemand was seafile dann macht?
Habt ihr eigentlich ein Server-Backup? Die Seafile Daten kann man ja nur mit der Fuse-extention lesen (habe ich noch nicht hinbekommen), daher ist es mit externer USB-Platte am Pi ja nicht wirklich getan. Momentan schau ich einfach, dass jede Bibltiothek einmal auf den Dekstop gesynct ist.
Alex (not verified)
Danke dir! Echt klasse!
Wed, 10/07/2015 - 9:22amDanke dir! Echt klasse!
zu 1) Ich hatte v.a. im Zusammenhang mit Owncloud gelesen, dass Sqlite zwar empfohlen wird, im Feldversuch aber stark hinter Mysql zurückbleibt. Da geht es wohl nicht nur um die Nutzer sondern auch um die Anzahl der Dateien. Die PIs zählen ja nicht mehr zu den schwächsten Systemen, daher ist Mysql wohl vorzuziehen. Bisher hab ich aber noch keinen Flaschenhals festgestellt.
zu 2) Wenn man nur per Client Syncen will und eine FritzBox hat, dann könnte man ja auch nur Seafile installieren und sich mit VPN ins Netz einloggen oder? Das sei ja angeblich sicherer. Was hältst du davon?
Natürlich fallen dann die Dateifreigabe-Möglichkeiten mit der Außenwelt weg. Wer aber nur Heimrechner + Familie synchron halten möchte für den wäre das doch denkbar?
WebDAV ist ja von Seafile seite leicht einzurichten. Man muss doch wirklich ausschließlich die conf/seafdav.conf bearbeiten und noch eine nginx sites-enabled erstellen (analog zu seahub). Hab mir schon überlegt, ob ich vielleicht einfach die Clients falsch synchronisiere oder ob Android die Zertifikate ohne Meldung einfach nicht akzeptiert.
Naja so wichtig ist WebDAV nicht, wäre eher noch das Sahnehäubchen gewesen ;-)
Nils Wiemann (not verified)
Hallo, was ist mir den
Wed, 10/07/2015 - 11:40amHallo, was ist mir den Einstellungen hier:
Additional security settings for nginx (optional)
Add the HSTS header. If you already visited the https version the next time your browser will visit directly the https site and not the http. Prevent man-in-the-middle-attacks.
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
Disable exact server version in header. Prevent scans for vulnerable server.
server_tokens off;
Die kommen von der offiziellen Seite:
http://manual.seafile.com/deploy/https_with_nginx.html
Sollte man die noch mit rein nehmen?
Danke für Dein How To.
Nils
Alex (not verified)
Und in welche nginx config
Wed, 10/07/2015 - 12:21pmUnd in welche nginx config muss man das reinschreiben? ". Prevent scans for vulnerable server." klingt ja schon mal gut.
https sollte aber doch mit obiger config gar nicht möglich sein oder?
Alex (not verified)
Kannst du vielleicht mal das
Wed, 10/07/2015 - 12:22pmKannst du vielleicht mal das ganze
nano /etc/nginx/sites-available/myCloud inclusive webdav posten?
In deinem Tut ist es ja gestückelt, häng ich es aneinander geht es nicht.
Nils Wiemann (not verified)
In die site-available/seafile
Wed, 10/07/2015 - 2:00pmIn die site-available/seafile oder wie Du die genannt hast. In dem Beispiel hier wäre das:
nano /etc/nginx/sites-available/myCloud
Bei mir habe ich die eingetragen, habe nur gemerkt das der Sync dann nicht mehr funktioniert bis man die Option "Das Server-Zertifikat bei der HTTP-Synchronisation nicht überprüfen" im Clienten auswählt, dann geht es wieder.
Nils
Alex (not verified)
Nils ich glaube deine
Wed, 10/07/2015 - 2:53pmNils ich glaube deine Beobachtung hat mit der "Additional Security" nichts mehr zu tun. Bei der Client Version 4.1.6 (glaube ich) war http sync nur fakultativ. Die neueren Clients nutzen nur noch http als Protokoll. Als ich geupdatet hatte ging es auch zunächst nicht mit den Clients bis ich den Haken gefunden hatte. Die "Additional Security" hatte ich nicht reingeschrieben.
Vielleicht hast du aber auch Recht und wir hatten 2 unterschiedliche Ursachen.
Falls ich die Begriffe etwas falsch verwende verzeiht mir bitte, bin nur ein eingelesener nicht-programmierer.
Alex (not verified)
Das man die Zertifikate nicht
Wed, 10/07/2015 - 3:11pmDas man die Zertifikate nicht prüft ist natürlich eigentlich ein murks, weil es doch man-in-the-middle Attacken ermöglicht?
Eigentlich sollte man sein Zertifikat wohl signieren lassen. Habe das hier gefunden:
https://forum.seafile-server.org/t/kostenfreies-startssl-class-1-zertifi...
Einziger Haken. Ich glaube das kostenlose Zertifkat hält nur 1 Jahr? Das heißt den "Aufwand" muss man alle 12 Monate betreiben?
Nils Wiemann (not verified)
Wenn Du die hier machst:
Fri, 10/09/2015 - 10:48amWenn Du die hier machst:
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 365
Und hinten bei days 365 einträgst hast du auch nen 1 Jahres Zertifikat. ;-)
Ich bin echt am überlegen, ob man sich echt nen "umsonst" Zertifikat besorgt.
Das mit dem einen Jahr ist halt so. Ablaufen tun die alle irgendwann.
Schöner wäre es trotzdem.
Nils Wiemann (not verified)
Oh Mist,
Fri, 10/09/2015 - 11:57amOh Mist,
Start SSL geht nur mit Toplevel Domain...
Wenn man nen Seafile unter nem dyndns laufen hat geht die Zertifizierung leider nicht.
Oder weiß jemand nen Weg, außer Toplevel Domain kaufen...
Bjoern Stremmel (not verified)
Hey Alex.
Fri, 10/09/2015 - 5:22pmHey Alex.
Na da ich Seafile ja nutze, um mehrere Rechner synchron zu halten, ist ein Backup für mich nicht wirklich nötig.
Und es würde ja reichen, wenn du die Dateien auf dem Desktop sicherst.
Oder - das hab ich aber noch nicht versucht, könnte es auch sein, dass du die komplette Festplatte mit rsync auf eine externe Festplatte sichern und zurückspielen kannst, wie hier beschrieben
http://my5cent.spdns.de/banana-pi/banana-pi-system-auf-der-sata-platte-s...
Ist wie gesagt nicht getestet, könnte aber funktionieren.
Wenns mal einer versucht, kann er hier gerne Feedback geben.
Gruß Bjoern
Bjoern Stremmel (not verified)
Hey Nils
Fri, 10/09/2015 - 5:32pmHey Nils
Da nicht für. Wenn ich das richtig sehe, ist das nur für den Fall, dass du auch per http auf Seafile zugreifen kannst, was dann per rewrite auf https umgeleitet wird.
Spielt also keine Rolle, wenn man gleich per https zugreift und Zugriffe per http nicht erlaubt.
Gruß Bjoern
Bjoern Stremmel (not verified)
Also ich nutze den Client 4.3
Fri, 10/09/2015 - 5:44pmAlso ich nutze den Client 4.3.4 und habe mit meinem selbsterstellten Zertifikat keine Probleme .. ich synce allerdings nicht über http ..
Er sagt mir zwar beim Einrichten, dass das Zertifikat nicht sicher sei, bietet mir aber an, es trotzdem zu nutzen.
Das klappt einwandfrei.
Alex (not verified)
Schau mal bitte nach unter
Sat, 10/10/2015 - 10:47pmSchau mal bitte nach unter Einstellungen:
"Server zertifikat bei https Synchronisierung nicht überprüfen" ist bei dir angekreuzt oder nicht?
Was meinst du mit du syncst nicht über http? Ich dachte gelesen zu haben, dass die neuen Clienten nur noch http machen?
Bjoern Stremmel (not verified)
Ist definitiv nicht angehakt
Sun, 10/11/2015 - 11:15pmIst definitiv nicht angehakt ...
Und die Clients machen, was der Server sagt .. wenn der sich über andere Kanäle unterhalten möchte, machen die Clients das offenbar noch mit.
Nicolo Bächler (not verified)
Hallo
Mon, 10/12/2015 - 2:43pmHallo
Das Tutorial war eines von den Besten wenn nicht das Beste :)
Nun habe ich aber noch eine Frage welche Ports müsste ich freigeben um den Daten-Server auch von ausen zu erreichen?
Danke
Bjoern Stremmel (not verified)
Jau Hey
Mon, 10/12/2015 - 10:08pmJau Hey
Ja, das scheint gerade ein wenig schwierig zu sein .. Laut allen aktuellen Aussagen braucht jetzt nur noch der Port 80 offen sein, da Seafile jetzt über httü synchronisiert.
"Traditionell" waren für die früheren Installationen von Seafile folgende Ports zu öffnen (wenn du nichts verändert hast)
component default port
ccnet 10001
seaf-server 12001
fileserver 8082
seahub 8000
Schau mal, was dir da hilft :-)
Gruß Bjoern
Nils Wiemann (not verified)
Laut Doku sind es nur 8000
Tue, 10/13/2015 - 8:00pmLaut Doku sind es nur 8000 und 8082.
So habe ich heute auch noch eine Kiste Installiert!
Doku:
http://manual.seafile.com/deploy/using_firewall.html
Nils
Farshid (not verified)
Hallo,
Sun, 02/28/2016 - 7:09pmHallo,
danke für die tolle Anleitung.
Ich habe ein Problem, und zwar bei Schritt 2 (Seafile mit Https hinter NginX einrichten) wenn ich versuche die "ccnet.conf" via Editor zu öffnen, öffnet sich nur eine leere Seite ohne Dateien.
Können Sie mir vieleicht sagen, wo mein Fehler sein könnte?
Hier ist der Inhalt von /home/seafile-user:
ccnet/ logs/ seafile-data/ seafile-server-latest@ seahub-data/
conf/ pids/ seafile-server-5.0.4/ seafile-server_stable_5.0.4_pi.tar.gz
und der Inhalt von /home/ seafile-user/ccnet:
ccnet.sock= misc/ mykey.peer seafile.ini
Frank Werth (not verified)
Hallo Farshid,
Mon, 03/28/2016 - 4:05pmHallo Farshid,
seit der Seafile-Version 5.0 hat sich die Verzeichnisstruktur geändert. Es gibt jetzt unter dem Seafile-User-Verzeichnis ein Verzeichnis "conf" in dem die "ccnet.conf" und auch die "seahub-settings.py" liegen. Allerdings findest du in der "seahub-settings.py" den Eintrag "FILE_SERVER_ROOT " auch nicht mehr. Um den Wert zu ändern, muss du dich auf dem Seafile-Server über das Web-GUI einlogen und kannst dann dort über die Administrator-Seite diese Einstellung vornehmen.
Bei mir hängt es allerdings mit dem "https:-Zugriff". Seit ich die entsprechenden config-Dateien geändert habe, komme ich nicht mehr auf den Server. Der "http-Zugriff" hatte vorher einwandfrei funktioniert. Falls jemand dazu was beisteuern kann, wäre ich sehr erfreut.
Gruß Frank
Adam (not verified)
Hallo,
Tue, 08/02/2016 - 1:29pmHallo,
ich habe alles genauso gemacht wie du - Schritt für Schritt.
Seafile funktioniert zwar, aber nicht wie gewüscht auf "https://meineUrl/meineCloud" sondern nur auf "https://meineUrl/". Könntest du mir helfen?
Bjoern Stremmel (not verified)
Hey Adam
Tue, 08/02/2016 - 11:23pmHey Adam
Ich habe jetzt nicht so wirklich viele Infos .. also wenn du alles gemacht hast, wie oben beschrieben, dann ist das eigentlich richtig, dass du unter "https://meineUrl/" seafile erreichst. Die Adresse "https://meineUrl/meineCloud" wäre in diesem Fall die Adresse, unter der du via dem WebDAV-Protokoll auf deine Seafile-Cloud zugreifen kannst. Das ist dann nützich, wenn du zum Beispiel mit einem Datei-Manager auf die Dateien zugreifen möchtest, ohne das Komplette Ding zu synchronisieren ..
Also eigentlich alles gut :-)
Gruß Bjoern
techcom (not verified)
hallo bjoern,
Mon, 10/10/2016 - 3:17pmhallo bjoern,
vielen dank für deine super anleitung.
seafile läuft auf anhieb und nach allem was ich schon probiert habe
ist es die mit abstand beste lösung.
frage: kann ich jetzt nach deiner anleitung 'baikal' installieren? oder
gibt es eine bestimmte reihenfolge zu beachten, wenn ich beide server
auf nginx gleichzeitig laufen lassen will?
lg aus wien
techcom
Bjoern Stremmel (not verified)
Servus nach Wien :-)
Mon, 10/10/2016 - 5:36pmServus nach Wien :-)
Ist kein Problem. Du kannst Baikal bedenkenlos daneben installieren.
Nur ist meine Anleitung ein wenig outdated .. Das Flat-Package gibt es nicht mehr und du solltest vorher schauen, welche PHP-Version du drauf hast. (auf der Konsole "php -v" eingeben.)
Das aktuelle Baikal braucht PHP 5.50 oder höher. Zusätzlich haben sich die URL für CalDAV und CardDAV geändert.
Also am besten mal auf der Baikal-Seite schauen.
Ansonsten ist die Installation und Einrichtung aber gleich geblieben.
Viel Erfolg!!
Gruß Bjoern
Add comment