Raspbian Bullseye – Seafile 9 – V 9.0.2

Passend zum Raspbian OS „Bullseye“ ist auch eine neue Version von Seafile für den Raspberry veröffentlich.
Die aktualisierte Anleitung in diesem Beitrag.

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.*

Hier das Video zu dieser Anleitung zum mitmachen: Anleitung A-Z – Seafile 9 auf RaspberryPi Raspbian Bullseye installieren

Als erstes das Tool Imager herunterladen: Raspberry Imager

Installieren, starten, OS und SD Karte wählen, write, SD Karte entfernen, neu einstecken, leere Datei ohne Dateiendung mit Namen „ssh“ 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
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-get install python3 python3-setuptools python3-pip python3-pymysql fail2ban nginx mariadb-server-10.3 default-libmysqlclient-dev libmemcached-dev memcached zlib1g-dev -y
sudo pip3 install --timeout=3600 django==3.2.* Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 django-pylibmc django-simple-captcha python3-ldap mysqlclient pycryptodome==3.12.0 cffi==1.14.0 PyMySQL future mysqlclient

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/v9.0.2/seafile-server-9.0.2-bullseye-arm32v7l.tar.gz
tar xfvz seafile-server-9.0.2-bullseye-arm32v7l.tar.gz
mkdir installed
mv seafile-server-9.0.2-bullseye-arm32v7l.tar.gz installed/

In den entpackten Ordner wechsel und Installation starten:

cd seafile-server-9.0.2
./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.

Nun kann Seafile und Seahub erstmal gestartet werden:

./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;

         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 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
cd conf
nano seahub_settings.py

SERVICE_URL = 'http://hostname' #oder IP-Adresse
FILE_SERVER_ROOT = 'http://hostname/seafhttp'

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

sudo systemctl start seafile seahub

Ich hoffe die Anleitung hat dir geholfen. Ich freue mich auf Unterstüzung: PayPalMe

Wenn Seafile online erreichbar sein soll, verweise ich auf meinen Beitrag:

Seafile Online bringen und SSL-Zertifikat erstellen

4 Gedanken zu „Raspbian Bullseye – Seafile 9 – V 9.0.2“

  1. Hallo Stephan, vielen Dank für deine Anleitung. Mit dieser ist es mir gelungen Seafile zu installieren. Eine echte Alternative zu anderen Clouds wenn man diese auf den RPi betreibt. Weiter so.

  2. Hallo Stephan.
    Dank deiner Anleitung ging die Installation problemlos auf den Raspi und funktioniert einwandfrei.
    Seafile bietet laut deren Dokumentation auch einen Zugriff per REST-API an.
    Wie kann man dies auf dem Raspi aktivieren oder besteht der Zugriff über die API bereits nach der Installation?
    Scenario: Der Raspi befindet sich lokal im Heimnetz. Von außerhalb des Heimnetzes möchte ich über NodeRed/n8n (auch auf dem Raspi) per http-Request über die REST-API auf Seafile zugreifen um Files hochzuladen oder shares für den Download zu erzeugen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

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