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 +++++

bei No-IP.com

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'