OpenLibry ist eine einfache, schnelle und offene Verwaltung für kleine Bibliotheken, z.B. in Schulen. Sie wurde optimiert auf einfache Bedienung in einer trubeligen Umgebung, in der kleine Kinder Bücher abgeben, ausleihen, weitergeben und liegen lassen.
Die Idee entstand in unserer Grundschule, in der OpenBiblio im Einsatz war, eine quelloffene und kostenlose Software, die aber schon seit vielen Jahren nicht mehr gepflegt wird. Viele Eltern und Freiwillige engagieren sich ehrenamtlich, um die Bücher zu katalogisieren, Nutzer-Ausweise zu drucken und zu Ausleihzeiten zur Verfügung zu stehen - trotzdem habe ich keine kostenlose digitale Lösung gefunden, um sie zu unterstützen. So entstand OpenLibry.
- Nutzbar auf Computer, Tablet und Handy
- On-the-fly-Suche während man tippt nach Büchern, Leihen und NutzerInnen. Einfacher Filter für überfällige Bücher in einer Klasse direkt im Ausleih-Screen
- Optimiert auf wenige Maus- und Tastaturklicks, insbesondere für die Ausleihe und Rückgabe
- Cover-Bilder für Bücher können eingefügt werden
- Einfache Installation in einer lokalen Umgebung oder in einer Cloud
- Kein komplizierter Schnickschnack mit Nutzerberechtigungen, drölfzig unnötigen Datenfeldern usw.
- Moderner Software-Stack mit next.js-Oberfläche und einfacher Datenbank
- Importfunktion für Daten von alten OpenBiblio-Installationen
Ausleih-Screen
Bücherverwaltung-Screen
Edit-Screen
- Kopiere das Beispiel-Environment-File:
cp .env_example .env
- Konfiguriere den Servernamen in einer
.env
-Datei im Hauptordner entsprechend der Werte im.env_example
, z.B.NEXT_PUBLIC_API_URL="http://localhost:3000"
- Der Wert
AUTH_ENABLED
sollte zunächst auffalse
gesetzt werden, so dass man sich beim ersten Login ohne Authentifizierung einloggen kann. Viahttps://<domain>/auth/register
kann man dann den ersten User anlegen und danachAUTH_ENABLED
auftrue
setzen.
Für eine lokale Installation ohne Docker befolge diese Schritte:
- Update der Distribution:
sudo apt-get update
undsudo apt-get upgrade
- Falls
curl
nicht installiert ist:apt install curl
- Installiere den node version manager NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
. Damit solltenvm
installiert sein. - Installiere den node server:
nvm install --lts
- Falls noch kein
git
installiert ist:sudo apt-get install git-all
- Kopiere das Repository aus github:
git clone https://github.com/jzakotnik/openlibry.git
- Nutze das entsprechende Verzeichnis:
cd openlibry
- Kopiere das Beispielfile und passe den API-Endpunkt mit dem entsprechenden Servernamen an:
cp .env_example .env
und ggf.nano .env
- Installiere alle notwendigen node-Pakete:
npm install
- Erzeuge eine leere Datenbank (SQLite):
npx prisma db push
- Starte OpenLibry mit
npm run start
. Achte darauf, dass der entsprechende Port freigegeben ist und über den Browser zugänglich ist.
- Baue das Image mit
docker build --no-cache -t openlibry .
- Führe das Image in Docker aus
docker compose up
- Das SQLite-File wird auf einem Volume gemappt. Beim ersten Ausführen logge Dich in den Container ein
docker exec -it openlibry_openlibry_1 /bin/bash
und führenpx prisma db push
aus, um das DB-File zu erzeugen. - Öffne OpenLibry im Browser:
http://localhost:3010
Achtung, das ist ein Sandbox-Setup, um schnell damit spielen zu können. Für Production-Use sollte Docker noch automatisiert gestartet werden.
Eine Installationsanleitung für die Konfiguration mit dem Webserver nginx auf einer Subdomain findet sich hier
Die REST-API kennt die Resourcen book
und user
. Für beide gibt es jeweils die entsprechenden http-Operationen (GET, PUT, POST, DELETE). Die Ausleihe entsteht durch die Verknüpfung von user
und book
, also z.B. http://localhost:3000/api/book/2001/user/1080
, um ein Buch auszuleihen.
Die API kann verwendet werden, um User/Bücher aus anderen Programmen automatisiert zu importieren.
Weitere Beispiele sind im docs-Folder aufgeführt.
Siehe Open Biblio, die Import-Schritte
Falls Cover importiert werden: ISBN-Service für ISBN-10 und ISBN-13: https://openlibrary.org/isbn/9780140328721 Cover: https://covers.openlibrary.org/13834659
Falls Ihr mitmachen wollt, die Software nutzen wollt oder ein Hosting sucht, schreibt mich gerne unter [email protected] an. Falls Ihr die Software finanziell unterstützen wollt, geht es bei Ko-Fi sehr einfach.