Seafile Version 7.1.4 auf Raspberry installieren

Eine neue Version von Seafile ist veröffentlicht worden. Grund für mich die Anleitung einmal zu überarbeiten. Hier zeige ich dir von A – Z, wie du Seafile auf deinem Raspberry Pi zum laufen bekommst.

Vorraussetzung ist, dass du einen RaspberryPi mit SD Karte und Stromversorgung hast. Außerdem weißt du, wie du die IP-Adresse des Raspberry herausbekommst, wenn du diesen an dein Netzwerk anschließt.

Ich nutze hier einen RaspberryPi 3B*, ein GeekPi Gehäuse*, ein Netzteil mit An-/Ausschalter* und eine 32 GB SanDisk Ultra.*

Als erstes das Toll Imager herunterladen: Raspberry Imager

Installieren, starten, OS und SD Karte wählen, write, SD Karte entfernen, neu einstecken, leere Datei ohne Dateiendung hinzufügen. SD Karte entfernen, in Raspberry stecken, Lan und Strom dran und los gehts 🙂

Ich starte immer mit einer kurzen Konfiguaration (raspi-config, Hostname, Local, Timezone), welche aber nicht zwingend nötig ist. Außerdem erstelle ich einen neuen Benutzer und deaktivere den Benutzer „pi“:

sudo su
adduser admin
passwd admin
usermod -g users admin
gpasswd -a admin ssh
gpasswd -a admin sudo
usermod -L pi
passwd -l pi
reboot now

In meinem Fall heißt der neue Benutzer „admin“ und „pi“ kann sich nicht mehr anmelden.

Nach einem sudo apt update && sudo apt upgrade -y können die Pakete installiert werden:

sudo apt install python3 python3-setuptools python3-pip fail2ban nginx mariadb-server-10.0 -y

Nun muss ein Root-Passwort für Mysql vergeben werden:

sudo mysql -u root
update mysql.user set password=password('geheim') where user='root';
update mysql.user set plugin='' where user='root';
flush privileges;
quit

geheim ersetzt du durch dein Passwort.

Neuen Benutzer Seafile anlegen und in den Benutzer wechseln:

sudo adduser seafile
sudo su seafile
cd

Archiv herunterladen, entpacken und in Ordner „installed“ verschieben (sieht einfach schöner aus):

wget https://github.com/haiwen/seafile-rpi/releases/download/v7.1.4/seafile-server_7.1.4_pi-buster-stable.tar.gz
tar xfz seafile-server_7.1.4_pi-buster-stable.tar.gz
mkdir installed
mv seafile-server_7.1.4_pi-buster-stable.tar.gz installed/

In den entpackten Ordner wechsel und Installation starten:

cd seafile-server-7.1.4
./setup-seafile-mysql.sh

Servernamen vergeben, IP Adresse des Pi eingeben, „1“ wählen für neue Datenbank erstellen, mysql root Passwort eingeben, mysql Passwort für Benutzer seafile vergeben, der Rest kann mit Enter übersprungen werden.

Bevor Seafile/Seahub gestartet werden kann muss eine Verknüpfung angelegt werden:

cd
cd seafile-server-latest/seafile/lib
ln -s python3.7 python3.6

Nun kann Seafile und Seahub erstmal gestartet werden:

cd
cd seafile-server-latest
./seafile.sh start
./seahub.sh start

E-Mail und Passwort für den Admin-User festlegen und im Anschluss Seafile und Seahub erstmal wieder stoppen:

./seahub.sh stop
./seafile.sh stop
exit

Jetzt wird die Autostart angelegt und nginx konfiguriert:

sudo nano /etc/systemd/system/seafile.service

Folgendes einfügen und speichern mit Strg + O und schließen mit Strg + X:

[Unit]
Description=Seafile
After=network.target mysql.service

[Service]
Type=forking
ExecStart=/home/seafile/seafile-server-latest/seafile.sh start
ExecStop=/home/seafile/seafile-server-latest/seafile.sh stop
User=seafile
Group=seafile

[Install]
WantedBy=multi-user.target

Speichern und Schließen.

sudo nano /etc/systemd/system/seahub.service
[Unit]
Description=Seafile hub
After=network.target seafile.service

[Service]
Environment="LC_ALL=C"
Type=forking
ExecStart=/home/seafile/seafile-server-latest/seahub.sh start
ExecStop=/home/seafile/seafile-server-latest/seahub.sh stop
User=seafile
Group=seafile

