Raspberry PI Seafile Installation Anleitung Version 6
Die Befehle in meinem Text hervorgehoben.
sudo apt-get update
(hiermit starte man das Update des Betriebssystems. Auch später kann dieser Befehl zum aktualisieren des Systems genutzt werden)
sudo apt-get upgrade
(hiermit wird das geladen Update dann installiert und das System somit upgegradet. Auch später kann dieser Befehl zum aktualisieren des Systems genutzt werden)
sudo raspi-config
(hiermit konfiguriert sich die Software)
"Expand Filesystem"
(durch das Betriebssystem wurde die Festplatte verkleinert. Um die Platte wieder auf volle Größe zu bringen nutzt man diesen Befehl. Hierbei einfach “Expand Filesystem“ auswählen und System neu starten)
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-urllib3 sqlite3
(hiermit wird das benötigte python installiert)
sudo adduser seafile
(dadurch wird ein Benutzer „seafile“ anlegen. Man kann ihn auch gern anders benennen. Dieser Benutzer soll später für das Seafile zuständig sein)
Passwort vergeben!
sudo su seafile
(mit su … wechselt man in den jeweiligen Benutzer)
cd
mkdir seafile
(mit „mkdir“ wird ein Ordner „seafile“ anlegen)
cd seafile
(mit „mkdir“ wird ein Ordner „seafile“ anlegen)
wget https://github.com/haiwen/seafile-rpi/releases/download/v6.0.4/seafile-server_6.0.4_stable_pi.tar.gz
(mit diesem Befehl wird nun die aktuellste Version von Seafile herunter geladen. Den genauen Link entnimmt man direkt von der Webseite.)
tar -xvf seafile-server_6.0.4_stable_pi.tar.gz
(Hiermit wird das geladen Archiv entpackt)
rm seafile-server_6.0.4_stable_pi.tar.gz
(Nach dem Entpacken kann das Archiv mit „rm“ gelöscht werden)
mv seafile-server-6.0.4 seafile-server
(Der Ordner wird mit „mv“ umbenannt)
cd seafile-server
(mit gehen mit „cd“ in den ungenannten Ordner“)
./setup-seafile.sh
(Hier führen wir den Befehl für das Setup aus)
Server: (Namen eintragen)
ip/Domain: (IP eintragen)
seafile data dir: /home/seafile/seafile/seafile-data
fileserver Port: 8082
(standard)
ulimit -n 30000
(Limit der offenen Dateien erhöhen)
./seafile.sh start
./seahub.sh start 8000
+++++ seafile ist nun unter IP oder Domain:8000 erreichbar +++++
Vorbereitung Seafile auf HTTPS
nano /home/seafile/seafile/conf/ccnet.conf
(mit dem Befehl gelangt man in die Seafile Konfiguration)
SERVICE_URL = http://IPADRESSE:8000
Dies wird geändert auf...
SERVICE_URL = https://IPADRESSE:8001
(die config speichern und verlassen)
nano /home/seafile/seafile/conf/seahub_settings.py
(mit dem Befehl gelangt man in die Seahub Konfiguration)
HTTP_SERVER_ROOT = 'http://PIADRESSE:8000/seafhttp'
Dies wird geändert auf...
HTTP_SERVER_ROOT = 'https://IPADRESSE:8001/seafhttp'
(sollte der Eintrag nicht vorhanden sein einfach einfügen)
(die config speichern und verlassen)
Nun Stoppt man seahub und startet es ab sofort nur noch mit „start-fastcgi“ am Ende
/home/seafile/seafile/seafile-server-latest/seahub.sh stop
/home/seafile/seafile/seafile-server-latest/seahub.sh start-fastcgi
+++++ nginx installieren +++++
su pi
sudo apt-get install nginx
(hiermit wird „nginx“ installiert)
sudo sed -i "s/worker_processes 4;/worker_processes 1;/g" /etc/nginx/nginx.conf
sudo sed -i "s/worker_connections 768;/worker_connections 128;/g" /etc/nginx/nginx.conf
sudo /etc/init.d/nginx start
(alle Befehle nach und nach ausführen)
+++++ nginx einrichten +++++
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl genrsa -out seahub.key 4096
sudo openssl req -new -sha256 -key seahub.key -out seahub.csr
Nun müssen wir ein selbst signiertes SSL Zertifikat erstellen.
Dies können wir mittels folgenden Befehlen bewerkstelligen.
Dabei werden beim vorletzten Befehl mehrere Fragen gestellt.
Bei Country Name geben wir DE (ggf. abweichend) an.
Bei Common Name die verwendete IP-Adresse oder DynDNS Domain.
Alle anderen Felder können wir mittels Enter überspringen.
sudo openssl x509 -req -sha256 -days 3650 -in seahub.csr -signkey seahub.key -out seahub.crt
sudo nano /etc/nginx/sites-available/seahub
(nginx config datei erstellen)
(mit „sudo nano“ wir eine neue Datei erstellt. Kopiert den Text und fügt ihn in die Datei ein und ändert die nötigen Felder ab die groß geschrieben sind)
Anstelle WWW.DEINEDOMAIN.DE bitte die richtige IP oder DynDNS Adresse eingeben!
+++++
server { listen 8001; ssl on; ssl_certificate /etc/nginx/ssl/seahub.crt; # Pfad zu Ihrem cacert.pem ssl_certificate_key /etc/nginx/ssl/seahub.key; # Pfad zu Ihrem privkey.pem server_name www.yourdoamin.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/seafile/seafile-server-latest/seahub; } }
++++
(speichern und verlassen)
sudo ln -s /etc/nginx/sites-available/seahub /etc/nginx/sites-enabled/seahub
++++
sudo /etc/init.d/nginx restart
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start
(hiermit startet man „nginx“ neu)
+++++ Autostart Seafile mit SSL +++++
(jetzt noch den Autostart konfigurieren damit das Seafile nach dem Start vom Raspberry PI mit gestartet wird)
sudo nano /etc/systemd/system/seafile.service
Folgenen Inhalt OHNE ++++ einfügen.
++++
[Unit]
Description=Seafile
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target
[Service]
Type=oneshot
ExecStart=${seafile_dir}/seafile-server-latest/seafile.sh start
ExecStop=${seafile_dir}/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
++++
sudo nano /etc/systemd/system/seahub.service
Folgenen Inhalt OHNE ++++ einfügen.
++++
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
# change start to start-fastcgi if you want to run fastcgi
ExecStart=${seafile_dir}/seafile-server-latest/seahub.sh start
ExecStop=${seafile_dir}/seafile-server-latest/seahub.sh stop
User=seafile
Group=seafile
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
++++
sudo systemctl enable seafile.service
sudo systemctl enable seahub.service
sudo nano /etc/rc.local
(hiermit gehen geht man in die „rc.local“ wo folgende Befehle eingetragen werden)
++++
sudo /etc/init.d/nginx start su seafile -c '/home/seafile/seafile/seafile-server-latest/seafile.sh start' su seafile -c '/home/seafile/seafile/seafile-server-latest/seahub.sh start-fastcgi' su seafile -c /etc/systemd/system/seafile.service su seafile -c /etc/systemd/system/seahub.service
++++
(die Befehle müssen vor dem Ende eingetragen werden. Dann speichern und verlassen)
+++++ Fertig +++++
+++++ Feste IP vergeben +++++
sudo service dhcpcd status sudo nano /etc/dhcpcd.conf interface eth0 static ip_address=IPADRESSE static routers=IPADRESSE static domain_name_servers=IPADRESSE sudo /etc/init.d/networking restart sudo shutdown -r 0
+++++ Ende +++++
+++++ noIP +++++
wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz tar xf noip-duc-linux.tar.gz rm noip-duc-linux.tar.gz mv noip-* noip cd noip sudo make install sudo noip2 crontab -e @reboot cd /home/pi/noip && sudo noip2
+++++ Ende +++++
Nun sollte Seafile über die jeweilige IP erreichbar sein
https://IPADRESSE:8001
Hier kann man sich mit seinem angelegten Benutzer einloggen.
+++++ notwendige Einstellungen +++++
(unter Einstellungen müssen noch SERVICE URL und SERVER ROOT wie folgt angepasst werden)
SERVICE_URL = https://IPADRESSE:8001
HTTP_SERVER_ROOT = 'https://IPADRESSE/seafhttp'