Giter Site home page Giter Site logo

docker-calibre-server's Introduction

Docker Image Version (latest semver) Docker Cloud Build Status Docker Cloud Automated build Docker Pulls Docker Image Size (tag)

Automatically updating Docker image for calibre-server. The image contains a minimal Calibre installation and starts a Calibre server. The current version should correspond with the latest Calibre release.

Note: This image is unofficial and not affiliated with Calibre.

Usage

Calibre server is a REST API + web interface for Calibre. For more information about usage of calibre-server itself, refer to the user guide and the CLI manual of Calibre.

Use case 1: Standalone container for local use

$ docker run -ti -p 8080:8080 wietsedv/calibre-server -v /path/to/library:/library

Now you have read+write access to your library via localhost:8080.

Use case 2: Access from other containers within network

The command of "Use case 1" gives r+w access to your library on the host machine, but other containers in the network have readonly access. Calibre does not allow giving global r+w access without whitelisting or authentication. To give write access to other containers you should use the Docker host network type (not recommended) or you can whitelist containers within the bridge network:

$ docker run -ti -p 8080:8080 -v /path/to/library:/library -e TRUSTED_HOSTS="web1 web2" wietsedv/calibre-server

Note: IP addresses of whitelisted containers (web1 and web2) are resolved when calibre-server starts. So containers that need to access calibre-server have to start before calibre-server.

Use case 3: Docker compose (recommended)

You can get the same setup as "Use case 2" with this docker-compose.yaml:

services:
    calibre:
        image: wietsedv/calibre-server
        volumes:
            - /path/to/library:/library
        ports: 
            - "8080:8080"
        depends_on:  # start web1 and web2 before calibre
            - web1
            - web2
        environment:
            TRUSTED_HOSTS: web1 web2  # whitelist web1 and web2
    
    web1:
        image: nginx:alpine

    web2:
        image: nginx:alpine

docker-calibre-server's People

Contributors

wietsedv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

docker-calibre-server's Issues

modifications for existing calibre library/config

Not really an issue, but maybe a suggestion.

I've been containerizing many of my local services and calibre is my latest adventure. I've been running calibre-server on 2 machines locally for several years - I have a couple libraries that I maintain. I've written a script that let me add books, delete books, etc via the calibre api - which out of the box this base container did not support.

So I've tweaked some things in my deployment of this docker container (running with podman on Fedora 35).
I added a volume that gets mounted on /config and then moved the start script from the root directory into /config and then sym linked it back to root. I then can tweak the start script to enable the "--enable-auth" option to allow uploads via the API.

I also symlinked /root/.config/calibre to /config/calibre which then let me re-use my existing calibre config with my username, etc

I know I could probably fork this but just figured I would comment here.

Dockercompose file is failing at step 8

The docker compose file fails at step8.

Step 8/11 : RUN /opt/calibre/calibre_postinstall &&     mkdir /library &&     touch /library/metadata.db
 ---> Running in 395acd0c16a9
/opt/calibre/bin/calibre_postinstall: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /opt/calibre/lib/libpython3.10.so.1.0)
/opt/calibre/bin/calibre_postinstall: /lib/x86_64-linux-gnu/libpthread.so.0: version `GLIBC_2.30' not found (required by /opt/calibre/lib/libpython3.10.so.1.0)
The command '/bin/sh -c /opt/calibre/calibre_postinstall &&     mkdir /library &&     touch /library/metadata.db' returned a non-zero code: 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.