Il Server dei Contenuti di Calibre

Il Server dei Contenuti di calibre ti permette di accedere alle tue biblioteche di calibre e di leggerne i libri direttamente dal browser del tuo dispositivo preferito, come un telefono o un tablet. Di conseguenza, non devi installare alcuna app dedicata di lettura/gestione libri sul tuo telefono. Basta usare il browser. Il server scarica e conserva i libri che stai leggendo in una cache non in linea, così che tu possa leggerli anche quando non sei connesso ad internet.

Per avviare il server, fai clic sul pulsante Connetti/condividi e scegli Avvia il server dei contenuti. Potresti vedere un messaggio dal firewall o dall’antivirus del tuo computer chiedendoti di consentire l’accesso a calibre.exe. Fai clic sul pulsante Permetti o OK. Dopodiché apri un browser (preferibilmente Chrome o Firefox) sul tuo computer e digita l’indirizzo seguente:

http://127.0.0.1:8080

Si aprirà una pagina nel browser con mostrate le tue biblioteche di calibre, fai clic su una qualsiasi di esse per navigare nei libri contenuti. Fai clic su un libro per vederne i metadati, insieme ai pulsanti Leggi e Scarica libro. Fai clic sul pulsante Leggi per iniziare a leggere il libro.

Nota

L’indirizzo di cui sopra http://127.0.0.1:8080 funzionerà solamente dal computer in cui calibre è in esecuzione. Per accedere al server da altri computer/telefoni/tablet/ecc. ci sarà bisogno di un po” di lavoro in più, come descritto nella prossima sezione.

Accesso al server dei contenuti da altri dispositivi

Ci sono due tipi di accesso remoto per i dispositivi di cui avrai normalmente bisogno. Il primo e più semplice è quello da dentro la tua rete locale. Se calibre è in esecuzione su un computer della tua rete locale e i tuoi dispositivi sono connessi a quella stessa rete, dovrebbe essere molto facile accedere al server da quei dispositivi.

Accesso al server da dispositivi nella rete locale

Dopo aver avviato il server da calibre come descritto più in alto, fai di nuovo clic sul pulsante Connetti/condividi. Invece dell’azione Avvia il Server dei Contenuti, dovresti vedere l’azione Ferma il Server dei Contenuti. Alla destra di questa azione verranno mostrati un indirizzo IP e un numero di porta. Avranno l’aspetto di numeri separati da punti. Per esempio:

Stop Content server [192.168.1.5, port 8080]

Questi numeri ti dicono l’indirizzo da utilizzare per connetterti al server nei tuoi dispositivi. Continuando con l’esempio qui sopra, l’indirizzo diventa:

http://192.168.1.5:8080

La prima parte dell’indirizzo è sempre http://, quella successiva è l’indirizzo IP, ovvero i numeri prima della virgola, e infine abbiamo il numero della porta, che deve essere aggiunto all’indirizzo IP dopo un carattere due punti (:). Se sei fortunato, questo dovrebbe essere tutto ciò che ti serve per accedere alle biblioteche di calibre dal tuo dispositivo. Se non è così, continua a leggere.

Risolvere i problemi con la connessione locale

