calibre-innehållsservern

calibre-innehållsservern gör att du kan komma åt dina calibre bibliotek och läsa böcker direkt i en webbläsare på din favorit mobiltelefon eller surfplatta. Som ett resultat behöver du inte installera några dedikerade bokläsnings-/hanteringsappar på din telefon. Använd bara webbläsaren. Servern hämtar och lagrar boken du läser i ett frånkopplat cache så att du kan läsa den även när det inte finns någon internetuppkoppling.

För att starta servern klickar du på knappen Anslut/dela och väljer Starta innehållsserver. Det kan hända att du får ett meddelande från datorns brandvägg eller antivirusprogram om det är OK att tillåta tillgång till calibre.exe. Klicka på knappen Tillåt eller OK. Öppna sedan en webbläsare (helst Chrome eller Firefox) i din dator och skriv in följande adress:

http://127.0.0.1:8080

Detta öppnar en sida i webbläsaren som visar dina calibre-bibliotek, klicka på ett och bläddra bland böckerna i det. Klicka på en bok så kommer den att visa dig all metadata om boken, tillsammans med knappar för att Läsa och Hämta boken. Klicka på knappen Läsa för att börja läsa boken.

Anteckning

Adressen som används ovan http://127.0.0.1:8080 fungerar bara på datorn som kör calibre. För att komma åt servern från andra datorer/telefoner/surfplattor/etc. kommer du att behöva göra lite mer arbete, som beskrivs i nästa avsnitt.

Åtkomst till innehållsservern från andra enheter

Det finns två typer av fjärråtkomst som du normalt behöver. Den första, enklare sorten är från ditt hemnätverk. Om du kör calibre på en dator i ditt hemnätverk och du också har anslutit dina andra enheter till samma hemnätverk, borde du enkelt kunna komma åt servern på de här enheterna.

Åtkomst till servern från enheter i ditt hemnätverk

När du har startat servern i calibre som beskrivits ovan klickar du på knappen Anslut/dela igen. I stället för åtgärden Starta innehållsserver, bör du se en Stoppa innehållsservern-åtgärd i stället. Till höger om denna åtgärd visas en IP-adress och portnummer. Dessa ser ut som en massa siffror åtskilda av perioder. Till exempel:

Stop Content server [192.168.1.5, port 8080]

Dessa siffror berättar vilken adress som ska användas för att ansluta till servern på dina enheter. Efter exemplet ovan blir adressen:

http://192.168.1.5:8080

Den första delen av adressen är alltid http://. Därefter kommer IP-adressen, som består av siffrorna före kommatecknet. Sist kommer portnumret, som läggs till efter IP-adressen med ett kolon (:). Om du har tur är detta allt som behövs för att visa calibre-biblioteken på enheten. Fortsätt annars läsa.

Problemlösning av hemnätverksanslutningen

Om du inte kan komma åt servern från din enhet kan du försöka med följande steg:

  1. Kontrollera att servern körs genom att öppna adressen http://127.0.0.1:8080 i en webbläsare som körs på samma dator som servern.

  2. Kontrollera att din brandvägg/antivirusprogram tillåter anslutningar till din dator på porten 8080 och till calibre-programmet. Det enklaste sättet att eliminera brandväggen/antivirusprogrammet som källan till problem är att tillfälligt stänga av dem och sedan försöka ansluta. Du bör först koppla från internet, innan du slår av brandväggen, för att hålla datorn säker.

  3. Kontrollera att din enhet och dator finns på samma nätverk. Det innebär att de båda ska vara anslutna till samma trådlösa router. I synnerhet bör ingendera använda en mobil- eller ISP tillhandahållen direkt-WiFi-anslutning.

  4. Om du har en icke-standardiserad nätverksinstallation kan det vara att IP-adressen som visas på Anslut/dela-menyn är felaktig. I så fall måste du ta reda på vad den rätta IP-adressen du ska använda är själv. Tyvärr, med tanke på oändliga mångfald av nätverkskonfigurationer är det inte möjligt att ge dig en anvisningar för att göra det.

  5. Om du har konfigurerat ett användarnamn och lösenord, försök först utan det för att se om det orsakar problem. Vissa e-bläckenheter har webbläsare som inte hanterar autentisering. Du kan ibland lösa detta genom att inkludera användarnamnet och lösenordet i URL:en, till exempel: http://username:password@192.168.1.2:8080.

  6. Om du har fastnat kan du alltid be om hjälp i calibre-användarforum.

Åtkomst till servern från var som helst på internet

Varning

Innan du gör det bör du skydda servern med användarnamn och lösenord. Annars kan vem som helst på internet komma åt dina böcker. Gå till Inställningar → Delning → Dela via nätet och aktivera Kräv användarnamn och lösenord för åtkomst till innehållsservern.

