Git Product home page Git Product logo

docker-calibre-web's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself.

This software is a fork of library and licensed under the GPL v3 License.

calibre-web

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/calibre-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Version Tags

This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.

Tag Available Description
latest Releases of Calibre-Web
nightly Commits to the master branch of Calibre-Web

Application Setup

Webui can be found at http://your-ip:8083

On the initial setup screen, enter /books as your calibre library location.

Default admin login: Username: admin Password: admin123

If you lock yourself out or forget a password, you will need to specify the app.db similar to this: docker exec -it calibre-web python3 /app/calibre-web/cps.py -p /config/app.db -s <user>:<pass> If you fail to specify the proper db, it will appear to succeed, but it will not work.

Unrar is included by default and needs to be set in the Calibre-Web admin page (Basic Configuration:External Binaries) with a path of /usr/bin/unrar

64bit only We have implemented the optional ability to pull in the dependencies to enable ebook conversion utilising Calibre, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as shown in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Calibre E-Book Converter to /usr/bin/ebook-convert

This image contains the kepubify ebook conversion tool (MIT License) to convert epub to kepub. In the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Kepubify E-Book Converter to /usr/bin/kepubify

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - DOCKER_MODS=linuxserver/mods:universal-calibre #optional
      - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
    volumes:
      - /path/to/data:/config
      - /path/to/calibre/library:/books
    ports:
      - 8083:8083
    restart: unless-stopped
docker run -d \
  --name=calibre-web \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \
  -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \
  -p 8083:8083 \
  -v /path/to/data:/config \
  -v /path/to/calibre/library:/books \
  --restart unless-stopped \
  lscr.io/linuxserver/calibre-web:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> 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 8083 WebUI
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-e DOCKER_MODS=linuxserver/mods:universal-calibre #optional & x86-64 only Adds the ability to perform ebook conversion
-e OAUTHLIB_RELAX_TOKEN_SCOPE=1 Optionally set this to allow Google OAUTH to work
-v /config Where calibre-web stores the internal database and config.
-v /books Where your preexisting calibre database is located.

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it calibre-web /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f calibre-web
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/calibre-web:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull calibre-web
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d calibre-web
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/calibre-web:latest
  • Stop the running container:

    docker stop calibre-web
  • Delete the container:

    docker rm calibre-web
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-calibre-web.git
cd docker-calibre-web
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/calibre-web:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 17.10.23: - Remove some packages that are required by the calibre mod but not the base container.
  • 07.10.23: - Install unrar from linuxserver repo. Switch to Python virtual environment.
  • 13.04.23: - Deprecate armhf.
  • 27.03.23: - Add cmake as build dep for Levenshtein.
  • 27.12.22: - Add ghostscript, libxtst6, libxkbfile-dev.
  • 20.12.22: - Improve init script and prevent harmless error.
  • 19.10.22: - Rebase to jammy. Upgrade to s6v3. Clean up build dependencies.
  • 04.11.21: - Update pip arguments to ignore distro installed packages.
  • 24.06.21: - Add note on optional OAUTHLIB_RELAX_TOKEN_SCOPE for Google OAUTH support.
  • 17.05.21: - Add linuxserver wheel index.
  • 10.02.21: - Add libxrandr2
  • 25.01.21: - Add nightly tag
  • 19.01.21: - Add python3-pkg-resources
  • 13.01.21: - Rebase to Ubuntu Focal, see here for troubleshooting armhf.
  • 12.10.20: - Add libxi6
  • 12.07.20: - Add kepubify for arm64v8
  • 05.06.20: - Add kepubify for x86-64 and arm32v7
  • 06.05.20: - Add libxslt1.1 and update ImageMagick policy
  • 19.01.20: - Adding LDAP libs.
  • 13.10.19: - Migrate to Python3.
  • 01.08.19: - Add libxcomposite1.
  • 13.06.19: - Add docker mod to enable optional ebook conversion on x86-64. Add unrar.
  • 02.06.19: - Rebase to Ubuntu Bionic & add Gdrive support.
  • 23.03.19: - Switching to new Base images, shift to arm32v7 tag.
  • 23.02.19: - Rebase to alpine 3.9, use repo version of imagemagick.
  • 11.02.19: - Add pipeline logic and multi arch.
  • 03.01.19: - Remove guest user from default app.db.
  • 16.08.18: - Rebase to alpine 3.8.
  • 03.07.18: - New build pushed, all versions below 67 have vulnerability.
  • 05.01.18: - Deprecate cpu_core routine lack of scaling.
  • 06.12.17: - Rebase to alpine 3.7.
  • 27.11.17: - Use cpu core counting routine to speed up build time.
  • 24.07.17: - Curl version for imagemagick.
  • 17.07.17: - Initial release.

docker-calibre-web's People

Contributors

aptalca avatar artbird309 avatar chbmb avatar drizuid avatar homerr avatar itsthejb avatar j0nnymoe avatar linuxserver-ci avatar nemchik avatar quietsy avatar roxedus avatar sparklyballs avatar thelamer avatar thespad avatar tobbenb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-calibre-web's Issues

Permission error while creating database?

Operating system: Debian with OpenMediaVault
Docker log:

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[2019-03-26 19:01:34,177] INFO in web: Starting Calibre Web...
[2019-03-26 19:01:34,597] INFO in server: Starting Gevent server

My configuration:

Calibre-web container has /Data/Ebooks mounted as /books. /Data/Ebooks/ is 2755 and root:users ownership (standard permissions in OMV, cannot really be changed).
Calibre-web container is running with PUID = 1001 (standard user account on host system) and PGID = 100 (users group on host system), but earlier i also tried running it as PUID = 0 (root account on host system) without any luck.
When i run "docker exec -it calibre-web /bin/bash" command on the host system, i do have full read/write access to /books folder.
But when i'm trying to set up Calibre-web client with "/books" library location, im getting the following error: "DB location is not valid, please enter correct path"

Thanks, team linuxserver.io

DB location is not valid, please enter correct path

Run:

docker run -dit \
  --restart unless-stopped \
  --name=calibre-web \
  -v /data/docker/calibre-web/config:/config \
  -v /data/docker/calibre-web/books:/books \
  -e PGID=1248 -e PUID=1248  \
  -p 8083:8083 \
  linuxserver/calibre-web

Error:

DB location is not valid, please enter correct path

ref: https://github.com/linuxserver/docker-calibre-web#setting-up-the-application

I've checked similar issue Initial setup /books error #28. It doesn't seems like file permission error, checked inside container and also outside on mounted volume.

Starting fresh container gives "internal server error"

When starting a Container without any preexisting database or config-files the app results in responding "internal server error".

Expected Behavior

I expect a setup-wizard or alike to guide me through setting up calibre-web.

Current Behavior

Browser returns "Internal Server Error".

Steps to Reproduce

  1. create folders according to the mapping of the command below
  2. execute the command
  3. wait for the application to become ready
  4. open the url in a browser: http://localhost:8083/

Environment

OS: Fedora Core 31
CPU architecture: x86_64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

$ docker run \
  --name=calibre-web \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/Berlin \
  -e DOCKER_MODS=linuxserver/calibre-web:calibre \
  -p 8083:8083 \
  -v $PWD/config:/config \
  -v $PWD/books:/books \
  --restart unless-stopped \
  linuxserver/calibre-web

Docker logs

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such column: user.denied_tags

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/app/calibre-web/cps/web.py", line 207, in inner
    return f(*args, **kwargs)
  File "/app/calibre-web/cps/admin.py", line 477, in basic_configuration
    logout_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 198, in logout_user
    user = _get_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 346, in _get_user
    current_app.login_manager._load_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/login_manager.py", line 336, in _load_user
    return self._update_request_context_with_user(user)
  File "/usr/local/lib/python3.6/dist-packages/flask_login/login_manager.py", line 296, in _update_request_context_with_user
    ctx.user = self.anonymous_user() if user is None else user
  File "/app/calibre-web/cps/ub.py", line 225, in __init__
    self.loadSettings()
  File "/app/calibre-web/cps/ub.py", line 228, in loadSettings
    data = session.query(User).filter(User.role.op('&')(constants.ROLE_ANONYMOUS) == constants.ROLE_ANONYMOUS).first()  # type: User
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3287, in first
    ret = list(self[0:1])
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3065, in __getitem__
    return list(res)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3389, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3414, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 982, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py", line 293, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1101, in _execute_clauseelement
    distilled_params,
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1250, in _execute_context
    e, statement, parameters, cursor, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: user.denied_tags
[SQL: SELECT user.id AS user_id, user.nickname AS user_nickname, user.email AS user_email, user.role AS user_role, user.password AS user_password, user.kindle_mail AS user_kindle_mail, user.locale AS user_locale, user.sidebar_view AS user_sidebar_view, user.default_language AS user_default_language, user.mature_content AS user_mature_content, user.denied_tags AS user_denied_tags, user.allowed_tags AS user_allowed_tags, user.denied_column_value AS user_denied_column_value, user.allowed_column_value AS user_allowed_column_value
FROM user
WHERE (user.role & ?) = ?
 LIMIT ? OFFSET ?]