Se non sei in grado di accedere al server dal tuo dispositivo, prova a seguire questi passi:

  1. Controlla che il server sia in esecuzione aprendo l’indirizzo ``http://127.0.0.1:8080` in un browser in esecuzione nello stesso computer del server.

  2. Controlla che il tuo firewall/antivirus stia consentendo le connessioni al tuo computer attraverso la porta 8080 e al programma calibre. Il modo più semplice per escludere che l’origine dei problemi sia il firewall/antivirus è quello di disattivarli temporaneamente entrambi, e poi provare a connettersi. Dovresti disconnetterti da internet prima di disattivare il firewall, per tenere al sicuro il tuo computer.

  3. Controlla che il tuo dispositivo e il computer siano nella stessa rete. Questo significa che devono essere entrambi connessi allo stesso router wifi. in particolare, nessuno dei due deve stare usando una connessione mobile o una connessione direct-WiFi fornita dall’ISP

  4. Se hai una configurazione di rete non standard, è possibile che l’indirizzo IP mostrato nel menu Connetti/condividi non sia corretto. Se fosse questo il caso, dovrai trovare da solo l’indirizzo IP da utilizzare. Sfortunatamente, a causa dell’infinita varietà di configurazioni di rete possibili, non esiste una procedura precisa per fare ciò.

  5. Se hai impostato un nome utente e una password, prova prima a fare senza, per vedere se sono causa di problemi. Alcuni dispositivi e-ink hanno browser che non sono in grado di gestire l’autenticazione. In certi casi puoi aggirare questo problema includendo nome utente e password nell’URL, per esempio: http://nomeutente:password@192.168.1.2:8080.

  6. Se sei bloccato puoi sempre chiedere aiuto nei forum degli utenti di calibre.

Accesso al server da qualsiasi luogo via internet

Avvertimento

Prima di cominciare dovresti abilitare la protezione con nomeutente/password per il server, altrimenti chiunque nel mondo sarà in grado di accedere ai tuoi libri. Vai su Preferenze → Condivisione → Condivisione via rete e abilita l’opzione Richiedi nome utente e password per accedere al Server dei Contenuti.

Sebbene i particolari della configurazione dell’accesso tramite internet varino a seconda della configurazione di rete e del tipo di computer che stai usando, lo schema di base è il seguente.

  1. Scopri l’indirizzo IP esterno del computer sul quale verrà eseguito il server. Puoi farlo visitando il sito What is my IP address in un browser aperto nel computer.

  2. Se il computer si trova dietro a un router, abilita il port forwarding su di esso per inoltrare la porta 8080 (o qualsiasi porta tu scelga per il Server dei Contenuti di calibre) al computer.

  3. Assicurati che il server di calibre sia consentito da qualunque programma firewall/antivirus tu abbia sul computer.

  4. Ora dovresti essere in grado di accedere al server da ogni dispositivo connesso a internet usando l’indirizzo IP che hai trovato nel primo passaggio. Per esempio, se l’indirizzo IP che hai trovato fosse 123.123.123.123 e la porta che vuoi utilizzare per il server di calibre fosse 8080, l’indirizzo da usare sul tuo dispositivo diventerebbe: http://123.123.123.123:8080.

  5. Facoltativamente, puoi usare un servizio come no-ip per configurare un indirizzo facile da ricordare da usare al posto dell’indirizzo IP che hai trovato nel primo passaggio.

Nota

Per la migliore sicurezza possibile, dovresti anche abilitare HTTPS nel Server dei Contenuti. Puoi farlo o direttamente nel server fornendo il percorso del certificato HTTPS da usare nelle opzioni avanzate di configurazione del server, oppure configurando un reverse proxy come descritto più in basso, per usare una configurazione HTTPS esistente.

L’interfaccia del server

L’interfaccia del server è una versione semplificata dell’interfaccia principale di calibre, ottimizzata per l’utilizzo con il tocco. La schermata iniziale ti mostra i libri che stai leggendo al momento e ti permette anche di scegliere una biblioteca di calibre da esplorare. Il server in calibre ti dà accesso a tutte le tue biblioteche e non solamente ad una, come in precedenza.

L’elenco dei libri

L’elenco dei libri sul server è una semplice griglia di copertine. Tocca su una copertina per vedere i metadati dettagliati di un libro, o per leggere il libro. Se preferisci un elenco più dettagliato, puoi cambiare la vista predefinita facendo clic sui tre puntini verticali nell’angolo in alto a destra.