[Install]
WantedBy=multi-user.target

Speichern und Schließen und aktiveren:

sudo systemctl enable seafile seahub
sudo nano /etc/nginx/sites-available/seafile.conf

Folgende config einfügen, speichern und schließen:

server {
    listen 80;
    server_name _;

    proxy_set_header X-Forwarded-For $remote_addr;

    location / {
         proxy_pass         http://127.0.0.1:8000;
         proxy_set_header   Host $host;
         proxy_set_header   X-Real-IP $remote_addr;
         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header   X-Forwarded-Host $server_name;
         proxy_read_timeout  1200s;


         # used for view/edit office file via Office Online Server
         client_max_body_size 0;

         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;
	proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

	proxy_connect_timeout  36000s;
	proxy_read_timeout  36000s;
	proxy_send_timeout  36000s;

	send_timeout  36000s;

	access_log      /var/log/nginx/seafhttp.access.log;
	error_log       /var/log/nginx/seafhttp.error.log;
    }
    location /media {
        root /home/seafile/seafile-server-latest/seahub;
    }
}

Standardconfig löschen und neue Verknüpfung erstellen:

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default
sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf

Wir testen die Konfiguration (sollte successful wiedergeben), reloaden nginx und passen die Seafile-Konfiguration an:

sudo nginx -t #Ergebnis sollte "Syntax ok" lauten
sudo nginx -s reload
sudo su seafile
cd conf
nano ccnet.conf
SERVICE_URL = http://hostname #oder IP-Adresse

Speichern und schließen.

nano seahub_settings.py
FILE_SERVER_ROOT = 'http://hostname/seafhttp'

Speichern, schließen und Benutzer Seafile verlassen, dann kann Seafile gestartet werden 🙂

sudo systemctl start seafile seahub
Tutorial Seafile 7.1.4 Installation

Wenn Seafile online erreichbar sein soll, kann ich nur auf meinen Beitrag verweisen:

Seafile Online bringen und SSL-Zertifikat erstellen

One thought on “Seafile Version 7.1.4 auf Raspberry installieren

  1. Hi Stephan,
    I’m trying to follow your guide (that is very well explained) installing seafile on my raspberry pi but I’m facing an errore while running setup-seafile-mysql.sh script. In particular, after entering all the info requested by the script, I end up with „Generating ccnet configuration … Error: Failed to generate ccnet configuration“. Could you please help me? Thank you

    1. Hi Riccardo,

      I never had that problem, I think there is a permission problem.

      Try the following command as root user:

      usermod -a -G users seafile

      Now start the setup again, maybe you need delete the conf directory first (you will get an error with this information if needed).

      Best regards
      Stephan

      1. Hi Stephan,

        I’ve just tried what you proposed, but same issue. Tried also to delete conf folder, but anything changed. I’m trying to install seafile on an older version of raspberry (I think it’s raspberry pi model b, the first model b). Maybe there is something not compatible. I know that seems to be strange, but it’s the only thing I can think about.

      2. Hi Riccardo,

        you tried to upgrade seafile? Seafile was running before on your Pi?
        On Raspberry Pi Model 1 I never made Seafile run (Version 7), don’t know why. Try to make it run on Raspberry Pi 2 if you have that model (I tried it and it worked).
        If you only have this old Pi, try to install older version (Verion 6).

  2. Vielen Dank für die Anleitung! Nachdem ich gestern von Version 7.0.3 auf 7.1.4 upgraden wollte (und auch die besonderen Installationsaleitungen von Seafile beachtet und durchgeführt habe) ging nichts mehr. Auch mein Backup wollte nicht mehr. Daher kurzerhand ein letztes Mal den RBPi komplett neu aufgesetzt und Seafile neu installiert. Passiert das noch einmal, werde ich wohl NextCloudPi ausprobieren. Die ewigen Updgrade Probleme nerven mich immer mehr.
    Aber mit dieser Anleitung ging das sehr schnell wieder einzurichten und werde meine Anleitung dahingehend aktualisieren.

    1. Hallo Sascha,

      danke für dein Feedback. Freut mich das dir meine Anleitung geholfen hat. Schade das das Upgrade problematisch für war…
      Nextcloud ist keine schlechte Alternative. Ich hatte mich für seafile aufgrund der Performance entschieden. Nextcloud benötigt sehr viel RAM und bei upload und download bei seafile mithalten zu können, bietet dafür andere coole Features…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.