[parameters: (32, 32, 1, 0)]
(Background on this error at: http://sqlalche.me/e/e3q8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such column: user.denied_tags

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/gevent/pywsgi.py", line 976, in handle_one_response
    self.run_application()
  File "/usr/local/lib/python3.6/dist-packages/gevent/pywsgi.py", line 923, in run_application
    self.result = self.application(self.environ, self.start_response)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2463, in __call__
    return self.wsgi_app(environ, start_response)
  File "/app/calibre-web/cps/reverseproxy.py", line 80, in __call__
    return self.app(environ, start_response)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2449, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1878, in handle_exception
    server_error = handler(server_error)
  File "/app/calibre-web/cps/web.py", line 101, in internal_error
    instance=config.config_calibre_web_title
  File "/usr/local/lib/python3.6/dist-packages/flask/templating.py", line 136, in render_template
    ctx.app.update_template_context(context)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 838, in update_template_context
    context.update(func())
  File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 379, in _user_context_processor
    return dict(current_user=_get_user())
  File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 346, in _get_user
    current_app.login_manager._load_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/login_manager.py", line 336, in _load_user
    return self._update_request_context_with_user(user)
  File "/usr/local/lib/python3.6/dist-packages/flask_login/login_manager.py", line 296, in _update_request_context_with_user
    ctx.user = self.anonymous_user() if user is None else user
  File "/app/calibre-web/cps/ub.py", line 225, in __init__
    self.loadSettings()
  File "/app/calibre-web/cps/ub.py", line 228, in loadSettings
    data = session.query(User).filter(User.role.op('&')(constants.ROLE_ANONYMOUS) == constants.ROLE_ANONYMOUS).first()  # type: User
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3287, in first
    ret = list(self[0:1])
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3065, in __getitem__
    return list(res)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3389, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3414, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 982, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py", line 293, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1101, in _execute_clauseelement
    distilled_params,
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1250, in _execute_context
    e, statement, parameters, cursor, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: user.denied_tags
[SQL: SELECT user.id AS user_id, user.nickname AS user_nickname, user.email AS user_email, user.role AS user_role, user.password AS user_password, user.kindle_mail AS user_kindle_mail, user.locale AS user_locale, user.sidebar_view AS user_sidebar_view, user.default_language AS user_default_language, user.mature_content AS user_mature_content, user.denied_tags AS user_denied_tags, user.allowed_tags AS user_allowed_tags, user.denied_column_value AS user_denied_column_value, user.allowed_column_value AS user_allowed_column_value
FROM user
WHERE (user.role & ?) = ?
 LIMIT ? OFFSET ?]
[parameters: (32, 32, 1, 0)]
(Background on this error at: http://sqlalche.me/e/e3q8)
2020-02-24T19:40:44Z {'REMOTE_ADDR': '::ffff:10.10.0.1', 'REMOTE_PORT': '50582', 'HTTP_HOST': 'localhost:8083', (hidden keys: 29)} failed with OperationalError

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such column: user.denied_tags

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/app/calibre-web/cps/web.py", line 207, in inner
    return f(*args, **kwargs)
  File "/app/calibre-web/cps/admin.py", line 477, in basic_configuration
    logout_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 198, in logout_user
    user = _get_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 346, in _get_user
    current_app.login_manager._load_user()
  File "/usr/local/lib/python3.6/dist-packages/flask_login/login_manager.py", line 336, in _load_user
    return self._update_request_context_with_user(user)
  File "/usr/local/lib/python3.6/dist-packages/flask_login/login_manager.py", line 296, in _update_request_context_with_user
    ctx.user = self.anonymous_user() if user is None else user
  File "/app/calibre-web/cps/ub.py", line 225, in __init__
    self.loadSettings()
  File "/app/calibre-web/cps/ub.py", line 228, in loadSettings
    data = session.query(User).filter(User.role.op('&')(constants.ROLE_ANONYMOUS) == constants.ROLE_ANONYMOUS).first()  # type: User
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3287, in first
    ret = list(self[0:1])
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3065, in __getitem__
    return list(res)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3389, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py", line 3414, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 982, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py", line 293, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1101, in _execute_clauseelement
    distilled_params,
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1250, in _execute_context
    e, statement, parameters, cursor, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1476, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: user.denied_tags
[SQL: SELECT user.id AS user_id, user.nickname AS user_nickname, user.email AS user_email, user.role AS user_role, user.password AS user_password, user.kindle_mail AS user_kindle_mail, user.locale AS user_locale, user.sidebar_view AS user_sidebar_view, user.default_language AS user_default_language, user.mature_content AS user_mature_content, user.denied_tags AS user_denied_tags, user.allowed_tags AS user_allowed_tags, user.denied_column_value AS user_denied_column_value, user.allowed_column_value AS user_allowed_column_value
FROM user
WHERE (user.role & ?) = ?
 LIMIT ? OFFSET ?]
[parameters: (32, 32, 1, 0)]
(Background on this error at: http://sqlalche.me/e/e3q8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 588, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such column: user.denied_tags

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/gevent/pywsgi.py", line 976, in handle_one_response
    self.run_application()
  File "/usr/local/lib/python3.6/dist-packages/gevent/pywsgi.py", line 923, in run_application
    self.result = self.application(self.environ, self.start_response)

1 wrong exec in armhf image (Raspberry Pi - buster)

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Current Behavior

[cont-init.d] 60-calibre-config: executing... ,
/var/run/s6/etc/cont-init.d/60-calibre-config: line 4: /app/calibre/calibre_postinstall: cannot execute binary file: Exec format error,

Environment

OS: OMV5 - rasbian buster
CPU architecture: arm64
How docker service was installed:
via OMV5 interface

Command used to create docker container (run/create/compose/screenshot)

docker create
--name=calibre-web
-e DOCKER_MODS=linuxserver/calibre-web:calibre
-p 8083:8083
-v /home/pi/Calibre:/config
-v /home/pi/eBooks:/ebooks
--restart unless-stopped
linuxserver/calibre-web

Docker logs

[mod-init] Attempting to run Docker Modification Logic,
[mod-init] Applying linuxserver/calibre-web:calibre files to container,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] 01-envfile: executing... ,
[cont-init.d] 01-envfile: exited 0.,
[cont-init.d] 10-adduser: executing... ,
usermod: no changes,
,
-------------------------------------,
          _         (),
         | |  ___   _    __,
         | | / __| | |  /  \ ,
         | | \__ \ | | | () |,
         |_| |___/ |_|  \__/,
,
,
Brought to you by linuxserver.io,
We gratefully accept donations at:,
https://www.linuxserver.io/donate/,
-------------------------------------,
GID/UID,
-------------------------------------,
,
User uid:    911,
User gid:    911,
-------------------------------------,
,
[cont-init.d] 10-adduser: exited 0.,
[cont-init.d] 30-config: executing... ,
[cont-init.d] 30-config: exited 0.,
[cont-init.d] 60-calibre-config: executing... ,
/var/run/s6/etc/cont-init.d/60-calibre-config: line 4: /app/calibre/calibre_postinstall: cannot execute binary file: Exec format error,
,
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.,
,
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease [242 kB],
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease [88.7 kB],
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease [74.6 kB],
Get:4 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease [88.7 kB],
Get:5 http://ports.ubuntu.com/ubuntu-ports bionic/restricted armhf Packages [12.5 kB],
Get:6 http://ports.ubuntu.com/ubuntu-ports bionic/universe armhf Packages [11.0 MB],
Get:7 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf Packages [1,277 kB],
Get:8 http://ports.ubuntu.com/ubuntu-ports bionic/multiverse armhf Packages [157 kB],
Get:9 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe armhf Packages [1,133 kB],
Get:10 http://ports.ubuntu.com/ubuntu-ports bionic-updates/multiverse armhf Packages [4,605 B],
Get:11 http://ports.ubuntu.com/ubuntu-ports bionic-updates/restricted armhf Packages [10.6 kB],
Get:12 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf Packages [768 kB],
Get:13 http://ports.ubuntu.com/ubuntu-ports bionic-backports/main armhf Packages [2,490 B],
Get:14 http://ports.ubuntu.com/ubuntu-ports bionic-backports/universe armhf Packages [4,246 B],
Get:15 http://ports.ubuntu.com/ubuntu-ports bionic-security/multiverse armhf Packages [2,077 B],
Get:16 http://ports.ubuntu.com/ubuntu-ports bionic-security/universe armhf Packages [666 kB],
Get:17 http://ports.ubuntu.com/ubuntu-ports bionic-security/main armhf Packages [500 kB],
Get:18 http://ports.ubuntu.com/ubuntu-ports bionic-security/restricted armhf Packages [5,013 B],
Fetched 16.0 MB in 30s (537 kB/s),
Reading package lists...,
Building dependency tree...,
Reading state information...,
All packages are up to date.,
,
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.,
,
Reading package lists...,
Building dependency tree...,
Reading state information...,
The following additional packages will be installed:,
  libdrm-amdgpu1 libdrm-common libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2,
  libelf1 libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libglx0,
  libllvm9 libsensors4 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0,
  libxcb-present0 libxcb-sync1 libxdamage1 libxfixes3 libxshmfence1,
  libxxf86vm1,
Suggested packages:,�
  lm-sensors,
The following NEW packages will be installed:,
  libdrm-amdgpu1 libdrm-common libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2,
  libelf1 libgl1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0,
  libglx-mesa0 libglx0 libllvm9 libsensors4 libx11-xcb1 libxcb-dri2-0,
  libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-sync1 libxdamage1,
  libxfixes3 libxshmfence1 libxxf86vm1,
0 upgraded, 26 newly installed, 0 to remove and 0 not upgraded.,
Need to get 18.5 MB of archives.,
After this operation, 432 MB of additional disk space will be used.,
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf libxxf86vm1 armhf 1:1.1.4-1 [9,770 B],
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libelf1 armhf 0.170-0.4ubuntu0.1 [42.9 kB],
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libdrm-common all 2.4.99-1ubuntu1~18.04.2 [5,328 B],
Get:4 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libdrm2 armhf 2.4.99-1ubuntu1~18.04.2 [27.6 kB],
Get:5 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf libedit2 armhf 3.1-20170329-1 [61.9 kB],
Get:6 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libdrm-amdgpu1 armhf 2.4.99-1ubuntu1~18.04.2 [16.7 kB],
Get:7 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libdrm-nouveau2 armhf 2.4.99-1ubuntu1~18.04.2 [14.7 kB],
Get:8 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libdrm-radeon1 armhf 2.4.99-1ubuntu1~18.04.2 [19.6 kB],
Get:9 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libglapi-mesa armhf 19.2.8-0ubuntu0~18.04.3 [32.2 kB],
Get:10 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libllvm9 armhf 1:9-2~ubuntu18.04.2 [12.8 MB],
Get:11 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf libsensors4 armhf 1:3.4.0-4 [25.8 kB],
Get:12 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libgl1-mesa-dri armhf 19.2.8-0ubuntu0~18.04.3 [5,036 kB],
Get:13 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libglvnd0 armhf 1.0.0-2ubuntu2.3 [47.3 kB],
Get:14 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libx11-xcb1 armhf 2:1.6.4-3ubuntu0.2 [9,312 B],
Get:15 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libxcb-dri2-0 armhf 1.13-2~ubuntu18.04 [6,716 B],
Get:16 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libxcb-dri3-0 armhf 1.13-2~ubuntu18.04 [6,328 B],
Get:17 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libxcb-glx0 armhf 1.13-2~ubuntu18.04 [20.2 kB],
Get:18 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libxcb-present0 armhf 1.13-2~ubuntu18.04 [5,480 B],
Get:19 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libxcb-sync1 armhf 1.13-2~ubuntu18.04 [8,280 B],
Get:20 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf libxdamage1 armhf 1:1.1.4-3 [6,488 B],
Get:21 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf libxfixes3 armhf 1:5.0.3-1 [9,390 B],
Get:22 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf libxshmfence1 armhf 1.3-1 [4,792 B],
Get:23 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libglx-mesa0 armhf 19.2.8-0ubuntu0~18.04.3 [121 kB],
Get:24 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libglx0 armhf 1.0.0-2ubuntu2.3 [23.3 kB],
Get:25 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libgl1 armhf 1.0.0-2ubuntu2.3 [94.2 kB],
Get:26 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf libgl1-mesa-glx armhf 19.2.8-0ubuntu0~18.04.3 [5,532 B],
debconf: unable to initialize frontend: Dialog,
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 26.),
debconf: falling back to frontend: Readline,
debconf: unable to initialize frontend: Readline,
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/arm-linux-gnueabihf/perl5/5.26 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7, <> line 26.),
debconf: falling back to frontend: Teletype,
dpkg-preconfigure: unable to re-open stdin: ,
Fetched 18.5 MB in 10s (1,836 kB/s),
Selecting previously unselected package libxxf86vm1:armhf.
,
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 11415 files and directories currently installed.)
,
Preparing to unpack .../00-libxxf86vm1_1%3a1.1.4-1_armhf.deb ...
,
Unpacking libxxf86vm1:armhf (1:1.1.4-1) ...
,
Selecting previously unselected package libelf1:armhf.
,
Preparing to unpack .../01-libelf1_0.170-0.4ubuntu0.1_armhf.deb ...
,
Unpacking libelf1:armhf (0.170-0.4ubuntu0.1) ...
,
Selecting previously unselected package libdrm-common.
,
Preparing to unpack .../02-libdrm-common_2.4.99-1ubuntu1~18.04.2_all.deb ...
,
Unpacking libdrm-common (2.4.99-1ubuntu1~18.04.2) ...
,
Selecting previously unselected package libdrm2:armhf.
,
Preparing to unpack .../03-libdrm2_2.4.99-1ubuntu1~18.04.2_armhf.deb ...
,
Unpacking libdrm2:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Selecting previously unselected package libedit2:armhf.
,
Preparing to unpack .../04-libedit2_3.1-20170329-1_armhf.deb ...
,
Unpacking libedit2:armhf (3.1-20170329-1) ...
,
Selecting previously unselected package libdrm-amdgpu1:armhf.
,
Preparing to unpack .../05-libdrm-amdgpu1_2.4.99-1ubuntu1~18.04.2_armhf.deb ...
,
Unpacking libdrm-amdgpu1:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Selecting previously unselected package libdrm-nouveau2:armhf.
,
Preparing to unpack .../06-libdrm-nouveau2_2.4.99-1ubuntu1~18.04.2_armhf.deb ...
,
Unpacking libdrm-nouveau2:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Selecting previously unselected package libdrm-radeon1:armhf.
,
Preparing to unpack .../07-libdrm-radeon1_2.4.99-1ubuntu1~18.04.2_armhf.deb ...
,
Unpacking libdrm-radeon1:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Selecting previously unselected package libglapi-mesa:armhf.
,
Preparing to unpack .../08-libglapi-mesa_19.2.8-0ubuntu0~18.04.3_armhf.deb ...
,
Unpacking libglapi-mesa:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Selecting previously unselected package libllvm9:armhf.
,
Preparing to unpack .../09-libllvm9_1%3a9-2~ubuntu18.04.2_armhf.deb ...
,
Unpacking libllvm9:armhf (1:9-2~ubuntu18.04.2) ...
,
Selecting previously unselected package libsensors4:armhf.
,
Preparing to unpack .../10-libsensors4_1%3a3.4.0-4_armhf.deb ...
,
Unpacking libsensors4:armhf (1:3.4.0-4) ...
,
Selecting previously unselected package libgl1-mesa-dri:armhf.
,
Preparing to unpack .../11-libgl1-mesa-dri_19.2.8-0ubuntu0~18.04.3_armhf.deb ...
,
Unpacking libgl1-mesa-dri:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Selecting previously unselected package libglvnd0:armhf.
,
Preparing to unpack .../12-libglvnd0_1.0.0-2ubuntu2.3_armhf.deb ...
,
Unpacking libglvnd0:armhf (1.0.0-2ubuntu2.3) ...
,
Selecting previously unselected package libx11-xcb1:armhf.
,
Preparing to unpack .../13-libx11-xcb1_2%3a1.6.4-3ubuntu0.2_armhf.deb ...
,
Unpacking libx11-xcb1:armhf (2:1.6.4-3ubuntu0.2) ...
,
Selecting previously unselected package libxcb-dri2-0:armhf.
,
Preparing to unpack .../14-libxcb-dri2-0_1.13-2~ubuntu18.04_armhf.deb ...
,
Unpacking libxcb-dri2-0:armhf (1.13-2~ubuntu18.04) ...
,
Selecting previously unselected package libxcb-dri3-0:armhf.
,
Preparing to unpack .../15-libxcb-dri3-0_1.13-2~ubuntu18.04_armhf.deb ...
,
Unpacking libxcb-dri3-0:armhf (1.13-2~ubuntu18.04) ...
,
Selecting previously unselected package libxcb-glx0:armhf.
,
Preparing to unpack .../16-libxcb-glx0_1.13-2~ubuntu18.04_armhf.deb ...
,
Unpacking libxcb-glx0:armhf (1.13-2~ubuntu18.04) ...
,
Selecting previously unselected package libxcb-present0:armhf.
,
Preparing to unpack .../17-libxcb-present0_1.13-2~ubuntu18.04_armhf.deb ...
,
Unpacking libxcb-present0:armhf (1.13-2~ubuntu18.04) ...
,
Selecting previously unselected package libxcb-sync1:armhf.
,
Preparing to unpack .../18-libxcb-sync1_1.13-2~ubuntu18.04_armhf.deb ...
,
Unpacking libxcb-sync1:armhf (1.13-2~ubuntu18.04) ...
,
Selecting previously unselected package libxdamage1:armhf.
,
Preparing to unpack .../19-libxdamage1_1%3a1.1.4-3_armhf.deb ...
,
Unpacking libxdamage1:armhf (1:1.1.4-3) ...
,
Selecting previously unselected package libxfixes3:armhf.
,
Preparing to unpack .../20-libxfixes3_1%3a5.0.3-1_armhf.deb ...
,
Unpacking libxfixes3:armhf (1:5.0.3-1) ...
,
Selecting previously unselected package libxshmfence1:armhf.
,
Preparing to unpack .../21-libxshmfence1_1.3-1_armhf.deb ...
,
Unpacking libxshmfence1:armhf (1.3-1) ...
,
Selecting previously unselected package libglx-mesa0:armhf.
,
Preparing to unpack .../22-libglx-mesa0_19.2.8-0ubuntu0~18.04.3_armhf.deb ...
,
Unpacking libglx-mesa0:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Selecting previously unselected package libglx0:armhf.
,
Preparing to unpack .../23-libglx0_1.0.0-2ubuntu2.3_armhf.deb ...
,
Unpacking libglx0:armhf (1.0.0-2ubuntu2.3) ...
,
Selecting previously unselected package libgl1:armhf.
,
Preparing to unpack .../24-libgl1_1.0.0-2ubuntu2.3_armhf.deb ...
,
Unpacking libgl1:armhf (1.0.0-2ubuntu2.3) ...
,
Selecting previously unselected package libgl1-mesa-glx:armhf.
,
Preparing to unpack .../25-libgl1-mesa-glx_19.2.8-0ubuntu0~18.04.3_armhf.deb ...
,
Unpacking libgl1-mesa-glx:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Setting up libedit2:armhf (3.1-20170329-1) ...
,
Setting up libxcb-present0:armhf (1.13-2~ubuntu18.04) ...
,
Setting up libglvnd0:armhf (1.0.0-2ubuntu2.3) ...
,
Setting up libxcb-dri2-0:armhf (1.13-2~ubuntu18.04) ...
,
Setting up libxcb-dri3-0:armhf (1.13-2~ubuntu18.04) ...
,
Setting up libxcb-glx0:armhf (1.13-2~ubuntu18.04) ...
,
Setting up libxdamage1:armhf (1:1.1.4-3) ...
,
Setting up libxfixes3:armhf (1:5.0.3-1) ...
,
Setting up libelf1:armhf (0.170-0.4ubuntu0.1) ...
,
Setting up libxshmfence1:armhf (1.3-1) ...
,
Setting up libglapi-mesa:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Setting up libdrm-common (2.4.99-1ubuntu1~18.04.2) ...
,
Setting up libxcb-sync1:armhf (1.13-2~ubuntu18.04) ...
,
Setting up libx11-xcb1:armhf (2:1.6.4-3ubuntu0.2) ...
,
Setting up libsensors4:armhf (1:3.4.0-4) ...
,
Setting up libxxf86vm1:armhf (1:1.1.4-1) ...
,
Setting up libllvm9:armhf (1:9-2~ubuntu18.04.2) ...
,
Setting up libdrm2:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Setting up libdrm-radeon1:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Setting up libdrm-nouveau2:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Setting up libdrm-amdgpu1:armhf (2.4.99-1ubuntu1~18.04.2) ...
,
Setting up libgl1-mesa-dri:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Setting up libglx-mesa0:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Setting up libglx0:armhf (1.0.0-2ubuntu2.3) ...
,
Setting up libgl1:armhf (1.0.0-2ubuntu2.3) ...
,
Setting up libgl1-mesa-glx:armhf (19.2.8-0ubuntu0~18.04.3) ...
,
Processing triggers for libc-bin (2.27-3ubuntu1) ...
,
[cont-init.d] 60-calibre-config: exited 0.,
[cont-init.d] 99-custom-scripts: executing... ,
[custom-init] no custom files found exiting...,
[cont-init.d] 99-custom-scripts: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,

