El servidor de contenidos de calibre

El Servidor de contenidos de calibre le permite acceder a las bibliotecas de calibre y leer libros directamente en un navegador, en un teléfono móvil o en un dispositivo portátil. Por lo tanto, no necesita instalar ninguna aplicación específica para leer o administrar libros. No tiene más que usar el navegador. El servidor descarga y almacena el libro que esté leyendo en un caché local, así que puede leer incluso si no tiene conexión a Internet.

Para iniciar el servidor, pulse en el botón Conectar y compartir y elija Iniciar servidor de contenido. Puede que reciba un mensaje del programa antivirus o cortafuegos del equipo preguntando si permite el acceso a calibre.exe. Pulse el botón Permitir o Aceptar. Después abra el navegador (preferentemente Chrome o Firefox) en el equipo y teclée la siguiente dirección:

Esto abrirá una página en el navegador mostrando las bibliotecas de calibre, pulse en cualquiera de ellas y explore sus libros. Pulse en un libro y le mostrará todos los metadatos del libro junto con botones para Leer libro y Descargar libro. Pulse el botón Leer libro para empezar a leer el libro.

Nota

La dirección usada anteriormente, http://127.0.0.1:8080, sólo funcionará en el equipo que está ejecutando calibre. Para acceder al servidor desde otro equipo, teléfono, etc. tendrá que realizar alguna acción adicional, como se describe en la siguiente sección.

Acceder al servidor de contenidos desde otros dispositivos

Hay dos tipos de acceso desde dispositivo remoto que normalmente necesitará. El primer tipo, más simple, es desde la red local. Si está ejecutando calibre en la red local y también ha conectado otros dispositivos a la misma red, debería poder acceder fácilmente al servidor desde estos dispositivos.

Acceder al servidor desde dispositivos en la red local

Una vez iniciado el servidor en calibre como se describe más arriba, pulse el botón Conectar y compartir de nuevo. En lugar de la acción Iniciar servidor de contenido debería ver una acción Detener servidor de contenido. A la derecha de esta acción habrá una dirección IP y número de puerto. Se trata de un conjunto de números separados por puntos. Por ejemplo:

Stop Content server [192.168.1.5, port 8080]

Estos números le dicen qué direcciones usar para conectar al servidor en los dispositivos. Siguiendo los ejemplos anteriores, la dirección resulta:

http://192.168.1.5:8080

La primera parte de la dirección es siempre http://, la siguiente parte es la dirección iP, que son los números antes de la coma, y finalmente tenemos el número de puerto, que debe añadirse a la dirección IP con dos puntos (:). Si tiene suerte, eso debería ser todo lo que necesite y ya estará viendo las bibliotecas de calibre en el dispositivo. Si no, siga leyendo.

Resolución de problemas de conexión en la red local

Si no es capaz de acceder al servidor desde el dispositivo, pruebe los siguientes pasos:

  1. Compruebe que el servidor está ejecutándose abriendo la dirección http://127.0.0.1:8080 en un navegador en el mismo equipo que el servidor.
  2. Compruebe que el cortafuegos o antivirus permite conexiones al equipo en el puerto 8080 y al programa calibre. La manera más sencilla de descartar el cortafuegos o antivirus como fuente de problemas es desactivarlos temporalmente y probar la conexión. Antes de desactivar el cortafuegos, para mantener el equipo a salvo, debería desconectarlo de Internet.
  3. Compruebe que el dispositivo y el equipo están en la misma red. Esto significa que ambos deberían estar conectado al mismo enrutador inalámbrico. En particular, ninguno debería estar usando una conexión de telefonía o conexión wifi directa con el proveedor.
  4. Si tiene una configuración de red no convencional, puede ser que la dirección IP mostrada en el menú Conectar y compartir sea incorrecta. En tal caso deberá averiguar cuál es la dirección IP correcta para usar por sí mismo. Por desgracia, dada la infinita variedad de configuraciones de red posibles, no es posible ofrecerle una guía para hacerlo.
  5. Si se queda atascado, puede pedir ayuda en los foros de usuarios de calibre.

Acceder al servidor desde cualquier parte en Internet

Advertencia

Antes de hacer esto, debe activar la protección de nombre de usuario y contraseña en el servidor, en caso contrario cualquier en cualquier parte del mundo podrá acceder a sus libros. Vaya a Preferencias > Compartir > Compartir por la red y active la opción Requerir nombre de usuario y contraseña para acceder al servidor de contenidos.

