Kavita auf dem Raspberry Pi installieren

Wer viele eBooks besitzt und diese gerne zentralisiert speichern möchte, hat vielleicht schon etwas von Kavita gehört. Es ist ein open-source Buchserver der viele eBook-Formate lesen kann. Dabei werden unterschiedliche Plattformen wie Linux, Windows und Docker unterstützt. Auch für den Raspberry Pi gibt es eine ARM Version, die ich für meinen Raspberry PI 4 benötige.
Die Installation ist relativ einfach. Ladet mit wget die richtige Version für euch herunter. Nicht zwingend erforderlich aber doch von Vorteil ist die Anlage eines neuen Benutzers, der die erforderlichen Rechte auf dem Verzeichnis hat.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd /opt/
sudo wget https://github.com/Kareadita/Kavita/releases/download/v0.7.8/kavita-linux-arm.tar.gz
sudo tar xfvz kavita-linux-arm.tar.gz
sudo useradd kavita
sudo passwd kavita
sudo chown -R kavita:kavita Kavita/
cd /opt/ sudo wget https://github.com/Kareadita/Kavita/releases/download/v0.7.8/kavita-linux-arm.tar.gz sudo tar xfvz kavita-linux-arm.tar.gz sudo useradd kavita sudo passwd kavita sudo chown -R kavita:kavita Kavita/
cd /opt/
sudo wget https://github.com/Kareadita/Kavita/releases/download/v0.7.8/kavita-linux-arm.tar.gz
sudo tar xfvz kavita-linux-arm.tar.gz
sudo useradd kavita
sudo passwd kavita
sudo chown -R kavita:kavita Kavita/

Wer Kavita nicht immer manuell starten möchte, kann auch einen eigenen systemd Service generieren. Legt dafür einfach eine neue kavita.service Datei unter /etc/systemd/system an und kopiert den nachfolgenden Block hinein.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[Unit]
Description=Kavita Server
After=network.target
[Service]
User=kavita
Group=kavita
Type=simple
WorkingDirectory=/opt/Kavita
ExecStart=/opt/Kavita/Kavita
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
[Unit] Description=Kavita Server After=network.target [Service] User=kavita Group=kavita Type=simple WorkingDirectory=/opt/Kavita ExecStart=/opt/Kavita/Kavita TimeoutStopSec=20 KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target
[Unit]
Description=Kavita Server
After=network.target

[Service]
User=kavita
Group=kavita
Type=simple
WorkingDirectory=/opt/Kavita
ExecStart=/opt/Kavita/Kavita
TimeoutStopSec=20
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Danach könnt ihr die Systemd Konfigurationsdateien und Units neu laden. Die zweite Codezeile startet Kavita und die dritte fügt es zum Startup hinzu.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl daemon-reload
sudo systemctl start kavita.service
sudo systemctl enable kavita.service
sudo systemctl daemon-reload sudo systemctl start kavita.service sudo systemctl enable kavita.service
sudo systemctl daemon-reload
sudo systemctl start kavita.service
sudo systemctl enable kavita.service

Falls ihr keinen neuen Service definieren wollt, könnt ihr Kavita wie folgt, über den vorher neu erstellten User, starten.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/opt/Kavita# sudo su kavita
kavita@raspberrypi4:/opt/Kavita$ ./Kavita
[Kavita] [2023-10-12 20:34:23.500 +02:00 1] [Information] API.Services.TaskScheduler Scheduling reoccurring tasks
[Kavita] [2023-10-12 20:34:23.686 +02:00 1] [Debug] API.Services.TaskScheduler Scheduling Scan Library Task for daily
[Kavita] [2023-10-12 20:34:24.433 +02:00 1] [Debug] API.Services.TaskScheduler Scheduling Backup Task for daily
[Kavita] [2023-10-12 20:34:24.607 +02:00 1] [Information] API.Services.TaskScheduler Scheduling Auto-Update tasks
[Kavita] [2023-10-12 20:34:24.615 +02:00 1] [Debug] API.Services.TaskScheduler Scheduling stat collection daily
[Kavita] [2023-10-12 20:34:24.880 +02:00 4] [Information] API.Program Running Migrations
[...]
/opt/Kavita# sudo su kavita kavita@raspberrypi4:/opt/Kavita$ ./Kavita [Kavita] [2023-10-12 20:34:23.500 +02:00 1] [Information] API.Services.TaskScheduler Scheduling reoccurring tasks [Kavita] [2023-10-12 20:34:23.686 +02:00 1] [Debug] API.Services.TaskScheduler Scheduling Scan Library Task for daily [Kavita] [2023-10-12 20:34:24.433 +02:00 1] [Debug] API.Services.TaskScheduler Scheduling Backup Task for daily [Kavita] [2023-10-12 20:34:24.607 +02:00 1] [Information] API.Services.TaskScheduler Scheduling Auto-Update tasks [Kavita] [2023-10-12 20:34:24.615 +02:00 1] [Debug] API.Services.TaskScheduler Scheduling stat collection daily [Kavita] [2023-10-12 20:34:24.880 +02:00 4] [Information] API.Program Running Migrations [...]
/opt/Kavita# sudo su kavita
kavita@raspberrypi4:/opt/Kavita$ ./Kavita
[Kavita] [2023-10-12 20:34:23.500 +02:00  1] [Information] API.Services.TaskScheduler Scheduling reoccurring tasks
[Kavita] [2023-10-12 20:34:23.686 +02:00  1] [Debug] API.Services.TaskScheduler Scheduling Scan Library Task for daily
[Kavita] [2023-10-12 20:34:24.433 +02:00  1] [Debug] API.Services.TaskScheduler Scheduling Backup Task for daily
[Kavita] [2023-10-12 20:34:24.607 +02:00  1] [Information] API.Services.TaskScheduler Scheduling Auto-Update tasks
[Kavita] [2023-10-12 20:34:24.615 +02:00  1] [Debug] API.Services.TaskScheduler Scheduling stat collection daily
[Kavita] [2023-10-12 20:34:24.880 +02:00  4] [Information] API.Program Running Migrations
[...]