Deleted a book and cannot reupload it.

linuxserver.io

Thanks, team linuxserver.io

Hello people.

I deleted a book from my collection and then tried to upload a different version of it. The upload finished but when it switched to processing, i got the following error:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>500 Internal Server Error</title>

In the logs, I get :

[2019-10-09 19:38:19,096] ERROR in app: Exception on /upload [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/app/calibre-web/cps/web.py", line 349, in decorated_view
    return login_required(func)(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flask_login/utils.py", line 261, in decorated_view
    return func(*args, **kwargs)
  File "/app/calibre-web/cps/web.py", line 495, in inner
    return f(*args, **kwargs)
  File "/app/calibre-web/cps/web.py", line 3769, in upload
    if request.method == 'POST' and 'btn-upload' in request.files:
    self._load_form_data()
  File "/usr/local/lib/python2.7/dist-packages/flask/wrappers.py", line 88, in _load_form_data
    RequestBase._load_form_data(self)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers/base_request.py", line 318, in _load_form_data
    self._get_stream_for_parsing(), mimetype, content_length, options
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 232, in parse
    return parse_func(self, stream, mimetype, content_length, options)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 131, in wrapper
    return f(self, stream, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 253, in _parse_multipart
    form, files = parser.parse(stream, boundary, content_length)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 584, in parse
    return self.cls(form), self.cls(files)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/datastructures.py", line 420, in __init__
    for key, value in mapping or ():
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 582, in <genexpr>
    form = (p[1] for p in formstream if p[0] == "form")
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/formparser.py", line 555, in parse_parts
    _write(ell)
  File "/usr/lib/python2.7/tempfile.py", line 626, in write
    rv = file.write(s)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.7/logging/__init__.py", line 892, in emit
    self.flush()
  File "/usr/lib/python2.7/logging/__init__.py", line 852, in flush
    self.stream.flush()
IOError: [Errno 28] No space left on device
Logged from file app.py, line 1891
::ffff:172.18.0.1 - - [2019-10-09 19:38:19] "POST /calibre-web/upload HTTP/1.0" 500 444 1.492612

I am on CentOS 7 on the latest calibre-web image. I run it with:

docker run --detach \
  --name=calibre-web \
  --volume /home/user/.config/docker_configs/calibre:/config \
  --volume /media/data/books:/books \
  --env PGID=1000 --env PUID=1000 \
  --publish 8083:8083 \
  --env ServerIP="172.18.0.9" \
  --network net_for_proxy \
  --ip 172.18.0.13 \
  --restart=unless-stopped \
  --memory=300M \
  --cpus="1" \
 linuxserver/calibre-web:latest

I notice the error [Errno 28], thought my disks are far from full (the volume i am mounting has 1T left). I tried to upload another book and it uploaded fine with no problem whatsoever.

Any ideas?

All ebook conversions fail.

linuxserver.io

Firstly and most importantly, thanks a ton for all the work you all do. I'm running a bunch of your images and they're outstanding.

Expected Behavior

After setting the environment variable DOCKER_MODS=linuxserver/calibre-web:calibre", and setting the calibre converter external binary to /usr/bin/ebook-converter, ebook conversion should work from within the app.

Current Behavior

  • /usr/local/ebook-convert does not exist.
  • /app/calibre/ebook-convert fails with Failed to import site module::No module named site
  • /app/calibre/bin/ebook-convert fails with error while loading shared libraries: libcalibre-launcher.so: cannot open sharedobject file: No such file or directory

Steps to Reproduce

# docker-compose.yml

version: "3.8"

services:
 calibre-web:
   image: linuxserver/calibre-web:0.6.7-ls62
   container_name: calibre-web
   restart: unless-stopped
   environment:
     - PUID=1000
     - PGID=1000
     - TZ=Europe/Warsaw
     - DOCKER_MODS=linuxserver/calibre-web:calibre
   volumes:
     - ./web-config:/config
     - ./books:/books
     - ./db/:/db/

 calibre-db:
   image: linuxserver/calibre:v4.16.0-ls57
   container_name: calibre-db
   restart: unless-stopped
   environment:
     - PUID=1000
     - PGID=1000
     - TZ=Europe/Warsaw
     - UMASK_SET=022 #optional
       # - GUAC_USER=abc #optional
       # - GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 #optional
       # - CLI_ARGS= #optional
   volumes:
     - ./db/:/config
     - ./books:/books # Place new books here
   ports:
     - 8084:8080
     - 8081:8081

networks:
 default:
   external:
     name: cloud
$ docker exec -it calibre-web /bin/bash

root@ae16d8054843:/app/calibre# echo "$DOCKER_MODS"
linuxserver/calibre-web:calibre

root@ae16d8054843:/# cd app/calibre
root@ae16d8054843:/app/calibre# /usr/bin/ebook-convert
bash: /usr/bin/ebook-convert: No such file or directory

root@ae16d8054843:/app/calibre# ./ebook-convert
Failed to import site module::No module named site

root@ae16d8054843:/app/calibre# ./bin/ebook-convert
./bin/ebook-convert: error while loading shared libraries: libcalibre-launcher.so: cannot open sharedobject file: No such file or directory

Environment

OS: Arch Linux
CPU architecture: x86_64
How docker service was installed: pacman -S docker docker-compose && systemctl enable docker.service --now

Command used to create docker container (run/create/compose/screenshot)

docker-compose up -d

Docker logs

$ docker logs calibre-web
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/calibre-web:calibre files to container

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-scripts: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
s6-svwait: fatal: timed out
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/calibre-web:calibre files to container
[mod-init] linuxserver/calibre-web:calibre at sha256:6d06490839aa2fa973c5c888abc98b7f3d9f9191ddf3e41d2c2988399cd10e9d has been previously applied skipping
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...
usermod: no changes

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-scripts: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

Port issues with container in K8S cluster

Hi,

I'm trying to deploy the linuxserver docker via a kubernetes cluster and I'm getting the following error:

Traceback (most recent call last):
File "/app/calibre-web/cps.py", line 13, in
from cps.server import Server
File "/app/calibre-web/cps/server.py", line 25, in
import web
File "/app/calibre-web/cps/web.py", line 36, in
import ub
File "/app/calibre-web/cps/ub.py", line 64, in
DEFAULT_PORT = int(os.environ.get("CALIBRE_PORT", 8083))
ValueError: invalid literal for int() with base 10: 'tcp://10.43.76.92:8083'
Traceback (most recent call last):
File "/app/calibre-web/cps.py", line 13, in
from cps.server import Server
File "/app/calibre-web/cps/server.py", line 25, in
import web
File "/app/calibre-web/cps/web.py", line 36, in
import ub
File "/app/calibre-web/cps/ub.py", line 64, in
DEFAULT_PORT = int(os.environ.get("CALIBRE_PORT", 8083))
ValueError: invalid literal for int() with base 10: 'tcp://10.43.76.92:8083'

Any port and it gives the same error. This is using the version pulled from the latest tag. Other linuxserver.io images work fine (Sonarr, Radarr etc.)

Any help would be very appreciated!

ERROR 500 version 64 crashes on startup

I deployed the container, configured with a PUID/PGID (generic docker user with all required permissions), set /config and /books to 2 empty folders. Connect to xxxx:8083 and can see the web admin interface. After setting options, I get "Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.".

Running Debian 9.4 Openmediavault 4, latest docker.

Logs attached.

Thank you for looking into this

linuxserver.io

Debian 9.4 running Openmediavault 4

calibre_settings.txt

capture

attached calibre.log
calibre.log

No symlinks, all directories are in /srv/drv-by-id.../
my whole /var/lib/docker directory is a symlink to another partition, a bunch of 6 other dockers is running fine with that and it is the "official" method found in docker man

Thanks, team linuxserver.iols

Can't acces to Edit Basic Configuration

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

You should be able to access the page that allows you to edit options such as LDAP authentication or add the path of the ebook converter

Current Behavior

Show this: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 272, in decorated_view
return func(*args, **kwargs)
File "/app/calibre-web/cps/web.py", line 213, in inner
return f(*args, **kwargs)
File "/app/calibre-web/cps/admin.py", line 143, in configuration
return _configuration_result()
File "/app/calibre-web/cps/admin.py", line 704, in _configuration_result
title=_(u"Basic Configuration"), page="config")
File "/app/calibre-web/cps/web.py", line 281, in render_title_template
*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/flask/templating.py", line 140, in render_template
ctx.app,
File "/usr/local/lib/python3.6/dist-packages/flask/templating.py", line 120, in _render
rv = template.render(context)
File "/usr/local/lib/python3.6/dist-packages/jinja2/environment.py", line 1090, in render
self.environment.handle_exception()
File "/usr/local/lib/python3.6/dist-packages/jinja2/environment.py", line 832, in handle_exception
reraise(*rewrite_traceback_stack(source=source))
File "/usr/local/lib/python3.6/dist-packages/jinja2/_compat.py", line 28, in reraise
raise value.with_traceback(tb)
File "/app/calibre-web/cps/templates/config_edit.html", line 1, in top-level template code
{% extends "layout.html" %}
File "/app/calibre-web/cps/templates/layout.html", line 153, in top-level template code
{% block body %}{% endblock %}
File "/app/calibre-web/cps/templates/config_edit.html", line 300, in block "body"
<a href="{{prov['obtain_link']}}" target="_blank">{{_('Obtain %(provider)s OAuth Credential', provider=prov['provider_name'])}}</a>
File "/usr/local/lib/python3.6/dist-packages/jinja2/ext.py", line 144, in _gettext_alias
return __context.call(__conext.resolve("gettext"), *args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/jinja2/ext.py", line 156, in gettext
return rv % variables
File "/usr/local/lib/python3.6/dist-packages/markupsafe/__init__.py", line 102, in __mod__
return self.__class__(text_type.__mod__(self, arg))
File "/usr/local/lib/python3.6/dist-packages/markupsafe/__init__.py", line 301, in __getitem__
return _MarkupEscapeHelper(self.obj[item], self.escape)
KeyError: 'proveedor'

Steps to Reproduce

Click on the option Edit basic configuration

Environment

OS: Proxmox (Debian)
CPU architecture: x86_64
How docker service was installed:

Using the repository

Command used to create docker container (run/create/compose/screenshot)

docker run -d --net downloads --name=calibre-web -e PUID=1000 -e PGID=1000 -e TZ=Europe/Madrid -e DOCKER_MODS=linuxserver/calibre-web:calibre -p 8083:8083 -v calibre-web_data:/config -v /mnt/pve/pCloud/Datos/Biblioteca:/books --restart unless-stopped linuxserver/calibre-web

Docker logs

Docker logs
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/calibre-web:calibre files to container
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing... 

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0.
[cont-init.d] 60-calibre-config: executing... 
Creating symlinks...
        Symlinking /app/calibre/calibre-debug to /usr/bin/calibre-debug
        Symlinking /app/calibre/markdown-calibre to /usr/bin/markdown-calibre
        Symlinking /app/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata
        Symlinking /app/calibre/lrs2lrf to /usr/bin/lrs2lrf
        Symlinking /app/calibre/ebook-edit to /usr/bin/ebook-edit
        Symlinking /app/calibre/ebook-device to /usr/bin/ebook-device
        Symlinking /app/calibre/calibre-server to /usr/bin/calibre-server
        Symlinking /app/calibre/calibredb to /usr/bin/calibredb
        Symlinking /app/calibre/lrf2lrs to /usr/bin/lrf2lrs
        Symlinking /app/calibre/calibre-smtp to /usr/bin/calibre-smtp
        Symlinking /app/calibre/ebook-convert to /usr/bin/ebook-convert
        Symlinking /app/calibre/web2disk to /usr/bin/web2disk
        Symlinking /app/calibre/ebook-polish to /usr/bin/ebook-polish
        Symlinking /app/calibre/lrfviewer to /usr/bin/lrfviewer
        Symlinking /app/calibre/ebook-viewer to /usr/bin/ebook-viewer
        Symlinking /app/calibre/ebook-meta to /usr/bin/ebook-meta
        Symlinking /app/calibre/calibre to /usr/bin/calibre
        Symlinking /app/calibre/calibre-parallel to /usr/bin/calibre-parallel
        Symlinking /app/calibre/calibre-customize to /usr/bin/calibre-customize
Setting up command-line completion...
Installing zsh completion to: /usr/share/zsh/vendor-completions/_calibre
Failed to find directory to install bash completions, using default.
Installing bash completion to: /usr/share/bash-completion/completions/

____________________ WARNING ____________________
Setting up completion failed with error:
__________________________________________________


        Traceback (most recent call last):
          File "site-packages/calibre/linux.py", line 834, in setup_completion
          File "site-packages/calibre/linux.py", line 576, in write_completion
          File "site-packages/calibre/gui2/__init__.py", line 16, in <module>
        ImportError: cannot import name QApplication

Setting up desktop integration...

____________________ WARNING ____________________
Setting up desktop integration failed with error:
__________________________________________________


        Traceback (most recent call last):
          File "site-packages/calibre/linux.py", line 902, in setup_desktop_integration
          File "site-packages/calibre/linux.py", line 887, in install_icons
          File "site-packages/calibre/linux.py", line 877, in install_single_icon
          File "site-packages/calibre/linux.py", line 1221, in render_img
        ImportError: cannot import name QImage

Creating un-installer: /usr/bin/calibre-uninstall


There were 2 warnings

* Setting up completion failed with error:

* Setting up desktop integration failed with error:


WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic/universe Sources [11.5 MB]
Get:5 http://archive.ubuntu.com/ubuntu bionic/main Sources [1,063 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic/restricted Sources [5,823 B]
Get:7 http://archive.ubuntu.com/ubuntu bionic/multiverse Sources [216 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB]
Get:9 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB]
Get:10 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB]
Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1,344 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main Sources [407 kB]
Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/universe Sources [369 kB]
Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Sources [8,209 B]
Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Sources [7,156 B]
Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [67.4 kB]
Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [19.8 kB]
Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1,376 kB]
Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [1,210 kB]
Get:20 http://archive.ubuntu.com/ubuntu bionic-security/multiverse Sources [3,233 B]
Get:21 http://archive.ubuntu.com/ubuntu bionic-security/universe Sources [215 kB]
Get:22 http://archive.ubuntu.com/ubuntu bionic-security/main Sources [192 kB]
Get:23 http://archive.ubuntu.com/ubuntu bionic-security/restricted Sources [5,868 B]
Get:24 http://archive.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [846 kB]
Get:25 http://archive.ubuntu.com/ubuntu bionic-security/main amd64 Packages [912 kB]
Get:26 http://archive.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [8,507 B]
Get:27 http://archive.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [52.4 kB]
Fetched 31.8 MB in 5s (6,396 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
9 packages can be upgraded. Run 'apt list --upgradable' to see them.

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1
  libdrm2 libedit2 libelf1 libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0
  libglx-mesa0 libglx0 libllvm9 libpciaccess0 libsensors4 libx11-xcb1
  libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-sync1
  libxdamage1 libxfixes3 libxshmfence1 libxxf86vm1
Suggested packages:
  pciutils lm-sensors
The following NEW packages will be installed:
  libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1
  libdrm2 libedit2 libelf1 libgl1 libgl1-mesa-dri libgl1-mesa-glx
  libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libllvm9 libpciaccess0
  libsensors4 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0
  libxcb-present0 libxcb-sync1 libxdamage1 libxfixes3 libxshmfence1
  libxxf86vm1
0 upgraded, 28 newly installed, 0 to remove and 9 not upgraded.
Need to get 24.3 MB of archives.
After this operation, 311 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 libxxf86vm1 amd64 1:1.1.4-1 [10.6 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libelf1 amd64 0.170-0.4ubuntu0.1 [44.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm-common all 2.4.99-1ubuntu1~18.04.2 [5,328 B]
Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm2 amd64 2.4.99-1ubuntu1~18.04.2 [31.7 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 libedit2 amd64 3.1-20170329-1 [76.9 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm-amdgpu1 amd64 2.4.99-1ubuntu1~18.04.2 [18.2 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/main amd64 libpciaccess0 amd64 0.14-1 [17.9 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm-intel1 amd64 2.4.99-1ubuntu1~18.04.2 [59.9 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm-nouveau2 amd64 2.4.99-1ubuntu1~18.04.2 [16.5 kB]
Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm-radeon1 amd64 2.4.99-1ubuntu1~18.04.2 [21.7 kB]
Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libglapi-mesa amd64 19.2.8-0ubuntu0~18.04.3 [26.5 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libllvm9 amd64 1:9-2~ubuntu18.04.2 [14.8 MB]
Get:13 http://archive.ubuntu.com/ubuntu bionic/main amd64 libsensors4 amd64 1:3.4.0-4 [28.8 kB]
Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgl1-mesa-dri amd64 19.2.8-0ubuntu0~18.04.3 [8,811 kB]
Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libglvnd0 amd64 1.0.0-2ubuntu2.3 [47.0 kB]
Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libx11-xcb1 amd64 2:1.6.4-3ubuntu0.2 [9,376 B]
Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-dri2-0 amd64 1.13-2~ubuntu18.04 [6,920 B]
Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-dri3-0 amd64 1.13-2~ubuntu18.04 [6,568 B]
Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-glx0 amd64 1.13-2~ubuntu18.04 [22.1 kB]
Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-present0 amd64 1.13-2~ubuntu18.04 [5,552 B]
Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-sync1 amd64 1.13-2~ubuntu18.04 [8,808 B]
Get:22 http://archive.ubuntu.com/ubuntu bionic/main amd64 libxdamage1 amd64 1:1.1.4-3 [6,934 B]
Get:23 http://archive.ubuntu.com/ubuntu bionic/main amd64 libxfixes3 amd64 1:5.0.3-1 [10.8 kB]
Get:24 http://archive.ubuntu.com/ubuntu bionic/main amd64 libxshmfence1 amd64 1.3-1 [5,028 B]
Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libglx-mesa0 amd64 19.2.8-0ubuntu0~18.04.3 [139 kB]
Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libglx0 amd64 1.0.0-2ubuntu2.3 [28.1 kB]
Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgl1 amd64 1.0.0-2ubuntu2.3 [86.2 kB]
Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgl1-mesa-glx amd64 19.2.8-0ubuntu0~18.04.3 [5,528 B]
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 28.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7, <> line 28.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin: 
Fetched 24.3 MB in 3s (9,607 kB/s)
Selecting previously unselected package libxxf86vm1:amd64.
(Reading database ... 11435 files and directories currently installed.)
Preparing to unpack .../00-libxxf86vm1_1%3a1.1.4-1_amd64.deb ...
Unpacking libxxf86vm1:amd64 (1:1.1.4-1) ...
Selecting previously unselected package libelf1:amd64.
Preparing to unpack .../01-libelf1_0.170-0.4ubuntu0.1_amd64.deb ...
Unpacking libelf1:amd64 (0.170-0.4ubuntu0.1) ...
Selecting previously unselected package libdrm-common.
Preparing to unpack .../02-libdrm-common_2.4.99-1ubuntu1~18.04.2_all.deb ...
Unpacking libdrm-common (2.4.99-1ubuntu1~18.04.2) ...
Selecting previously unselected package libdrm2:amd64.
Preparing to unpack .../03-libdrm2_2.4.99-1ubuntu1~18.04.2_amd64.deb ...
Unpacking libdrm2:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Selecting previously unselected package libedit2:amd64.
Preparing to unpack .../04-libedit2_3.1-20170329-1_amd64.deb ...
Unpacking libedit2:amd64 (3.1-20170329-1) ...
Selecting previously unselected package libdrm-amdgpu1:amd64.
Preparing to unpack .../05-libdrm-amdgpu1_2.4.99-1ubuntu1~18.04.2_amd64.deb ...
Unpacking libdrm-amdgpu1:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Selecting previously unselected package libpciaccess0:amd64.
Preparing to unpack .../06-libpciaccess0_0.14-1_amd64.deb ...
Unpacking libpciaccess0:amd64 (0.14-1) ...
Selecting previously unselected package libdrm-intel1:amd64.
Preparing to unpack .../07-libdrm-intel1_2.4.99-1ubuntu1~18.04.2_amd64.deb ...
Unpacking libdrm-intel1:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Selecting previously unselected package libdrm-nouveau2:amd64.
Preparing to unpack .../08-libdrm-nouveau2_2.4.99-1ubuntu1~18.04.2_amd64.deb ...
Unpacking libdrm-nouveau2:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Selecting previously unselected package libdrm-radeon1:amd64.
Preparing to unpack .../09-libdrm-radeon1_2.4.99-1ubuntu1~18.04.2_amd64.deb ...
Unpacking libdrm-radeon1:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Selecting previously unselected package libglapi-mesa:amd64.
Preparing to unpack .../10-libglapi-mesa_19.2.8-0ubuntu0~18.04.3_amd64.deb ...
Unpacking libglapi-mesa:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Selecting previously unselected package libllvm9:amd64.
Preparing to unpack .../11-libllvm9_1%3a9-2~ubuntu18.04.2_amd64.deb ...
Unpacking libllvm9:amd64 (1:9-2~ubuntu18.04.2) ...
Selecting previously unselected package libsensors4:amd64.
Preparing to unpack .../12-libsensors4_1%3a3.4.0-4_amd64.deb ...
Unpacking libsensors4:amd64 (1:3.4.0-4) ...
Selecting previously unselected package libgl1-mesa-dri:amd64.
Preparing to unpack .../13-libgl1-mesa-dri_19.2.8-0ubuntu0~18.04.3_amd64.deb ...
Unpacking libgl1-mesa-dri:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Selecting previously unselected package libglvnd0:amd64.
Preparing to unpack .../14-libglvnd0_1.0.0-2ubuntu2.3_amd64.deb ...
Unpacking libglvnd0:amd64 (1.0.0-2ubuntu2.3) ...
Selecting previously unselected package libx11-xcb1:amd64.
Preparing to unpack .../15-libx11-xcb1_2%3a1.6.4-3ubuntu0.2_amd64.deb ...
Unpacking libx11-xcb1:amd64 (2:1.6.4-3ubuntu0.2) ...
Selecting previously unselected package libxcb-dri2-0:amd64.
Preparing to unpack .../16-libxcb-dri2-0_1.13-2~ubuntu18.04_amd64.deb ...
Unpacking libxcb-dri2-0:amd64 (1.13-2~ubuntu18.04) ...
Selecting previously unselected package libxcb-dri3-0:amd64.
Preparing to unpack .../17-libxcb-dri3-0_1.13-2~ubuntu18.04_amd64.deb ...
Unpacking libxcb-dri3-0:amd64 (1.13-2~ubuntu18.04) ...
Selecting previously unselected package libxcb-glx0:amd64.
Preparing to unpack .../18-libxcb-glx0_1.13-2~ubuntu18.04_amd64.deb ...
Unpacking libxcb-glx0:amd64 (1.13-2~ubuntu18.04) ...
Selecting previously unselected package libxcb-present0:amd64.
Preparing to unpack .../19-libxcb-present0_1.13-2~ubuntu18.04_amd64.deb ...
Unpacking libxcb-present0:amd64 (1.13-2~ubuntu18.04) ...
Selecting previously unselected package libxcb-sync1:amd64.
Preparing to unpack .../20-libxcb-sync1_1.13-2~ubuntu18.04_amd64.deb ...
Unpacking libxcb-sync1:amd64 (1.13-2~ubuntu18.04) ...
Selecting previously unselected package libxdamage1:amd64.
Preparing to unpack .../21-libxdamage1_1%3a1.1.4-3_amd64.deb ...
Unpacking libxdamage1:amd64 (1:1.1.4-3) ...
Selecting previously unselected package libxfixes3:amd64.
Preparing to unpack .../22-libxfixes3_1%3a5.0.3-1_amd64.deb ...
Unpacking libxfixes3:amd64 (1:5.0.3-1) ...
Selecting previously unselected package libxshmfence1:amd64.
Preparing to unpack .../23-libxshmfence1_1.3-1_amd64.deb ...
Unpacking libxshmfence1:amd64 (1.3-1) ...
Selecting previously unselected package libglx-mesa0:amd64.
Preparing to unpack .../24-libglx-mesa0_19.2.8-0ubuntu0~18.04.3_amd64.deb ...
Unpacking libglx-mesa0:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Selecting previously unselected package libglx0:amd64.
Preparing to unpack .../25-libglx0_1.0.0-2ubuntu2.3_amd64.deb ...
Unpacking libglx0:amd64 (1.0.0-2ubuntu2.3) ...
Selecting previously unselected package libgl1:amd64.
Preparing to unpack .../26-libgl1_1.0.0-2ubuntu2.3_amd64.deb ...
Unpacking libgl1:amd64 (1.0.0-2ubuntu2.3) ...
Selecting previously unselected package libgl1-mesa-glx:amd64.
Preparing to unpack .../27-libgl1-mesa-glx_19.2.8-0ubuntu0~18.04.3_amd64.deb ...
Unpacking libgl1-mesa-glx:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Setting up libedit2:amd64 (3.1-20170329-1) ...
Setting up libxcb-present0:amd64 (1.13-2~ubuntu18.04) ...
Setting up libglvnd0:amd64 (1.0.0-2ubuntu2.3) ...
Setting up libxcb-dri2-0:amd64 (1.13-2~ubuntu18.04) ...
Setting up libxcb-dri3-0:amd64 (1.13-2~ubuntu18.04) ...
Setting up libxcb-glx0:amd64 (1.13-2~ubuntu18.04) ...
Setting up libxdamage1:amd64 (1:1.1.4-3) ...
Setting up libxfixes3:amd64 (1:5.0.3-1) ...
Setting up libelf1:amd64 (0.170-0.4ubuntu0.1) ...
Setting up libxshmfence1:amd64 (1.3-1) ...
Setting up libglapi-mesa:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Setting up libdrm-common (2.4.99-1ubuntu1~18.04.2) ...
Setting up libxcb-sync1:amd64 (1.13-2~ubuntu18.04) ...
Setting up libx11-xcb1:amd64 (2:1.6.4-3ubuntu0.2) ...
Setting up libpciaccess0:amd64 (0.14-1) ...
Setting up libsensors4:amd64 (1:3.4.0-4) ...
Setting up libxxf86vm1:amd64 (1:1.1.4-1) ...
Setting up libllvm9:amd64 (1:9-2~ubuntu18.04.2) ...
Setting up libdrm2:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Setting up libdrm-intel1:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Setting up libdrm-radeon1:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Setting up libdrm-nouveau2:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Setting up libdrm-amdgpu1:amd64 (2.4.99-1ubuntu1~18.04.2) ...
Setting up libgl1-mesa-dri:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Setting up libglx-mesa0:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Setting up libglx0:amd64 (1.0.0-2ubuntu2.3) ...
Setting up libgl1:amd64 (1.0.0-2ubuntu2.3) ...
Setting up libgl1-mesa-glx:amd64 (19.2.8-0ubuntu0~18.04.3) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
[cont-init.d] 60-calibre-config: exited 0.
[cont-init.d] 99-custom-scripts: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/calibre-web:calibre files to container
[mod-init] linuxserver/calibre-web:calibre at sha256:6d06490839aa2fa973c5c888abc98b7f3d9f9191ddf3e41d2c2988399cd10e9d has been previously applied skipping
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing... 
usermod: no changes

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0.
[cont-init.d] 60-calibre-config: executing... 
[cont-init.d] 60-calibre-config: exited 0.
[cont-init.d] 99-custom-scripts: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/calibre-web:calibre files to container
[mod-init] linuxserver/calibre-web:calibre at sha256:6d06490839aa2fa973c5c888abc98b7f3d9f9191ddf3e41d2c2988399cd10e9d has been previously applied skipping
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing... 
usermod: no changes

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 
[cont-init.d] 30-config: exited 0.
[cont-init.d] 60-calibre-config: executing... 
[cont-init.d] 60-calibre-config: exited 0.
[cont-init.d] 99-custom-scripts: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

[feature request] Kepubify

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

The latest version of calibre-web brings support for Kepubify tool to convert files to Kepub format.
It would be nice to include it in this docker image (in same way as the other converter is)

Current Behavior

Kepubify tool is not included

How To Setup On QNAP Container Station

Sorry, noob here.

How do I use this in QNAP COntainer Station? I called support but they couldn't help.
When creating the container, what do I enter for "Command" and "Entrypoint" ?

Do I need to enter into advanced settings? Thanks in advance!

ERROR 500 after modifications

I've got an error 500 after getting metadata of books, or after upload a new book.

See logs below :

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/app/calibre-web/cps/web.py", line 393, in decorated_view
    return login_required(func)(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/flask_login/utils.py", line 261, in decorated_view
    return func(*args, **kwargs)
  File "/app/calibre-web/cps/web.py", line 1095, in index
    entries, random, pagination = fill_indexpage(page, db.Books, True, db.Books.timestamp.desc())
  File "/app/calibre-web/cps/web.py", line 543, in fill_indexpage
    .filter(db_filter).filter(common_filters()).all()))
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2773, in all
    return list(self)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__
    return self._execute_and_instances(context)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2946, in _execute_and_instances
    close_with_result=True)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2955, in _get_bind_args
    **kw
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2937, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
    execution_options=execution_options)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
    engine, execution_options)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 388, in _connection_for_bind
    self._assert_active()
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 276, in _assert_active
    % self._rollback_exception
InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (sqlite3.OperationalError) attempt to write a readonly database [SQL: u'UPDATE books SET title=? WHERE books.id = ?'] [parameters: (u'Que serais-je sans toi ?', 29)] (Background on this error at: http://sqlalche.me/e/e3q8)
::ffff:172.18.0.4 - - 
[2018-05-31 15:51:28] "GET / HTTP/1.1" 500 412 0.006725```

Calibre failed with error: /app/calibre/bin/pdftohtml: error while loading shared libraries: libnss3.so: cannot open shared object file

Expected Behavior

  • Can convert PDF to ePub/Mobi

Current Behavior

[2019-10-23 09:31:06,310] ERROR in worker: Calibre failed with error: /app/calibre/bin/pdftohtml: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

Steps to Reproduce

Environment

OS: Centos7
CPU architecture: x86_64

Command used to create docker container (run/create/compose/screenshot)

  calibre:
    container_name: calibre
    image: linuxserver/calibre-web:latest
    volumes:
      - /docker/appdata/calibre:/config
      - /.storage.cached/Media/Books:/books
      - /etc/localtime:/etc/localtime:ro
    environment:
      - DOCKER_MODS=linuxserver/calibre-web:calibre
    env_file:
      - media.env
    networks:
      - shared
    restart: always
    healthcheck:
      test: /bin/s6-svstat /var/run/s6/services/calibre-web
      interval: 1m
      timeout: 5s
      retries: 3

Docker logs

[2019-10-23 09:31:03,853] INFO in worker: Book id 30 - target format of .epub does not exist. Moving forward with convert.
[2019-10-23 09:31:06,309] INFO in worker: ebook converter failed with error while converting book
[2019-10-23 09:31:06,310] ERROR in worker: Calibre failed with error: /app/calibre/bin/pdftohtml: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

Does it work with traefik or do I have misconfigurations ?

Hiya!

I am trying to get this work with my traefik setup. For now I am trying it on my localhost.

Location of Calibre database I put /books
and it either gives me: Sometimes I get DB location is not valid, please enter correct path or it works but I get 403 Forbidden error

The docker-compose file is this

version: '3'

services:
  calibre-web:
    image: linuxserver/calibre-web
    restart: unless-stopped
    networks:
      - srv
    volumes:
      - './books:/books'
      - '/etc/localtime:/etc/localtime:ro'
    environment:
      PGID: '1000'
      PUID: '1000'
    labels:
      - traefik.enable=true
      - traefik.backend=calibre-web
      - traefik.frontend.rule=Host:calibre.localhost
      - traefik.docker.network=srv
      - traefik.port=8083

networks:
  srv:
    external: true

Inside the books folder I have metadata.db which my local calibre has created.

Initial setup /books error

Hello,
I have a Problem to setting up the location on the initial setup screen. The GUI can't find the location of my calibre DB. I mounted my location on the NAS to /books on the Container.
image

In the Terminal I can see all my books under /books including the /books/metadata.db .
image

When I'm now typing on the initial setup screen /books to the empty field I get an error message, that the path is wrong (DB Speicherort ist ungültig, bitte korrigieren Pfad korrigieren)
image
.

The protocoll shows me...:
image

The system is running with docker on a synology 718+.

Thanks for your help
helpdt

Convert:PDF->EPUB Blocking

image

image

image

file size: 33.8m

Progress blocked at 1%

ENV:
NAS: QNAP TS 251+
QNAP ContainerStation 2.0.365
from hub.docker.com

Use multiple libraries with Calibreweb

linuxserver.io

Thanks, team linuxserver.io

I'm using multiple libraries within my desktop calibre
Maybe I missed it but could not find an easy way to change between libraries in calibreweb. Is this already implemented?

Thanks
Holger

Uploading PDF restarts calibre-web

Some users complained about restarting calibre-web instance during upload of pdf documents.
janeczku/calibre-web#909 (reported by @vigri) and janeczku/calibre-web#789

linuxserver.io

The relevant informations are in both issues.

I could track down the issue to a restriction/bug in imagemagick. @Technosoft2000 could solve it by compiling imagemagick by himself and changing the security policyfile.

The fix renables uploading pdf files via calibre-web

Thanks, team linuxserver.io

reverse proxy with traefik

anyone been able to do this? running calibre in rancher and no matter what settings i've tired i cant match the nginx example.

exposing a way to somehow pass --url-prefix to calibre would make this easier

Getting "Database location invalid" during initial setup

Using ocamlfuse for google drive mount because gdrive integration crashes the container for me

Host OS: Ubuntu 18.04.3 LTS
Using portainer.

output of docker exec -it calibre-web ls -la /books/metadata.db:

-rwxr-xr-x 1 root root 663552 Oct 3 14:46 /books/metadata.db

trying to set /books as database location during initial setup

Logs

[cont-init.d] done.

[services.d] starting services

[services.d] done.

[2019-10-03 14:41:09,903] INFO in web: Starting Calibre Web...

[2019-10-03 14:41:10,352] INFO in server: Starting Gevent server

::ffff:10.10.0.2 - - [2019-10-03 14:41:16] "GET / HTTP/1.1" 302 392 0.011329

::ffff:10.10.0.2 - - [2019-10-03 14:41:16] "GET /config HTTP/1.1" 200 13243 0.120930

::ffff:10.10.0.2 - - [2019-10-03 14:41:39] "POST /config HTTP/1.1" 200 13775 0.076935

::ffff:10.10.0.2 - - [2019-10-03 14:44:22] "POST /config HTTP/1.1" 200 13775 0.103569

::ffff:10.10.0.2 - - [2019-10-03 14:44:28] "POST /config HTTP/1.1" 200 13775 0.104940

::ffff:10.10.0.2 - - [2019-10-03 14:45:01] "POST /config HTTP/1.1" 200 13775 0.140496

::ffff:10.10.0.2 - - [2019-10-03 14:53:11] "POST /config HTTP/1.1" 200 13775 0.078066

::ffff:10.10.0.2 - - [2019-10-03 14:53:17] "GET / HTTP/1.1" 302 392 0.006492

::ffff:10.10.0.2 - - [2019-10-03 14:53:17] "GET /config HTTP/1.1" 200 13250 0.019785

::ffff:10.10.0.2 - - [2019-10-03 14:53:21] "GET / HTTP/1.1" 302 392 0.004803

::ffff:10.10.0.2 - - [2019-10-03 14:53:21] "GET /config HTTP/1.1" 200 13250 0.020191

::ffff:10.10.0.2 - - [2019-10-03 14:53:25] "GET /admin/view HTTP/1.1" 302 392 0.005883

::ffff:10.10.0.2 - - [2019-10-03 14:53:25] "GET /config HTTP/1.1" 200 13250 0.021645

::ffff:10.10.0.2 - - [2019-10-03 14:53:30] "POST /config HTTP/1.1" 200 13775 0.106767

non ipv6 host, socket.error

The "Traceback" part below keeps looping until the container is stopped

docker create --name=CalibreWeb
-v "/share/CACHEDEV1_DATA/Container/CalibreWeb":/config
-v /share/CACHEDEV1_DATA/Library/eBooks:/books
-e PUID=1001 -e PGID=100
-p 1111:8083
linuxserver/calibre-web

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...


      _     _ _                                                                                                                                                                                                                                                                                                                             
     | |___| (_) ___                                                                                                                                                                                                                                                                                                                        
     | / __| | |/ _ \                                                                                                                                                                                                                                                                                                                       
     | \__ \ | | (_) |                                                                                                                                                                                                                                                                                                                      
     |_|___/ |_|\___/                                                                                                                                                                                                                                                                                                                       
           |_|                                                                                                                                                                                                                                                                                                                              

Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donations/

GID/UID

User uid: 1001
User gid: 100

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done. Traceback (most recent call last):
File "/app/calibre-web/cps.py", line 29, in
web.start_gevent()
File "/app/calibre-web/cps/web.py", line 2902, in start_gevent
gevent_server.serve_forever()
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 360, in serve_forever
self.start()
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 304, in start
self.init_socket()
File "/usr/lib/python2.7/site-packages/gevent/pywsgi.py", line 1451, in init_socket
StreamServer.init_socket(self)
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 127, in init_socket
self.socket = self.get_listener(self.address, self.backlog, self.family)
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 138, in get_listener
return _tcp_listener(address, backlog=backlog, reuse_addr=cls.reuse_addr, family=family)
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 224, in _tcp_listener
sock = socket(family=family)
File "/usr/lib/python2.7/site-packages/gevent/_socket2.py", line 107, in init
self._sock = _realsocket(family, type, proto)
socket.error: [Errno 97] Address family not supported by protocol

Can't read metadata when uploading epub

Expected Behavior

Uploading a epub displays title, author and other metadata available in epub.

Current Behavior

Uploading epub display metadata form empty, only title filled with filename

Environment

OS: Raspbian buster
CPU architecture: arm32
How docker service was installed:
Using dockstarter

Command used to create docker container (run/create/compose/screenshot)

Extract from docker-compose.yml:

  calibreweb:
    container_name: calibreweb
    environment:
    - PGID=${PGID}
    - PUID=${PUID}
    - TZ=${TZ}
    hostname: ${DOCKERHOSTNAME}
    image: linuxserver/calibre-web
    logging:
      driver: json-file
      options:
        max-file: ${DOCKERLOGGING_MAXFILE}
        max-size: ${DOCKERLOGGING_MAXSIZE}
    ports:
    - ${CALIBREWEB_PORT_8083}:8083
    restart: unless-stopped
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - ${DOCKERCONFDIR}/calibreweb:/config
    - ${DOCKERSHAREDDIR}:/shared
    - ${MEDIADIR_BOOKS}:/books

Docker logs

Starting calibreweb displays these errors:

[2020-04-26 19:08:51,707] {/app/calibre-web/cps/book_formats.py:55} WARNING - cannot import epub, extracting epub metadata will not work: libxslt.so.1: cannot open shared object file: No such file or directory
[2020-04-26 19:08:51,711] {/app/calibre-web/cps/book_formats.py:62} WARNING - cannot import fb2, extracting fb2 metadata will not work: libxslt.so.1: cannot open shared object file: No such file or directory

Workaround

Install libxlst1.1 inside docker instance, and restart calbre-web, then uploads extract metadata from epub and displays it in form after uploading file.

Python error when clicking on book

When i attempt to click on a book, to open. I am served with this screen:

500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/dist-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "/app/calibre-web/cps/web.py", line 166, in decorated_view
return login_required(func)(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/flask_login/utils.py", line 272, in decorated_view
return func(*args, **kwargs)
File "/app/calibre-web/cps/web.py", line 1471, in show_book
is_xhr=request.is_xhr, title=entries.title, books_shelfs=book_in_shelfs,
File "/usr/local/lib/python3.6/dist-packages/werkzeug/local.py", line 347, in getattr
return getattr(self._get_current_object(), name)
AttributeError: 'Request' object has no attribute 'is_xhr'

Cannot open pdfs in Chrome: An error occured while loading the PDF

Expected Behavior

PDF books should open in Chrome

Current Behavior

An error occurred while loading the PDF.
PDF.js v2.2.228 (build: d7afb74a)
Message: Setting up fake worker failed: "Cannot read property 'WorkerMessageHandler' of undefined".
Screenshot 2020-04-17 at 10 43 47

Steps to Reproduce

  1. Open PDF book in library
  2. Read in Browser
  3. Select pdf
  4. Error is thrown in the new tab

Environment

OS: Centos8 4.18.0-147.5.1.el8_1.x86_64
CPU architecture: x86_64
Docker version 19.03.8, build afacb8b
docker-compose version 1.25.0, build 0a186604
Browser Chrome Version 81.0.4044.92 (Official Build) (64-bit)
How docker service was installed: docker-compose up

Command used to create docker container (run/create/compose/screenshot)

version: "2"
services:
  calibre-web:
    image: linuxserver/calibre-web
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - DOCKER_MODS=linuxserver/calibre-web:calibre
    volumes:
      - ./config:/config
      - /books:/books
      - /docker/calibre/config/CalibreLibrary:/library
    ports:
      - 8083:8083
    restart: unless-stopped

Docker logs

  1. docker-logs.log
  2. no errors in the /app/calibre-web/calibre-web.log
[2020-04-17 06:16:51,669]  INFO {cps:89} Starting Calibre Web...
[2020-04-17 06:16:51,765]  INFO {cps.server:140} Starting Gevent server on [::]:8083

Calibredb location?

I'm working on linking LazyLibrarian to calibre-web, and apparently I need to find calibredb to make that happen. It looks as though it's not a part of this package... is it located somewhere I'm not seeing? Or is that primarily a part of the desktop client? Sorry, I know this is a weird question.

backdoor still present in app.db

the README states the following

03.07.18: New build pushed, all versions below 67 have vulnerability

However a quick inspect on https://github.com/linuxserver/docker-calibre-web/blob/master/root/defaults/app.db that is pushed by default when building the image reveals it still contains the Guest user mentioned in upstream project janeczku/calibre-web#534

➜  Downloads wget https://github.com/linuxserver/docker-calibre-web/raw/master/root/defaults/app.db
--2019-01-03 18:28:36--  https://github.com/linuxserver/docker-calibre-web/raw/master/root/defaults/app.db
Resolving github.com (github.com)... 140.82.118.3, 140.82.118.4
Connecting to github.com (github.com)|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/linuxserver/docker-calibre-web/master/root/defaults/app.db [following]
--2019-01-03 18:28:36--  https://raw.githubusercontent.com/linuxserver/docker-calibre-web/master/root/defaults/app.db
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.120.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.120.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36864 (36K) [application/octet-stream]
Saving to: ‘app.db’

app.db                        100%[================================================>]  36.00K  --.-KB/s    in 0.008s

2019-01-03 18:28:36 (4.59 MB/s) - ‘app.db’ saved [36864/36864]

➜  Downloads sqlite3 app.db
SQLite version 3.26.0 2018-12-12 11:57:35
Enter ".help" for usage hints.
sqlite> SELECT * FROM user;
1|admin||159|pbkdf2:sha256:50000$j8XQXKMn$599892baba5edb4c411d73a0a308ee4345983602be138b60c08d8f0e3adb934b||en|511|all
2|Guest|no@email|32|pbkdf2:sha256:50000$uCxUkQuC$4c25b03ec40099a0de2370110bda6881b1351f4d809eaadb25cd9e3c26f18daf||en|1|all
sqlite>

Book cover could not be display, but cover.jpg had been downloaded.

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Current Behavior

Steps to Reproduce

  1. Upload a new book
  2. Click Get Metadata,Book Cover displayed。
  3. But after submit,it shows ”cover no available“
  4. And check /books folder,cover.jpg had been downloaded。

Environment

OS: Synology 918+
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Can't login on admin user.

Can not login on calibre with admin:admin123.

linuxserver.io

Ubuntu 18.04 Log file: https://pastebin.com/6GPvkRRv No symbolic links on mounts.

Thanks, team linuxserver.io

Tornado reverse proxy issue

Also reported in janeczku/calibre-web#1477

Describe the bug/problem
I'm having an issue with version 0.6.8 in the LinuxServer docker. Version 0.6.7 works fine. The issue occurs when accessing Calibre-Web through an SSL reverse proxy. The error message shows up in the log below and Nginx reports "502 Bad Gateway".

Calibre-Web works fine when accessing directly outside the reverse proxy.

To Reproduce
Access webpage through SSL reverse proxy.

Logfile
Add content of calibre-web.log file or the relevant error, try to reproduce your problem with "debug" log-level to get more output.

[2020-06-08 14:26:07,040] ERROR {tornado.application:67} Uncaught exception
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/tornado/http1connection.py", line 273, in _read_message
delegate.finish()
File "/usr/local/lib/python3.6/dist-packages/tornado/httpserver.py", line 280, in finish
self.request_callback(self.request)
File "/usr/local/lib/python3.6/dist-packages/tornado/wsgi.py", line 114, in call
WSGIContainer.environ(request), start_response
File "/usr/local/lib/python3.6/dist-packages/tornado/wsgi.py", line 154, in environ
port = int(hostport[1])
ValueError: invalid literal for int() with base 10: '443,calibre.internaldomain.net

Expected behavior
Calibre-Web should load correctly through the reverse proxy.

Screenshots
N/A

Environment (please complete the following information):

OS: Docker
Python version: Python 3.6
Calibre-Web version: 0.6.8 not 0.6.7
Docker container: LinuxServer 0.6.8-ls66 and 0.6.8ls65 but not 0.6.7-ls64
Additional context
Access via reverse proxy

No form for unrar path

linuxserver.io

Expected Behavior

Readme states the following: "Unrar is included by default and needs to be set in the Calibre-Web admin page (Basic Configuration:External Binaries) with a path of /usr/bin/unrar"

Current Behavior

No such form exists to input the unrar path. Only options available in External Binaries are the following:

- No converter

- Use Kindlegen
 
- Use calibre's ebook converter

E-Book converter settings

Path to convertertool

I'm unable to read CBR files in Calibre-Web.

Steps to Reproduce

N/A

Environment

OS: Raspian
CPU architecture: arm32
How docker service was installed: docker-compose

Command used to create docker container (run/create/compose/screenshot)

calibre-web:
image: linuxserver/calibre-web
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Lisbon
volumes:
- /home/docker/calibre-web:/config
- /media/calibre:/books
ports:
- 8083:8083
restart: unless-stopped

Docker logs

N/A

Crash and ram leak when setting logfile to debug

linuxserver.io

Expected Behavior

When setting the logfile to debug and send an e-mail, I should see the logfile entries related to connecting to the SMTP server

Current Behavior

I am having an issue where my calibre-web container is unable to connect to my SMTP mailserver with the same config settings I use in thunderbird, which work. The gmail SMTP server works fine. When trying to find out the cause, the application crashes as soon as I try to send an e-mail using either mailserver if the logfile is set to debug

Steps to Reproduce

  1. Set logfile to debug mode
  2. Send email
  3. Application sucks up all available RAM and crashes, no log entries

Environment

OS: Syno DSM
CPU architecture: x86_64

the prebuild docker image suffered from docker cache

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.

pulling the image from the registry, the web-calibre is not the latest version on github. it seems a previous version was cached when it was first built.

Expected Behavior

it should pull the latest version of web-calibre released from github.

Current Behavior

it is an outdated version of web-calibre. this article seems to explained why.

Steps to Reproduce

  1. docker pull the image and run it
  2. log into web-calibre to open open any book, in the details pages check that reading online feature is not available, which IS a feature in latest versions of web-calibre.

Environment

OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Attempting to download PDF boots you back to login page

linuxserver.io

Clicking on Download PDF in book details causes calibre-web to boot you back to the login screen.

This issue does not occur for other formats. Viewing PDFs works as expected, and they can be downloaded from the viewer (once fully cached).


Expected Behavior

The PDF should download.

Current Behavior

You get booted back to the login screen.

Steps to Reproduce

  1. Navigate to a PDF.
  2. Open book details by clicking on the cover.
  3. Select the PDF download (blue) button.
  4. You are redirected to /login?next=%2Fdownload%2F1150%2Fpdf%2F1150.pdf

Environment

OS: RancherOS via ProxMox with OMV CIFS share for Calibre Library and configuration.
CPU architecture: x86_64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

version: "3.5"
services:
calibre-web:
image: linuxserver/calibre-web
container_name: calibre-web
networks:
- containers
environment:
- PUID=1100
- PGID=1101
- UMASK_SET=022
- TZ=america/los_angeles
- DOCKER_MODS=linuxserver/calibre-web:calibre
volumes:
- ../share/calibre-web/config:/config
- ../../../calibre_storage/books:/books
restart: unless-stopped
networks:
containers:
external: true

Docker logs

`[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...
usermod: no changes

      _         ()
     | |  ___   _    __
     | | / __| | |  /  \ 
     | | \__ \ | | | () |
     |_| |___/ |_|  \__/

Brought to you by linuxserver.io

To support LSIO projects visit:
https://www.linuxserver.io/donate/

GID/UID

User uid: 1100
User gid: 1101

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 60-calibre-config: executing...
[cont-init.d] 60-calibre-config: exited 0.
[cont-init.d] 99-custom-scripts: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.`

Web logs:

[2020-06-08 21:47:13,434] INFO {cps:98} Starting Calibre Web...
[2020-06-08 21:47:13,524] INFO {cps.server:156} Starting Tornado server on :8083

Read CBR/CBZ file on web is gone

When attempting to read a CBR or CBZ file, the only button available is to download the file.
image

I used to be able to read them inside the web browser.

Convert Tool Stopped Functioning

Convert tool seemed to work before, but now fails every time.
Have forced updated and reinitialized plugin, not sure of fix

Host UNRAID
Template:
Screenshot_2019-07-07_21-39-17

Relevant log lines:
[2019-07-07 21:31:24,189] INFO in worker: Book id 83 - target format of .mobi does not exist. Moving forward with convert.
[2019-07-07 21:31:24,189] ERROR in worker: Convertertool not found

Kepubify for aarch64

Currently no upstream binary, however the dev is going to produce one for the next release. Once that's done can add kepubify to the 64bit aarch image.

(Will potentially need to change the name of the arm32 kepubify binary - remember to check)

cover not avaliable

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Current Behavior

when upload ebook by calibre-web, then get the metadata(everything 's fine ,the cover image shows too) ,submit. but the cover image is gone (no matter you upload the cover image from the local driver or get the metadata)
image
image

Steps to Reproduce

1.upload ebook by calibre-web
2.open the book and edit
3.get the metadata
4.submit.
5.the book's cover image is gone

Environment

OS: docker 19.03.8
CPU architecture: x86_64/ Centos 7
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

docker create
--name=calibre-web
-e PUID=1000
-e PGID=1000
-e TZ=Asia/Shanghai
-e DOCKER_MODS=linuxserver/calibre-web:calibre
-p 8083:8083
-v /opt/ebook:/config
-v /opt/ebook/Library:/books
--restart unless-stopped
linuxserver/calibre-web

Docker logs

image

New SSL update in calibre-web breaks container

The new update to the calibre-web that added ssl options breaks the containers because it's looking for certs and a key.
[linuxserverurl]: https://linuxserver.io
[linuxserver.io][linuxserverurl]

Debian 8 (Open Media Vault)

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] 10-adduser: executing... ,
,
-------------------------------------,
_ (),
| | ___ _ _,
| | / | | | / \ ,
| | _
\ | | | () |,
|| |
/ || _/,
,
,
Brought to you by linuxserver.io,
We gratefully accept donations at:,
https://www.linuxserver.io/donations/,
-------------------------------------,
GID/UID,
-------------------------------------,
,
User uid: 1002,
User gid: 996,
-------------------------------------,
,
[cont-init.d] 10-adduser: exited 0.,
[cont-init.d] 30-config: executing... ,
[cont-init.d] 30-config: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:37:17 2018 <Greenlet at 0x7fe684dfd7d0: _handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:37:17 2018 <Greenlet at 0x7fe684dfd7d0: _handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:37:19 2018 <Greenlet at 0x7fe684dfd7d0: _handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:37:19 2018 <Greenlet at 0x7fe684dfd7d0: _handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:42:07 2018 <Greenlet at 0x7fe684dfd7d0: _handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:42:07 2018 <Greenlet at 0x7fe684dfd7d0: handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self.run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:47:52 2018 <Greenlet at 0x7fe684dfd7d0: handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fe684b34b90 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
[cont-finish.d] executing container finish scripts...,
[cont-finish.d] done.,
[s6-finish] syncing disks.,
[s6-finish] sending all processes the TERM signal.,
[s6-finish] sending all processes the KILL signal and exiting.,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] 10-adduser: executing... ,
usermod: no changes,
,
-------------------------------------,
_ (),
| | ___ _ __,
| | / _| | | / \ ,
| | _
\ | | | () |,
|
| |
/ |
| _
/,
,
,
Brought to you by linuxserver.io,
We gratefully accept donations at:,
https://www.linuxserver.io/donations/,
-------------------------------------,
GID/UID,
-------------------------------------,
,
User uid: 1002,
User gid: 996,
-------------------------------------,
,
[cont-init.d] 10-adduser: exited 0.,
[cont-init.d] 30-config: executing... ,
[cont-init.d] 30-config: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:55:34 2018 <Greenlet at 0x7efc648e87d0: handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7efc648b1e10 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self.run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 18:55:35 2018 <Greenlet at 0x7efc648e87d0: handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7efc648b1e10 fileno=[Errno 9] Bad fi)> failed with ValueError,
,
[cont-finish.d] executing container finish scripts...,
[cont-finish.d] done.,
[s6-finish] syncing disks.,
[s6-finish] sending all processes the TERM signal.,
[s6-finish] sending all processes the KILL signal and exiting.,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.,
[s6-init] ensuring user provided files have correct perms...exited 0.,
[fix-attrs.d] applying ownership & permissions fixes...,
[fix-attrs.d] done.,
[cont-init.d] executing container initialization scripts...,
[cont-init.d] 10-adduser: executing... ,
usermod: no changes,
,
-------------------------------------,
_ (),
| | ___ _ __,
| | / _| | | / \ ,
| | _
\ | | | () |,
|
| |
/ |
| _
/,
,
,
Brought to you by linuxserver.io,
We gratefully accept donations at:,
https://www.linuxserver.io/donations/,
-------------------------------------,
GID/UID,
-------------------------------------,
,
User uid: 1002,
User gid: 996,
-------------------------------------,
,
[cont-init.d] 10-adduser: exited 0.,
[cont-init.d] 30-config: executing... ,
[cont-init.d] 30-config: exited 0.,
[cont-init.d] done.,
[services.d] starting services,
[services.d] done.,
Traceback (most recent call last):,
File "/usr/lib/python2.7/site-packages/gevent/greenlet.py", line 536, in run,
result = self._run(*self.args, **self.kwargs),
File "/usr/lib/python2.7/site-packages/gevent/baseserver.py", line 26, in _handle_and_close_when_done,
return handle(*args_tuple),
File "/usr/lib/python2.7/site-packages/gevent/server.py", line 173, in wrap_socket_and_handle,
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 702, in wrap_socket,
ciphers=ciphers),
File "/usr/lib/python2.7/site-packages/gevent/_sslgte279.py", line 187, in init,
raise ValueError("certfile must be specified for server-side ",
ValueError: certfile must be specified for server-side operations,
Fri Mar 30 19:07:21 2018 <Greenlet at 0x7fc6365927d0: _handle_and_close_when_done(<bound method WSGIServer.wrap_socket_and_handle of, <bound method WSGIServer.do_close of <WSGIServer a, (<socket at 0x7fc63655be10 fileno=[Errno 9] Bad fi)> failed with ValueError,
,

Thanks, team linuxserver.io

Cover reading blocked by Imagemagick policy

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

On book upload, appliance attempts to set the cover image to the cover of the PDF

Current Behavior

Appliance fails to read cover

Logs:
WARN {cps.uploader:159} Pdf extraction forbidden by Imagemagick policy: not authorized

Resolution

Referenced on calibre-web github issues here

Modify /etc/ImageMaick-6/policy.xml
remove:
<policy domain="coder" rights="none" pattern="PDF" />
add:
<policy domain="coder" rights="read" pattern="PDF" />

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.