Aunque los detalles concretos para la configuración del acceso por Internet dependen de la configuración de red y del tipo de equipo que esté usando, el esquema básico es el siguiente.

  1. Averigüe la dirección IP externa del equipo en el que va a ejecutar el servidor. Puede hacer esto visitando la página What is my IP address en un navegador en el mismo equipo.
  2. Si el equipo está tras un enrutador, active el redireccionado de puertos en el enrutador para dirigir el puerto 8080 (o el puerto que elija para ejecutar el servidor de contenidos) al equipo.
  3. Asegúrese de que el servidor de calibre no está bloqueado por ningún cortafuegos o antivirus en el equipo.
  4. Ahora deberá poder acceder al servidor desde cualquier dispositivo conectado a Internet usando la dirección IP que encontró en el primer paso. Por ejemplo, si la dirección IP es 123.123.123.123 y el puerto que está usando para el servidor de calibre es 8080, la dirección que debe usar en el dispositivo será: http://123.123.123.123:8080.
  5. De manera opcional, use un servicio como no-ip para configurar una dirección fácil de recordar en lugar de la dirección IP que encontró en el primer paso.

Nota

Para máxima seguridad, debería también activar HTPPS en el servidor de contenidos. Puede hacer lo directamente en el servidor suministrando la ruta de acceso al certificado HTTPS para usar en las opciones de configuración avanzada del servidor, o puede configurar un proxy inverso como se describe a continuación, para usar una configuración HTTPS ya existente.

La interfaz del servidor

La interfaz del servidor es una versión simplificada de la interfaz principal de calibre, optimizada para su uso con pantallas táctiles. La pantalla principal muestra los libros que está leyendo actualmente y le permite elegir una biblioteca de calibre para explorar. El servidor de calibre 3 le da acceso a todas las bibliotecas, no sólo a una como anteriormente.

La lista de libros

La lista de libros del servidor es un cuadro de portadas. Pulse en una portada para ver los metadatos del libro o leer el libro. Si prefiere una lista más detallada puede cambiar la vista predeterminada pulsando en los tres puntos verticales en la esquina superior derecha.

Ordenar y buscar la lista de libros deberían ser opciones conocidas para los usuarios de calibre. Se puede acceder a ellas pulsando en sus iconos en la zona superior derecha. Funcionan exactamente igual que en el programa principal de calibre. La página de búsque le permite incluso construir consultas de búsqueda pulsando sobre autores, etiquetas, etc., como cuando se usa el explorador de etiquetas en el programa principal.

Las Bibliotecas virtuales, opción muy apreciada en el programa principal, existen también en la interfaz del servidor. Pulse en los tres puntos verticales en la esquina superior derecha para elegir una biblioteca virtual.

El lector de libros

Puede leer cualquier libro en la biblioteca de calibre simplemente pulsando sobre él y luego en el botón Leer libro. El lector de libros es muy fácil de manejar. Puede pulsar o deslizar para pasar páginas. Si desliza arriba o abajo saltará capítulos. Al pulsar en el cuarto superior de la pantalla se muestran los controles detallados y las preferencias del visor.

Puede dejar el servidor de contenidos ejecutándose, incluso puede abrir el mismo libro en varios dispositivos y se mantendrá la última posición de lectura. Si no es así, puede forzar la sincronización pulsando en el cuarto superior y eligiendo Sincronizar.

Nota

En la versión inicial, el lector de libros es completamente operativo, pero faltan algunas opciones más avanzadas del lector principal de calibre, como notas emergentes, marcadores y anotaciones en general. Estas opciones se añadirán en su momento. De hecho, el lector del navegador está diseñado para sustiuir al lector principal una vez que esté maduro.

Soporte de navegadores

El nuevo servidor de calibre hace uso de características avanzadas HTML 5 y CSS 3. Por lo tanto, requiere el uso de un navegador actualizado. Se ha probado en Chrome sobre Android y Safari sobre iOS, así como en Chrome y Firefox en el escritorio. Se sabe que no funciona con Internet Explorer o Microsoft Edge (esperemos que Microsoft Edge funcione cuando Microsoft decida implementar unos cuantos estándares que faltan).

El servidor procura usar características que han sido aceptadas como estándar o están en el camino. Por lo tanto, si actualmente no funciona en su navegador preferido, probablemente funcione una vez que el navegador se haya actualizado.

Si está usando un navegador antiguo o limitado o si no quiere ejecutar JavaScript, pude usar la vista móvil, simplimente añadiendo /mobile a la dirección del servidor.

Nota

