Wie veel digitale boeken verzamelt, kent het probleem: EPUB- en PDF-bestanden staan verspreid over mappen en zijn daardoor lastig terug te vinden. Met Calibre-Web maak je van die verzameling een overzichtelijke digitale boekenkast die je gewoon via je webbrowser kunt openen.
In dit artikel lees je hoe je een bestaande boekenmap op een Synology DS723+ beschikbaar maakt in Calibre-Web. De uitleg is bewust eenvoudig gehouden. Je hoeft geen ervaren systeembeheerder te zijn, maar enige vertrouwdheid met Synology Container Manager en de opdrachtregel is wel handig.
Kort gezegd: je bewaart je bestaande boeken op dezelfde plek, laat Calibre er een nette bibliotheek van maken en gebruikt Calibre-Web als toegankelijke voorkant.
Wat gaan we maken?
We gebruiken drie onderdelen:
- Je bestaande boekenmap met EPUB- en PDF-bestanden.
- Een Calibre-bibliotheek waarin de boeken worden geregistreerd en geordend.
- Calibre-Web, de website waarmee je door de bibliotheek bladert.
De bestaande boeken staan in dit voorbeeld in:
/volume1/EBook
Binnen die map maken we een aparte bibliotheekmap:
/volume1/EBook/CalibreLibrary
Calibre-Web wordt bereikbaar via poort 8083.
Zo ziet de opbouw eruit
flowchart LR
U[Gebruiker met webbrowser] -->|Opent digitale boekenkast| W[Calibre-Web]
W -->|Leest boekgegevens| D[(metadata.db)]
D --> L[CalibreLibrary]
B[Bestaande EPUB- en PDF-bestanden] -->|Worden geregistreerd| L
L --> S[Synology-map /volume1/EBook]De database metadata.db kun je zien als de inhoudsopgave van je boekenkast. Daarin staat welke boeken zijn opgenomen en welke gegevens daarbij horen, zoals titel en auteur. De daadwerkelijke boekbestanden blijven op je NAS staan.
Stap 1: bereid de mappen voor
Maak eerst een map voor de instellingen van Calibre-Web en een map voor de beheerde bibliotheek:
mkdir -p /volume1/docker/calibre-web/config
mkdir -p /volume1/EBook/CalibreLibrary
De map CalibreLibrary wordt later overgeslagen bij het zoeken naar nieuwe boeken. Daarmee voorkom je dat Calibre zijn eigen kopieën opnieuw probeert toe te voegen.
Stap 2: controleer gebruiker en poort
Een toepassing in een container heeft toestemming nodig om bestanden op je NAS te lezen en te schrijven. Controleer (in bash) daarom eerst het gebruikersnummer en groepsnummer:
id
In dit voorbeeld gebruiken we:
PUID=1026
PGID=100
Gebruik bij voorkeur de waarden die de opdracht id op jouw NAS toont.
Controleer daarna of poort 8083 nog niet door een andere toepassing wordt gebruikt:
sudo netstat -tulpn | grep :8083
Als je geen uitvoer krijgt, is er via deze controle geen actief programma op poort 8083 gevonden. Je kunt ook de poorten van bestaande containers bekijken:
sudo docker ps --format "table {{.Names}}\t{{.Ports}}"
Stap 3: maak het project in Container Manager
Open Container Manager op je Synology NAS en volg deze stappen:
- Ga naar Project.
- Kies Maken of Create.
- Gebruik
calibreals projectnaam. - Kies
/volume1/docker/calibre-webals projectmap. - Kies voor het invoeren van een
docker-compose.yml-bestand. - Plak de onderstaande inhoud.
- Laat Container Manager het project controleren en starten.
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1026
- PGID=100
- TZ=Europe/Amsterdam
volumes:
- /volume1/docker/calibre-web/config:/config
- /volume1/EBook:/books
ports:
- "8083:8083"
restart: unless-stopped
De belangrijkste regel is deze:
- /volume1/EBook:/books
Hiermee wordt je bestaande NAS-map binnen Calibre-Web zichtbaar als /books. Het is dus dezelfde inhoud, maar met een korter pad binnen de container.
Stap 4: controleer of alles bereikbaar is
Controleer eerst of Calibre-Web draait:
sudo docker ps | grep calibre-web
Controleer daarna of de boekenmap zichtbaar is:
sudo docker exec calibre-web ls -la /books
Open vervolgens de webinterface in je browser:
http://<NAS-IP>:8083
Vervang <NAS-IP> door het IP-adres van je eigen Synology NAS.
Stap 5: maak de Calibre-bibliotheek
Open een opdrachtregel binnen de Calibre-Web-container:
sudo docker exec -it calibre-web bash
Controleer of het hulpprogramma voor het beheren van de bibliotheek aanwezig is:
which calibredb
calibredb --version
Wanneer which calibredb bijvoorbeeld /usr/bin/calibredb toont, is het programma beschikbaar.
Maak of open daarna de bibliotheek:
calibredb list --library-path /books/CalibreLibrary
Controleer of het databasebestand is aangemaakt:
ls -la /books/CalibreLibrary
Of voer een gerichte controle uit:
test -f /books/CalibreLibrary/metadata.db \
&& echo "metadata.db aanwezig" \
|| echo "metadata.db ontbreekt"
Vul vervolgens in Calibre-Web bij Database Configuration dit pad in:
/books/CalibreLibrary/metadata.db
Stap 6: voeg je bestaande boeken toe
Met de volgende opdracht zoekt Calibre in de volledige boekenmap naar EPUB- en PDF-bestanden:
find /books \
-path "/books/CalibreLibrary" -prune -o \
-type f \( -iname "*.epub" -o -iname "*.pdf" \) \
-print0 | xargs -0 -r calibredb add \
--library-path /books/CalibreLibrary
Deze opdracht doet vier dingen:
- zoekt in
/booksen alle onderliggende mappen; - accepteert EPUB- en PDF-bestanden;
- slaat de map
CalibreLibraryover; - verwerkt ook bestandsnamen met spaties.
Gebruik bij een normale import niet de optie --duplicates. Zonder die optie probeert Calibre dubbele registraties tegen te houden. Houd er wel rekening mee dat boeken met afwijkende titel- of auteursgegevens soms niet als hetzelfde boek worden herkend.
Nieuwe boeken later toevoegen
Wanneer je later nieuwe EPUB- of PDF-bestanden in /volume1/EBook plaatst, kun je dezelfde importopdracht opnieuw uitvoeren:
find /books \
-path "/books/CalibreLibrary" -prune -o \
-type f \( -iname "*.epub" -o -iname "*.pdf" \) \
-print0 | xargs -0 -r calibredb add \
--library-path /books/CalibreLibrary
Calibre werkt daarna de bestaande metadata.db bij. Je hoeft dus niet iedere keer een nieuwe bibliotheek te maken.
Handige controles
Toon alle geregistreerde boeken
calibredb list --library-path /books/CalibreLibrary
Toon alleen het begin van de lijst
calibredb list --library-path /books/CalibreLibrary | head -20
Zoek naar een titel
calibredb search "title:Python" \
--library-path /books/CalibreLibrary
Tel de gevonden bronbestanden
find /books \
-path "/books/CalibreLibrary" -prune -o \
-type f \( -iname "*.epub" -o -iname "*.pdf" \) \
-print | wc -l
Bekijk de laatste meldingen van Calibre-Web
Voer deze opdracht uit vanaf de opdrachtregel van de NAS, dus niet vanuit de container:
sudo docker logs calibre-web --tail 100
Controleer de container en webpoort
sudo docker ps \
--filter name=calibre-web \
--format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
curl -I http://localhost:8083
Een aandachtspunt bij extra installatie
Als calibredb ontbreekt, kun je het binnen de container installeren:
apt update && apt install -y calibre
Een handmatige installatie in een draaiende container kan echter verdwijnen wanneer de container opnieuw wordt aangemaakt of bijgewerkt. Controleer daarom eerst goed of calibredb al aanwezig is. In de beschreven opstelling was het programma al beschikbaar onder /usr/bin/calibredb.