Skip to content

Calibre server containerized to provide a web interface with upload ebooks functionality and e-ink browser compatible

License

Notifications You must be signed in to change notification settings

lucapisciotta/calibre

Repository files navigation

lucapisciotta/calibre


CI

Calibre server is an application to read, download and manage our eBooks. In this image i put in a sample eBook that permit to see how the application works. To manage the library, I advise to use calibre client on your machine, in this way you're able to add the tags, download the descriptions and fix the eBook code to show correctly on you eReader.

The image is based on the debian:unstable (necessary to have the last calibre's offical version) and the offical calibre package provided by Kovid Goyal

Why I have chosen to use this package and not calibre-web?


I've an Amazon kindle and all other projects that i tried have no compatibility with e-Ink display and its browser but, this has it.

Supported architectures


This image supports different architecture: x86_64, arm64. arm32 isn't supported anymore.

Application Setup


WebUI can be found at http://your-ip:8085.

If you want to use a mobile and eReader compatibilty version, http://your-ip:8085/mobile.

Initially, you can try this image without an existing library because I've added a sample eBook. When you're ready and you've created your library you can simply pass it to /books.

I've enabled the function to add new ebooks directly from the WebUI but this is available only from the same local network (With an IP in these subnets 192.168.0.0/16, 172.16.0.0/12 and 10.0.0.0/8)

If you need to enable the authentication you can simply add ENABLE_AUTH=true in the environemnt variables and pass your users database as a volume that point to /srv/calibre/users.sqlite. If you want to try the authentication system you can simply add the variable and pass ADMIN_PASSWORD=yourpassword to the container or use the default password which is ChangeMe!.

Usage


Here are some example snippets to help you get started creating a container.

docker-compose

---
version: '3.8'
services:
    calibre:
        image: lucapisciotta/calibre
        container_name: calibre
        user: 1002:1002
        environment:
            - ADMIN_PASSWORD=yourpassword
            - ENABLE_AUTH=true
            - TZ=Europe/Rome
        volumes:
            - /path/to/calibre/library:/books
            - /path/to/your/users/database:/srv/calibre/users.sqlite
        ports:
            - 8085:8085
        restart: unless-stopped

docker-cli

docker run -d \
    --name=calibre \
    -e ADMIN_PASSWORD=yourpassword  \
    -e ENABLE_AUTH=true  \
    -e TZ=Europe/Rome \
    -p 8085:8085 \
    -u 1002:1002 \
    -v /path/to/calibre/library:/books \
    -v /path/to/your/users/database:/srv/calibre/users.sqlite \
    --restart unless-stopped \
    lucapisciotta/calibre

Parameters


Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 8085:8085 WebUI
-u USER_ID:GROUP_ID Optional - You can define custom user ID and group ID to fit your volumes permissions
-e ADMIN_PASSWORD=yourpassword Optional - You need to add it only if you want to change the default password in the example database.
-e ENABLE_AUTH Optional - you need to add it only if you need the authentication.
-e TZ=Europe/Rome Specify a timezone to use Europe/Rome or the timezone that you prefer.
-v /path/to/calibre/library:/books Where your preexisting calibre database is located.
-v /path/to/your/users/database:/srv/calibre/users.sqlite Optional - you need to add it only if you want to pass your custom users database

User / Group Identifiers


When using volumes (-v flags) permissions issues can arise between the host OS and the container, to avoid this issue you can specify the user and group IDs. Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. To find yours use id user as below:

  $ id username
    uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)

Sources


Docker image repository: https://github.com/lucapisciotta/calibre

Calibre official repository: https://github.com/kovidgoyal/calibre

About

Calibre server containerized to provide a web interface with upload ebooks functionality and e-ink browser compatible

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published