L’ordinamento e la ricerca nell’elenco dei libri dovrebbero essere familiari agli utenti di calibre. Vi si può accedere facendo clic sulle rispettive icone nell’area in alto a destra. Funzionano entrambi esattamente allo stesso modo che nel programma principale di calibre. La pagina di ricerca ti permette persino di costruire chiavi di ricerca facendo clic su autori/tag/ecc., esattamente come potresti fare usando il Navigatore dei Tag nel programma principale.

Una funzionalità molto amata del programma principale, le Biblioteche virtuali, è anch’essa presente nell’interfaccia del server. Fai clic sui tre puntini verticali nell’angolo in alto a destra per scegliere una Biblioteca virtuale.

Il lettore di libri

Puoi leggere qualsiasi libro nella tua biblioteca di calibre semplicemente toccando su di esso e poi sul pulsante Leggi. Il lettore è molto semplice da utilizzare. Puoi sia toccare sia scorrere per girare le pagine. Scorrere verso l’alto o verso il basso passa da un capitolo all’altro. Un tocco nel quarto più alto dello schermo ti porta ai controlli dettagliati e alle preferenze del lettore.

Se lasci il Server dei Contenuti in esecuzione, puoi anche aprire lo stesso libro su più dispositivi e si ricorderà della tua ultima posizione di lettura. Se non lo fa, puoi forzare una sincronizzazione toccando nel quarto più alto e scegliendo Sincronizza.

Supporto dei browser

Il nuovo server di calibre fa un uso importante di caratteristiche avanzate di HTML 5 e CSS 3. Richiede perciò l’utilizzo di un browser aggiornato. È stato testato su Chrome per Android e Safari per iOS, come anche su Chrome e Firefox per computer.

Il server fa in modo di utilizzare funzionalità che o sono già state standardizzate o sono in corso di standardizzazione. Per questo motivo, se al momento non funziona sul tuo browser preferito, probabilmente funzionerà una volta che il browser sarà stato aggiornato.

Se usi un browser particolarmente datato o limitato, o non ti piace eseguire codice JavaScript, puoi usare la vista mobile aggiungendo semplicemente /mobile all’indirizzo del server.

Nota

Su iOS, Apple permette solamente un motore di browser, quindi Firefox, Chrome e Safari sono di fatto tutti lo stesso browser sotto il cofano. La nuova interfaccia del server richiede iOS 10.3.2 o più recente. Su Android, il server è stato testato per la versione 58 di Chrome o più recente.

Abilitazione del supporto all’uso non in linea

I produttori di browser hanno provato a forzare l’uso di SSL da parte delle persone disabilitando alcune funzionalità avanzate nei loro browser per connessioni in HTTP semplice. Una di queste è ApplicationCache, che calibre usava per il supporto all’uso non in linea. La triste conseguenza è che attualmente la modalità non in linea funziona solamente finché la scheda del browser rimane aperta. In più, in Firefox per Android, dovrai digitare about:config, creare una preferenza chiamata browser.tabs.useCache e impostarla su true.

Gestione degli utenti usando solamente la linea di comando

Il programma di calibre ha una sezione apposita nelle Preferenze che ti permette di gestire gli account utente per il server. Se però vuoi eseguire il solo server, e non puoi avviare il programma principale di calibre sullo stesso computer/account utente, puoi anche gestire gli utenti usando solo la linea di comando.

Puoi gestire gli account utente usando l’opzione --manage-users del programma a sé stante calibre-server. Poniamo che tu voglia conservare il database degli utenti nella cartella /srv/calibre, lo potrai creare eseguendo:

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

Segui le indicazioni fornite per creare gli account utente, impostarne i permessi, ecc. Una volta finito, puoi eseguire il server in questo modo:

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

Userà gli account utente creati nel passaggio precedente.

Integrazione del server dei contenuti di calibre dentro altri server

Qui ti mostreremo come integrare il Server dei Contenuti di calibre in un altro server. La ragione più comune per fare ciò è la possibilità di usare SSL o di rendere disponibile la biblioteca di calibre come parte di un sito più esteso. La tecnica di base è quella di eseguire il server di calibre e di configurare un reverse proxy che punti ad esso dal server principale.