De exakta stegen för att konfigurera internetåtkomst varierar beroende på nätverk och dator, men grundprincipen är följande.

  1. Ta reda på den externa IP-adressen för den dator du ska köra servern på. Du kan göra det genom att besöka webbplatsen What is my IP address med en webbläsare som körs på datorn.

  2. Om datorn finns bakom en router aktiverar du portvidarebefordran i routern och vidarebefordrar port 8080 – eller den port som calibres innehållsserver använder – till datorn.

  3. Kontrollera att calibre-servern tillåts genom datorns brandväggar och antivirusprogram.

  4. Nu bör du kunna komma åt servern på vilken internetansluten enhet som helst med hjälp av den IP-adress du hittade i det första steget. Till exempel om den IP-adressen du hittade var 123.123.123.123 och porten du använder för calibre-servern är 8080, blir adressen som används på din enhet: http://123.123.123.123:8080.

  5. Alternativt kan du använda en tjänst som no-ip för att ställa in en adress som är lätt att komma ihåg att använda i stället för den IP-adress som du hittade i det första steget.

Anteckning

För maximal säkerhet bör du även aktivera HTTPS på innehållsservern. Du kan antingen göra det direkt i servern genom att ange sökvägen till HTTPS-certifikatet som ska användas i de avancerade konfigurationsalternativen för servern, eller så kan du konfigurera en omvänd proxy enligt beskrivningen nedan för att använda en befintlig HTTPS-konfiguration.

Servergränssnittet

Servergränssnittet är en förenklad version av calibres huvudgränssnitt, optimerat för användning med pekskärmar. Hemskärmen visar böcker du läser för närvarande och låter dig välja ett calibre-bibliotek du vill bläddra bland. Servern i calibre ger dig tillgång till alla dina bibliotek, inte bara ett enda, som tidigare.

Boklistan

Serverns boklista är ett enkelt rutnät av omslag. Tryck på ett omslag för att se detaljerade metadata för en bok eller för att läsa boken. Om du föredrar en mer detaljerad lista kan du ändra standardvyn genom att klicka på de tre vertikala punkterna i övre högra hörnet.

Sortering och sökning i boklistan bör kännas välbekanta för calibre-användare. Du når funktionerna genom att klicka på deras ikoner högst upp till höger. Båda fungerar på samma sätt som i calibres huvudprogram. På söksidan kan du dessutom skapa sökfrågor genom att klicka på författare, taggar med mera, precis som i taggbläddraren i huvudprogrammet.

En mycket älskad funktion i huvudprogrammet, virtuella bibliotek finns också i servergränssnittet. Klicka på de tre vertikala prickarna i det övre högra hörnet för att välja ett virtuellt bibliotek.

Bokvisaren

Du kan läsa vilken bok som helst i ditt calibre-bibliotek genom att helt enkelt trycka på den och sedan trycka på Läsa-knappen. Bokvisaren är mycket enkel att använda. Du kan både trycka och svepa för att vända sidor. Genom att svepa upp/ned hoppar du mellan kapitel. Genom att trycka på den övre fjärdedelen av skärmen får du detaljerade kontroller och visarinställningar.

Om du låter innehållsservern vara igång kan du öppna samma bok på flera enheter, och servern kommer ihåg din senaste läsposition. Om den inte gör det kan du tvinga fram en synkronisering genom att trycka på den översta fjärdedelen av skärmen och välja Synkronisera.

Webbläsarstöd

Servern använder avancerade funktioner i HTML 5 och CSS 3 och kräver därför en modern webbläsare. Den har testats med Chrome på Android, Safari på iOS samt Chrome och Firefox på datorer.

Servern använder funktioner som redan har standardiserats eller håller på att standardiseras. Om den inte fungerar i din favoritwebbläsare i dag kommer den därför sannolikt att fungera när webbläsaren har hunnit ikapp.

Om du använder en särskilt gammal eller begränsad webbläsare eller om du inte gillar att köra JavaScript kan du använda mobil-vyn genom att helt enkelt lägga till /mobile i serveradressen.

Anteckning

På iOS tillåter Apple endast en enda webbläsarmotor, så Firefox, Chrome och Safari är alla faktiskt samma webbläsare under huven. Det nya servergränssnittet kräver iOS 10.3.2 eller nyare. På Android har servern testats med Chrome-version 58 och nyare.

Aktivera stöd för offlineläge

Servern har fullt stöd för offlineläge. Du kan öppna en bok och fortsätta läsa den utan anslutning när den har lästs in. Vanliga webbläsare kräver dock HTTPS för att aktivera offlineläget via service workers. Konfigurera därför HTTPS-stöd enligt beskrivningen ovan. Längst ned på startsidan visas offlinelägets status.

Alternativt kan du öppna en bok och låta webbläsarfliken vara öppen. Så länge fliken är öppen kan du fortsätta läsa boken, även när du är i frånkopplat läge.

Hantera användarkonton endast från kommandoraden

calibre har ett avsnitt i Inställningar där du kan hantera serverns användarkonton. Om du kör den fristående servern och inte kan köra calibres huvudprogram på samma dator eller användarkonto kan du även hantera användarna enbart från kommandoraden.

Du kan hantera användarkonton med flaggan --manage-users till det fristående programmet calibre-server. Antag att du vill lagra användardatabasen i mappen /srv/calibre, då skapar du den genom att köra:

calibre-server --userdb /srv/calibre/users.sqlite --manage-users

