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:

http://127.0.0.1:8080

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 y Descargar el libro. Pulse el botón Leer 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 ha configurado un nombre de usuario y contraseña, pruebe primero sin ellos para comprobar si están causando problemas. Algunos dispositivos de lectura tienen navegadores que no admiten autenticación. A veces puede solucionarlo incluyendo el nombre de usuario y la contraseña en el URL, por ejemplo: http://usuario:contraseña@192.168.1.2:8080.

  6. 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 le da acceso a todas las bibliotecas, no sólo a una como ocurría con anterioridad.

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úsqueda 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. 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.

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.

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.

Activar modo sin conexión

Los creadores de navegadores han estado tratando de hacer que la gente use SSL a base de desactivar funciones avanzadas en los navegadores para conexiones HTTP. Una de estas bajas es ApplicationCache, que es lo que usaba calibre para el modo sin conexión. Como resultado, por desgracia en la actualidad, el modo sin conexión funciona sólo mientras esté abierta la pestaña del navegador. Además, en Firefox para Android, tendra que visitar about:config, crear una preferencia con el nombre browser.tabs.useCache y activarla.

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 la carpeta /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:

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, 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:

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

Para Apache, primero active los módulos de proxy 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.

Crear un servicio para el servidor de calibre en un sistema Linux moderno

Crear un servicio para ejecutar calibre en el arranque de un sistema basado en Linux moderno (systemd) es sencillo. No tiene más que crear el archivo /etc/systemd/system/calibre-server.service con el siguiente contenido:

[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

Cambio mylinuxuser y mylinuxgroup al usuario y grupo bajo los que quiere que se ejecute el servidor. Debería ser el mismo usuario y grupo al que pertenecen los archivos en la carpeta de la biblioteca de calibre. Tenga en cuenta que no suele ser una buena idea ejecutar el servidor como superusuario. Cambie también la ruta de acceso a la carpeta de la biblioteca de calibre según su caso. Puede añadir varias bibliotecas si lo desea. Vea la ayuda para la orden calibre-server.

Ahora ejecute:

sudo systemctl start calibre-server

para iniciar el servidor. Compruebe su estado con:

sudo systemctl status calibre-server

Para hacer que se inicie en el arranque, ejecute:

sudo systemctl enable calibre-server

Nota

El servidor de calibre no necesita un servidor X en ejecución, pero necesita tener instaladas las bibliotecas X, pues algunos de los componentes que usa enlazan con ellas.

Nota

El servidor de calibre también permite activación de sockets systemd, así que también puede usar esta opción, si es necesario.