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 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 install python3 python3-setuptools python3-pip python3-pymysql fail2ban nginx mariadb-server-10.3 default-libmysqlclient-dev libmemcached-dev zlib1g-dev -y
sudo pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy django-pylibmc django-simple-captcha python3-ldap PyMySQL future mysqlclient
sudo python3 -m pip install PyMySQL
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/v8.0.5/seafile-server-8.0.5-buster-armv7l.tar.gz
tar xfvz seafile-server-8.0.5-buster-armv7l.tar.gz
mkdir installed
mv seafile-server-8.0.5-buster-armv7l.tar.gz installed/
In den entpackten Ordner wechsel und Installation starten:
cd seafile-server-8.0.5
./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:
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;
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 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
Ich hoffe die Anleitung hat dir geholfen. Unten habe ich noch ein Video eingebettet zum mitmachen. Ich freue mich auf Unterstüzung: PayPalMe
Wenn Seafile online erreichbar sein soll, verweise ich auf meinen Beitrag:
Wäre schön wenn du eine aktualisierte Anleitung von OwnCloud schreiben oder auf YouTube ein Video machen könntest das wäre sehr nett. Danke dir
Ich habe das Problem wenn ich
sudo mysql -u root eingebe komme ich dahin
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 49
Server version: 10.3.24-MariaDB-2+b1 Raspbian testing-staging
und komme nicht weiter, was muß ich tun.?
Als OS habe ich bullseye vom 30.10.21 genommen
Hallo,
Habe genau nach Anleitung installiert, hat bis jetzt auch keinen Fehler angezeigt. Nur beim Starten von seafile.sh kommt folgende Fehlermeldung:
seafile@wora-seafile:~/seafile-server-latest $ ./seafile.sh start
Starting seafile server, please wait …
./seafile.sh: Zeile 104: 9307 Ungültiger Maschinenbefehl LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} -c „${default_ccnet_conf_dir}“ -d „${default_seafile_data_dir}“ -F „${central_config_dir}“
Failed to start seafile server
seafile@wora-seafile:~/seafile-server-latest $
Irgendeine Idee woran es liegt ?
Danke und Gruß
Wolfram
Hallo,
bei mir erhalte ich einen Fehler, wenn ich „./seahub.sh“ start nach der Konfiguration ausführe. In der Mitte der Anleitung, wenn seahub gestartet wird.
„Error:Seahub failed to start.“
Ein „bash -xv ./seahub.sh start“ zeigt einen Abbruch bei
python3 /home/seafile/seafile-server-8.0.7/seahub/thirdpart/bin/gunicorn seahub.wsgi:application -c /home/seafile/conf/gunicorn.conf.py –preload
Gebe ich diesese Kommando dirket ein, dann erscheint:
Traceback (most recent call last):
File „/home/seafile/seafile-server-8.0.7/seahub/thirdpart/bin/gunicorn“, line 5, in
from gunicorn.app.wsgiapp import run
ModuleNotFoundError: No module named ‚gunicorn‘
Ab hier komme ich nicht mehr weiter. Ist es evtl. ein Problem gleich die Version 8.0.7 genutzt zu haben?
Vielen Dank und viele Grüße
Björn
Hi Stephan,
wenn ich die Webpage von Seafile nach dem aufsetzen aufrufe, werden die ganzen styles etc nicht angezeigt. Die Credentials kann ich zwar eingeben, aber nach dem login erscheint eine weiße Seite. Weißt du woran das liegen könnte?
vielen dank für das tolle tutorial. ein kleiner fehler hat sich im `wget` download link eingeschlichen. richtig muss es heissen: `wget https://github.com/haiwen/seafile-rpi/releases/download/v8.0.5/seafile-server-8.0.5-buster-armv7l.tar.gz` der dateiname muss natürlich auch in `tar` und `mv` geändert werden.
danke für den Hinweis. Link ist im Beitrag aktualisiert.
hallo stephan
ich hoffe du kannst mir helfen
beim Absatz ./setup-seafile-mysql.sh
muss man den root Passwort eingeben und ab da
kommt bei mir diese Fehlermeldung:
Failed to connect to mysql server using user „root“ and password „***“: Access denied for user ‚root’@’localhost‘ (using password: YES)
ich komme einfach nicht weiter kannst du mir helfen??
Ich danke im vorraus
Hallo Giovanni,
hast du dem MySQL Root User denn überhaupt ein Passwort gegeben? Steht relativ weit oben in der Anleitung 😉
Viele Grüße
Stephan
Natürlich habe ich gemacht hat alles geklappt das Problem kommt hier:
./setup-seafile-mysql.sh
hier muss man ja der Name des Servers und die IP Adresse usw. danach das root Passwort das man
vorher bei
update mysql.user set password=password(‚geheim‘) where user=’root‘;
geheim eingegeben hat und hier wird das Passwort nicht akzeptiert und wie gesagt kommt die
Fehlermeldung:Failed to connect to mysql server using user „root“ and password „***“: Access denied for user ‚root’@’localhost‘ (using password: YES)
Ab da geht es nicht weiter
Ich habe zwar von dir das Image gekauft wollte aber die deine Einleitung durch spielen und es selber
machen dieses Problem kommt anscheinend oft vor bei mysql oder mariadb wegen der zweifachen
Authentifizierung
vielleicht kannst du mir helfen danke im voraus
Moin,
danke fuer das Tutorial. Um Downloadlinks direkt funktional anzubieten musste ich
nano seahub_settings.py
FILE_SERVER_ROOT = ‚http://hostname/seafhttp‘
durch
nano seahub_settings.py
FILE_SERVER_ROOT = ‚http://hostname/‘
ersetzen.
Gruss,
Bernd
Moin,
danke für dein Feedback. Wäre mir tatsächlich neu. Meinst du ggf die ccnet.conf? Auch die offizielle Anleitung (manual.seafile.com) beschreibt seafhttp für den FILE_SERVER_ROOT…
Viele Grüße
Stephan
Moin,
Bei mir hatten die Links alle das seafhttp mit eingebaut. Wenn ich es manuell entfernt hatte, hat es geklappt. Nach entfernen von seafhttp aus der seahub_config.py wurde das seafhttp bei der Linkgenerierung weggelassen und die Links haben direkt funktioniert. Ich habe gleich Version 8.0.5 installiert, keine Ahnung, ob das einen Einfluss hat.
Schönen Gruß,
Bernd
sudo apt-get install python3-pymysql
fehlt
stimmt, danke. Ist nachgetragen.
Hi Stephan,
erstmal vielen Dank für die ausführliche Anleitung.
Ich habe mein Pi neu aufgesetzt, update und Upgrade gemacht und bin Schritt für Schritt nach deiner Anleitung gegangen.
Nun bekomme ich bei folgendem Schritt eine Fehlermeldung:
sudo pip3 install –timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy django-pylibmc django-simple-captcha python3-ldap
Fehlermeldung:
Failed building wheel for Pillow
und
Command „/usr/bin/python3 -u -c „import setuptools, tokenize;__file__=’/tmp/pip-install-l0tvdnqr/Pillow/setup.py‘;f=getattr(tokenize, ‚open‘, open)(__file__);code=f.read().replace(‚\r\n‘, ‚\n‘);f.close();exec(compile(code, __file__, ‚exec‘))“ install –record /tmp/pip-record-7w6udl34/install-record.txt –single-version-externally-managed –compile“ failed with error code 1 in /tmp/pip-install-l0tvdnqr/Pillow/
Hoffe, du kannst mir weiterhelfen.
Hi, das hat mir geholfen:
sudo apt-get install libmemcached-dev
sudo apt-get install zlib1g-dev
Hallo Stephan,
erst einmal vielen Dank für deine ausführlichen und präzisen Anleitungen.
Ich habe Seafile bereits seit längerer Zeit auf einem Raspberry PI 4 am Laufen und gestern nun auf die aktuelle Version 8.0.5 aktualisiert.
Auch ist es mir gelungen, den Seafile-Server online zu bringen.
Allerdings habe ich derzeit (noch immer) das Problem der extrem schlechten Performance bei der Dateisynchronisatin. Mehr als 6MB/s ist trotz sehr schneller USB-3.0-SSDs nicht möglich. Dabei ist der Raspberry PI kaum unter Last.
So wie ich verstanden habe, gibt es die fastcgi-Option nicht mehr. Woran kann es liegen, dass das System so langsam ist? Hast du eine Idee?
Danke vorab und viele Grüße,
Thorsten