Följ bara anvisningarna för att skapa användarkonton, ange deras behörigheter etc. När du är klar kan du köra servern som:

calibre-server --userdb /srv/calibre/users.sqlite --enable-auth

Det kommer att använda användarkonton du skapade i föregående steg.

Integrera calibre-innehållsservern med andra servrar

Här visar vi hur calibres innehållsserver kan integreras med en annan server. Vanliga skäl är att använda SSL eller göra calibre-biblioteket till en del av en större webbplats. Grundmetoden är att köra calibre-servern och konfigurera huvudservern som omvänd proxy.

En omvänd proxy innebär att den vanliga servern tar emot förfrågningar och skickar dem vidare till calibre-servern. Den läser sedan svaret och vidarebefordrar det till klienten. Därmed kan calibre-servern köras som vanligt utan någon tät integration med huvudservern.

Använda en fullständig virtuell värd

Den enklaste konfigurationen är att ägna en fullständig virtuell värd till calibre-servern. Kör i så fall calibre-servern som:

calibre-server

Ställ nu in den virtuella värden på din huvudserver, till exempel för nginx:

http {
    client_max_body_size 64M;  # needed to upload large books
}

server {
    listen [::]:80;
    server_name myserver.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

Eller för Apache:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
    ServerName myserver.example.com
    AllowEncodedSlashes On
    ProxyPreserveHost On
    ProxyPass "/"  "http://localhost:8080/"
</VirtualHost>

Använda ett URL-prefix

Om du inte vill ägna en fullständig virtuell värd till calibre kan du låta den använda ett URL-prefix. Starta calibre-servern som:

calibre-server --url-prefix /calibre --port 8080

Nyckelparametern är --url-prefix /calibre. Den gör att innehållsservern betjänar alla URL:er med prefixet /calibre. Besök http://localhost:8080/calibre i webbläsaren för att prova. Den vanliga webbplatsen för innehållsservern visas nu under /calibre.

För nginx krävs följande konfiguration:

http {
    client_max_body_size 64M;  # needed to upload large books
}

proxy_set_header X-Forwarded-For $remote_addr;
location /calibre/ {
    proxy_buffering off;
    proxy_pass http://127.0.0.1:8080$request_uri;
}
location /calibre {
    # we need a trailing slash for the Application Cache to work
    rewrite /calibre /calibre/ permanent;
}

För Apache, aktivera först proxymodulerna i Apache genom att lägga till följande i httpd.conf:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Den exakta tekniken för att aktivera proxymoduler varierar beroende på din Apache-installation. När du aktiverar proxymodulerna, lägg till följande regler i httpd.conf (eller om du använder virtuella värdar till conf-filen för den virtuella värden i fråga):

AllowEncodedSlashes On
RewriteEngine on
RewriteRule ^/calibre/(.*) http://127.0.0.1:8080/calibre/$1 [proxy]
RedirectMatch permanent ^/calibre$ /calibre/

Nu kan calibres innehållsserver nås via URL:en /calibre på huvudservern. Reglerna ovan skickar alla förfrågningar under /calibre till calibre-servern på port 8080. Tack vare alternativet --url-prefix hanterar calibre-servern dem utan ytterligare anpassning.

Anteckning

När du använder en omvänd proxy bör calibres innehållsserver endast lyssna på localhost. Använd --listen-on 127.0.0.1. Servern tar då bara emot anslutningar från samma dator, det vill säga från den omvända proxyn.

Anteckning

Om du har konfigurerat SSL för din huvudserver bör du ange att calibre-servern ska använda grundläggande autentisering i stället för digest-autentisering, eftersom det är snabbare. För att göra det, skicka flaggan --auth-mode=basic till calibre-server.

Skapa en tjänst för calibre-servern på ett modernt Linux-system

Du kan enkelt skapa en tjänst som startar calibre vid uppstart i ett modernt Linux-system som använder systemd. Skapa filen /etc/systemd/system/calibre-server.service med följande innehåll:

[Unit]
Description=calibre Content server
After=network.target

[Service]
Type=simple
User=mylinuxuser
Group=mylinuxgroup
ExecStart=/opt/calibre/calibre-server "/path/to/calibre library folder"

[Install]
WantedBy=multi-user.target

Ändra mylinuxuser och mylinuxgroup till vilken användare och grupp du vill att servern ska köras som. Detta bör vara samma användare och grupp som äger filerna i biblioteksmappen för calibre. Observera att det i allmänhet inte är en bra idé att köra servern som root. Ändra också sökvägen till biblioteksmappen för calibre så att den passar ditt system. Du kan lägga till flera bibliotek om det behövs. Se hjälpen för kommandot calibre-server.

Kör nu:

sudo systemctl start calibre-server

för att starta servern. Kontrollera dess status med:

sudo systemctl status calibre-server

För att den ska starta vid uppstart, kör:

sudo systemctl enable calibre-server

Anteckning

calibre-servern behöver inte en X-server som körs, men den behöver X-biblioteken installerade eftersom vissa komponenter använder dem för att länka mot.

Anteckning

calibre-servern stöder också systemd-socketaktivering, så du kan också använda det om det behövs.