En iOS, Apple permite un único motor de navegador, así que Firefox, Chrome y Safari son en realidad el mismo navigador en su interior. La nueva interfaz del navegador requiere iOS 10.3.2 o posterior. En Android, el servidor se ha probado con Chrome, versión 58 y posterior.

Administrar cuentas de usuario en la línea de órdenes

El programa calibre tiene una sección en Preferencias que le permite administrar las cuentas de usuario del servidor. Sin embargo, si quiere ejecutar el servidor independiente y no puede ejectuar el programa principal de calibre en el mismo equipo o con el mismo usuario, también puede administrar las cuentas de usuario en la línea de órdenes.

Puede administrar las cuentas de usuario con la opción --manage-users del programa independiente calibre-server. Supongamos que quiere almacenar la base de datos de usuarios en el directorio /srv/calibre, la puede crear ejecutando:

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

Siga las indicaciones para crear cuentas de usuario, asignar permisos, etc. Cuando termine, puede ejecutar el servidor como:

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

Usará las cuentas de usuario creadas en el paso anterior.

Integrar el servidor de contenidos de calibre en otros servidores

Aquí le mostraremos cómo integrar el servidor de contenidos de calibre en otro servidor. La razón más común para esto es hacer uso de SSL o para incorporar la biblioteca de calibre como parte de otra página. La técnica básica es ejecutar el servidor de calibre y configurar un proxy inverso a éste desde el servidor principal.

Un proxy inverso es cuando el servidor principal acepta peticiones entrantes y las traslada al servidor de calibre. A continuación, lee la respuesta desde el servidor de calibre y la envía al cliente. Esto significa que sólo tiene que ejecutar el servidor de calibre de forma normal sin tratar de integrarlo estrechamente con el servidor principal.

Usar un servidor virtual completo

La configuración más sencilla es dedicar un servidor virtual completo al servidor de calibre. En este caso, ejecute el servidor de calibre como:

calibre-server

Ahora configure el servidor virtual en el servidor principal, por ejemplo, para nginx:

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

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

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

Usar un prefijo de URL

Si no quiere dedicar un servidor virtual completo a calibre, puede hacer que use un prefijo de URL. Inicie el servidor de calibre como:

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

El parámetro clave aquí es --url-prefix /calibre. Esto hace que el servidor de contenidos sirva todos los URL con el prefijo calibre. Para verlo en acción, visite http://localhost:8080/calibre en su navegador. Debería ver la página web habitual del servidor de contenido, pero ahora se ejecutará desde /calibre.

Con nginx, la configuración necesaria es:

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

Para Apache, primero active los módulos de proxi añadiendo lo siguiente a httpd.conf:

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

La técnica exacta para habilitar los módulos proxy variará según la instalación de Apache. Una vez que tenga los módulos proxy habilitados, agregue las siguientes reglas a httpd.conf (o, si está usando servidores virtuales, al archivo conf del servidor virtual en cuestión):

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

Eso es todo, ahora podrá acceder al servidor de contenidos de calibre bajo el URL /calibre en su servidor principal. Las reglas anteriores pasan todas las peticiones bajo /calibre al servidor de calibre que se ejecuta en el puerto 8080 y gracias a la opción --url-prefix mencionada anteriormente, el servidor de calibre las gestiona de forma transparente.

Nota

Al usar un proxy inverso, debe decirle al servidor de contenidos de calibre que atienda sólo a peticiones del servidor local, usando --listen-on 127.0.0.1. De esta forma, el servidor sólo recibirá conexiones del mismo equipo, es decir, del proxy inverso.

Nota

Si ha configurado autenticación SSL en el servidor principal, debe decirle a calibre que use autenticación básica en lugar de «digest», pues es más rápida. Para ello, pase la opción --auth-mode=basic a calibre-server.

Creating a service for the calibre server on a modern Linux system

You can easily create a service to run calibre at boot on a modern (systemd) based Linux system. Just create the file /etc/systemd/system/calibre-server.service with the contents shown below:

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

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

[Install]
WantedBy=multi-user.target

Change mylinuxuser and mylinuxgroup to whatever user and group you want the server to run as. This should be the same user and group that own the files in the calibre library directory. Note that it is generally not a good idea to run the server as root. Also change the path to the calibre library directory to suit your system. You can add multiple libraries if needed. See the help for the calibre-server command.

Now run:

sudo systemctl start calibre-server

to start the server. Check its status with:

sudo systemctl status calibre-server

To make it start at boot, run:

sudo systemctl enable calibre-server

Nota

The calibre server does not need a running X server, but it does need the X libraries installed as some components it uses link against them.

Nota

The calibre server also supports systemd socket activation, so you can use that, if needed, as well.