Was macht grimmory-self-hosted-library?
Expertenwissen zur Einrichtung, Konfiguration und Erweiterung von Grimmory – einem selbst gehosteten Bibliotheksmanager für Bücher mit Unterstützung für EPUBs, PDFs, Comics, Kobo-Synchronisation, OPDS und Multi-Benutzer-Verwaltung.
Übersicht
Grimmory ist eine leistungsstarke, selbst gehostete Anwendung zur Verwaltung persönlicher Buchexemplare. Sie ermöglicht es Ihnen, EPUBs, PDFs und Comics zu importieren, zu organisieren und zu lesen. Mit integrierter OPDS-Unterstützung können Sie Ihre Bibliothek mit kompatiblen Lesegeräten wie Kobo-E-Readern teilen. Die Multi-Benutzer-Funktion erlaubt es mehreren Personen, gleichzeitig auf die Bibliothek zuzugreifen, wobei Titel als ausgeliehen markiert werden können.
Hauptfunktionen
- Import und Verwaltung: Unterstützt EPUB, PDF, CBZ/CBR (Comics), sowie Metadaten-Import aus Dateien.
- Suche und Filterung: Volltextsuche, Filter nach ISBN, Autor, Genre oder Tags.
- Kobo-Synchronisation: Automatische Synchronisation mit Kobo-Geräten über OPDS-Proxy.
- Multi-Benutzer: Mehrere Benutzerkonten mit individuellen Lesezeichen und Ausleihstatus.
- OPDS-Katalog: Standardisierte OPDS-Feeds für Drittanbieter-Apps und Lesegeräte.
- Erweiterbarkeit: Plugin-System für benutzerdefinierte Metadatenquellen und Importfilter.
Erste Schritte
Voraussetzungen
- Docker (empfohlen) oder Python 3.11+
- PostgreSQL 15+ oder SQLite (für Testumgebungen)
- Ausreichend Speicherplatz für Buchdateien (empfohlen: 20 GB+)
Schnellstart mit Docker
docker run -d \
--name grimmory \
-p 8080:8080 \
-v /pfad/zum/buecher-verzeichnis:/data \
-e DATABASE_URL=postgresql://benutzer:passwort@host/datenbank \
ghcr.io/aradotso/grimmory:latest
Standard-Konfiguration
Erstellen Sie eine config.yml im Stammverzeichnis:
server:
host: "0.0.0.0"
port: 8080
secret_key: "ihr-geheimnis-hier-ändern"
database:
url: "postgresql://benutzer:passwort@localhost/grimmory"
library:
paths:
- /data/buecher
formats:
- epub
- pdf
- cbz
- cbr
opds:
enabled: true
proxy_port: 8081
kobo_friendly: true
users:
registration: open # oder 'invite_only'
Erweiterte Konfiguration
Kobo-Synchronisation einrichten
- Konfigurieren Sie den OPDS-Proxy in der
config.yml:opds: kobo_friendly: true kobo_proxy_url: "https://mein-server.com/kobo" - Registrieren Sie Ihr Kobo-Gerät in der Weboberfläche unter „Geräte“. Sie erhalten eine URL und ein Token.
- Geben Sie diese Daten auf dem Kobo unter „Konto“ → „Partnerdienste“ ein.
Multi-Benutzer-Verwaltung
Standardmäßig können sich Benutzer selbst registrieren. Um die Registrierung einzuschränken, setzen Sie:
users:
registration: invite_only
max_users: 10
Administratoren können Benutzer über die Admin-Oberfläche einladen oder löschen. Jeder Benutzer hat eigene Lesezeichen, Ausleihlisten und persönliche Metadaten.
Erweiterungen schreiben
Das Plugin-System unterstützt Python-basierte Erweiterungen:
# plugins/mein_importer.py
from grimmory.plugins import BaseImporter
class MeinImporter(BaseImporter):
name = "Benutzerdefinierter Importfilter"
formats = ["djvu", "mobi"]
def import_file(self, path: str) -> dict:
# Ihre Importlogik hier
return {
"title": "Beispieltitel",
"author": "Autor",
"format": "djvu",
"data": open(path, "rb").read()
}
Aktivieren Sie das Plugin in der Konfiguration:
plugins:
enabled:
- mein_importer
Fehlerbehebung
| Problem | Lösung |
|---|---|
| Kobo erkennt keine Bücher | Stellen Sie sicher, dass OPDS aktiviert ist und der Proxy korrekt konfiguriert ist. |
| Import schlägt fehl | Überprüfen Sie die Dateiformate und Berechtigungen des Importverzeichnisses. |
| Datenbankverbindung | Stellen Sie sicher, dass die Datenbank läuft und die URL stimmt. |
| CSS/JS lädt nicht | Setzen Sie secret_key in der Konfiguration. |
Links
Lizenz
Grimmory ist unter der MIT-Lizenz veröffentlicht. Weitere Informationen finden Sie in der LICENSE-Datei.