Si ha un reverse proxy quando il tuo server normale accetta richieste in ingresso e le passa al server di calibre. Legge poi la risposta del server di calibre e la inoltra al client. Questo significa che puoi semplicemente eseguire il server di calibre nel solito modo, senza provare ad integrarlo strettamente nel tuo server principale.

Uso di un host virtuale completo

La più semplice configurazione possibile è quella di dedicare un host virtuale completo al server di calibre. In questo caso, esegui il server di calibre in questo modo:

calibre-server

Ora configura l’hosting virtuale nel tuo server principale, per esempio per 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;
    }
}

O, per 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>

Uso di un prefisso all’URL

Se non vuoi dedicare un host virtuale completo a calibre, puoi fare in modo che usi un prefisso all’URL. Avvia il server di calibre in questo modo:

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

Qui il parametro chiave è --url-prefix /calibre. Esso fa in modo che il Server dei Contenuti restituisca tutti gli URL con il prefisso /calibre. Per vedere come funziona, visita http://localhost:8080/calibre nel tuo browser. Dovresti vedere il solito sito web del Server dei Contenuti, ma adesso funzionerà sotto /calibre.

Con nginx, la configurazione richiesta è:

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;
}

Per Apache, devi prima abilitare i moduli proxy in Apache aggiungendo ciò che segue a httpd.conf:

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

La tecnica precisa per abilitare i moduli proxy varierà a seconda della tua installazione Apache. Una volta abilitati i moduli proxy, aggiungi le seguenti regole a httpd.conf (o se stai usando host virtuali al file conf per l’host virtuale in questione):

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

Questo è tutto, sarai ora in grado di accedere al Server dei Contenuti di calibre sotto l’URL /calibre nel tuo server principale. Le regole di cui sopra passano tutte le richieste sotto /calibre al server di calibre in esecuzione alla porta 8080 e grazie all’opzione --url-prefix di prima, il server di calibre le gestisce in modo trasparente.

Nota

Se usi un reverse proxy, dovresti dire al Server dei Contenuti di calibre di rimanere in ascolto solo su localhost, usando --listen-on 127.0.0.1. In questo modo il server rimarrà in ascolto solo per connessioni provenienti dallo stesso computer, ovvero dal reverse proxy.

Nota

Se hai configurato SSL per il tuo server principale, dovresti dire al server di calibre di usare una basic authentication invece di una digest, perché più rapida. Per fare ciò passa l’opzione --auth-mode=basic a calibre-server.

Creazione di un servizio per il server di calibre su un sistema Linux moderno

Puoi facilmente creare un servizio per eseguire calibre all’avvio in un moderno (systemd) sistema basato su Linux. Basta creare il file /etc/systemd/system/calibre-server.service con i contenuti mostrati qui sotto:

[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

Cambia mylinuxuser e mylinuxgroup in qualunque utente e gruppo da cui tu voglia che il server venga eseguito. Dovrebbero essere lo stesso utente e gruppo che sono proprietari dei file nella cartella della biblioteca di calibre. Tieni presente che in generale non è una buona idea eseguire il server come root. Modifica anche il percorso della cartella della biblioteca di calibre secondo le tue necessità. Se necessario puoi aggiungere più biblioteche. Vedi l’aiuto per il comando calibre-server.

Ora esegui:

sudo systemctl start calibre-server

per avviare il server. Controlla il suo stato con:

sudo systemctl status calibre-server

Per eseguirlo all’avvio del sistema. esegui:

sudo systemctl enable calibre-server

Nota

Il server di calibre non ha bisogno di un server X in esecuzione, ma ha bisogno delle librerie di X installate, perché alcuni componenti che utilizza contengono collegamenti ad esse.

Nota

Il server di calibre supporta anche l’attivazione socket di systemd, perciò, se ti serve, puoi usare anche questa opzione.