Öffnet nun die Seite mit http://raspberrypi4:5000 in eurem Browser. Kavita lauscht standardmäßig auf den Port 5000. Sollte dies nicht klappen, überprüft, ob der Prozess überhaupt gestartet ist. Im nächsten Codeblock zeige ich einmal den Weg mittels systemctl und den ohne. Mit Systemctl sollte ein Active (running) vorhanden sein, sowie eine PID. Unabhängig, ob ihr das mit systemctl macht, könnt ihr auch mit „ps“ überprüfen, ob ein Prozess läuft. Mittels „netstat“ überprüft ihr letztendlich, ob ein Service auf den Port 5000 lauscht.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
]pi@raspberrypi4:/opt/Kavita# sudo systemctl status kavita.service
● kavita.service - Kavita Server
Loaded: loaded (/etc/systemd/system/kavita.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-10-12 20:37:07 CEST; 2s ago
Main PID: 27434 (Kavita)
Tasks: 16 (limit: 4915)
CGroup: /system.slice/kavita.service
└─27434 /opt/Kavita/Kavita
Okt 12 20:37:07 raspberrypi4 systemd[1]: Started Kavita Server.
[Do Okt 12]pi@raspberrypi4:/opt/Kavita# ps aux | grep Kavita
kavita 27434 103 3.4 900748 134900 ? Rsl 20:37 0:13 /opt/Kavita/Kavita
pi 27585 0.0 0.0 7356 552 pts/0 S+ 20:37 0:00 grep --color=auto 27434
[Do Okt 12]pi@raspberrypi4:/opt/Kavita# sudo netstat -tapen | grep 27434
tcp6 0 0 :::5000 :::* LISTEN 1001 75764786 27434/Kavita
tcp6 0 0 192.168.170.33:35342 140.82.121.5:443 VERBUNDEN 1001 75766833 27434/Kavita
[Do Okt 12]pi@raspberrypi4:/opt/Kavita#
]pi@raspberrypi4:/opt/Kavita# sudo systemctl status kavita.service ● kavita.service - Kavita Server Loaded: loaded (/etc/systemd/system/kavita.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-10-12 20:37:07 CEST; 2s ago Main PID: 27434 (Kavita) Tasks: 16 (limit: 4915) CGroup: /system.slice/kavita.service └─27434 /opt/Kavita/Kavita Okt 12 20:37:07 raspberrypi4 systemd[1]: Started Kavita Server. [Do Okt 12]pi@raspberrypi4:/opt/Kavita# ps aux | grep Kavita kavita 27434 103 3.4 900748 134900 ? Rsl 20:37 0:13 /opt/Kavita/Kavita pi 27585 0.0 0.0 7356 552 pts/0 S+ 20:37 0:00 grep --color=auto 27434 [Do Okt 12]pi@raspberrypi4:/opt/Kavita# sudo netstat -tapen | grep 27434 tcp6 0 0 :::5000 :::* LISTEN 1001 75764786 27434/Kavita tcp6 0 0 192.168.170.33:35342 140.82.121.5:443 VERBUNDEN 1001 75766833 27434/Kavita [Do Okt 12]pi@raspberrypi4:/opt/Kavita#
]pi@raspberrypi4:/opt/Kavita# sudo systemctl status kavita.service
● kavita.service - Kavita Server
   Loaded: loaded (/etc/systemd/system/kavita.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2023-10-12 20:37:07 CEST; 2s ago
 Main PID: 27434 (Kavita)
    Tasks: 16 (limit: 4915)
   CGroup: /system.slice/kavita.service
           └─27434 /opt/Kavita/Kavita

Okt 12 20:37:07 raspberrypi4 systemd[1]: Started Kavita Server.


[Do Okt 12]pi@raspberrypi4:/opt/Kavita# ps aux | grep Kavita
kavita   27434  103  3.4 900748 134900 ?       Rsl  20:37   0:13 /opt/Kavita/Kavita
pi       27585  0.0  0.0   7356   552 pts/0    S+   20:37   0:00 grep --color=auto 27434


[Do Okt 12]pi@raspberrypi4:/opt/Kavita# sudo netstat -tapen | grep 27434
tcp6       0      0 :::5000                 :::*                    LISTEN      1001       75764786   27434/Kavita
tcp6       0      0 192.168.170.33:35342    140.82.121.5:443        VERBUNDEN   1001       75766833   27434/Kavita
[Do Okt 12]pi@raspberrypi4:/opt/Kavita#

Sollte ein Prozess existieren und dieser auf Port 5000 lauschen, ist die Installation abgeschlossen und ihr solltet auf die Startseite kommen. Legt zuerst einen neuen User an und definiert danach eine neue Library, welches auf euer Verzeichnis mit den eBooks zeigt. Das Einlesen könnte, je nach Anzahl eurer eBooks, etwas dauern. Ihr habt die Wahl eure eBooks direkt im Browser zu lesen oder diese lokal auf eure Geräte herunterzuladen.

Hier findet ihr noch die Github Seite des Projekts: https://github.com/Kareadita/Kavita

Wer ein Update machen möchte findet hier den richtigen Beitrag: Kavita Update

Ein Gedanke zu „Kavita auf dem Raspberry Pi installieren

Schreibe einen Kommentar

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