[Support] Linuxserver.io - Calibre-Web


Recommended Posts

linuxserver_medium.png

 

Application Name: Calibre-Web

Application Site: https://github.com/janeczku/calibre-web

Docker Hub: https://hub.docker.com/r/linuxserver/calibre-web/

Github: https://github.com/linuxserver/docker-calibre-web

 

Please post any questions/issues relating to this docker you have in this thread.

 

If you are not using Unraid (and you should be!) then please do not post here, instead head to linuxserver.io to see how to get support

Edited by linuxserver.io
Link to comment
  • 2 weeks later...

I am installing this docker and when i launch the UI it goes to /config and asks for database location. Is this a pre-defined path, or do i just put in where i want. No matter what i try, i get a 403 forbidden error and this in the logs.

 

 

[2018-06-11 11:09:39,117] ERROR in app: Exception on /config
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 486, in inner
return f(*args, **kwargs)
File "/app/calibre-web/cps/web.py", line 2510, in basic_configuration
return configuration_helper(1)
File "/app/calibre-web/cps/web.py", line 2709, in configuration_helper
if not db.setup_db():
File "/app/calibre-web/cps/db.py", line 338, in setup_db
cc = conn.execute("SELECT id, datatype FROM custom_columns")
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 942, in execute
return self._execute_text(object, multiparams, params)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
statement, parameters
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
context)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
exc_info
File "/usr/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 508, in do_execute
cursor.execute(statement, parameters)
OperationalError: (sqlite3.OperationalError) no such table: custom_columns [SQL: 'SELECT id, datatype FROM custom_columns'] (Background on this error at: http://sqlalche.me/e/e3q8)

Link to comment
11 minutes ago, unsainted said:

I am installing this docker and when i launch the UI it goes to /config and asks for database location. Is this a pre-defined path, or do i just put in where i want. No matter what i try, i get a 403 forbidden error and this in the logs.

 

 

[2018-06-11 11:09:39,117] ERROR in app: Exception on /config
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 486, in inner
return f(*args, **kwargs)
File "/app/calibre-web/cps/web.py", line 2510, in basic_configuration
return configuration_helper(1)
File "/app/calibre-web/cps/web.py", line 2709, in configuration_helper
if not db.setup_db():
File "/app/calibre-web/cps/db.py", line 338, in setup_db
cc = conn.execute("SELECT id, datatype FROM custom_columns")
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 942, in execute
return self._execute_text(object, multiparams, params)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
statement, parameters
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
context)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
exc_info
File "/usr/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 508, in do_execute
cursor.execute(statement, parameters)
OperationalError: (sqlite3.OperationalError) no such table: custom_columns [SQL: 'SELECT id, datatype FROM custom_columns'] (Background on this error at: http://sqlalche.me/e/e3q8)

it's for entering the location of your calibre DB - in your docker settings you should map /books_library or /books (not sure why I've got two paths now) to that location and enter the path in the webui admin settings

Link to comment
1 minute ago, DZMM said:

it's for entering the location of your calibre DB - in your docker settings you should map /books_library or /books (not sure why I've got two paths now) to that location and enter the path in the webui admin settings

Thats what i had thought. I have /books mapped to my ebooks folder /mnt/user/media/e-books

I entered /books into the config for the location and got the same error. I dont have a /books_library path in my setup?

calibre.PNG

Link to comment
8 minutes ago, unsainted said:

Thats what i had thought. I have /books mapped to my ebooks folder /mnt/user/media/e-books

I entered /books into the config for the location and got the same error. I dont have a /books_library path in my setup?

calibre.PNG

Do you have a metadata.db file in /mnt/user/media/e-Books that's been created by your calibre app/docker?

 

I think I have the second path from when I created myself - for some reason it's down as required.   I'm going to leave it alone as I don't want to miss up the history of users.

Link to comment
7 minutes ago, unsainted said:

Yes, I see the metadata.db file there. Its 0KB

 

 

that's probably your problem.  Add some books to your library using your calibre app/docker and I think your problems will go away.

 

You do have calibre running somewhere else right?  This docker is just a nice ui sits on top - you still have to run calibre somewhere else.

Link to comment

I use the RDP-Calibre docker and the linuxserver lazylibrarian docker. 

 

It's a shame that books aren't as well supported as say movies or TV shows.  Hopefully somebody will build a sonarr based service for books - it's a real pity that the lazylibrarian guys based their service on headphones rather than sonarr.

Link to comment
  • 4 weeks later...
  • 1 month later...
  • 4 weeks later...

First of all, I would like to extend a thanks for this wonderful docker.   I wanted a nice way to share my library with friends and family, and this fits the bill with elegance, however, I seem to be stuck with one aspect of the docker -- the E-book converter.

 

I am utilizing the RDP-Calibre docker from aptalca to manage my library, and this Calibre-Web docker configured through a reverse-proxy using Letsencrypt.  Since I and family members have KIndle's, I would like the ability to convert my Epubs to mobi and email directly from Calibre-web instead of doing through RDP-Calibre.

 

Under Calibre-Web Basic configuration, there are settings for External binaries with the following options:

 

1665398503_ScreenShot2018-11-24at3_40_55PM.png.1b981e4343dc99dacc7961cd1f180214.png

 

I initially tried to use calibre's ebook converter as I assumed it would be included in the docker but unless I'm mistaken, could not find it installed.   I bashed into the docker and looked everywhere.  I even tried to install the calibre package following the directions on this page to no avail.   I thought I was close following the manual installation instructions below but could not install the "calibre_postinstall" executable, which I'm assuming installs the dependencies required to get Calibre's bundled "ebook-convert" binary to work.

 mkdir -p /opt/calibre && rm -rf /opt/calibre/* tar xvf /config/calibre-3.34.0-x86_64.txz -C /opt/calibre && /opt/calibre/calibre_postinstall

 

At this point, I gave up and figured I'd download kindlegen from Amazon and give it a whirl.  From the docker bash shell I am able to run it with no issues, but when I click on edit metadata for a given Epub book, the convert options are not there.  If I select use calibre's ebook converter again, they show up even though I don't have a working "ebook-convert" binary -- go figure.

 

I also noticed the following kindlegen status error when I clicked about and I don't know why as the kindlegen binary seems to run fine when bashed into the docker.  I'll admit that I'm not a linux expert and could be missing something obvious, and I'm hoping that's the case as would love to get this working :)

 

cw_about.thumb.png.af62429b939de54738c76cb53f776a65.png

 

Many thanks in advance for any ideas/guidance :)

 

 

Edited by phorse
Link to comment
  • 4 weeks later...

@phorse Here's what I did to get the kindlegen binary working.

 

1. Downloaded tarball from https://www.amazon.com/gp/feature.html?docId=1000765211 to the docker config folder.

2. Untar'ed it and removed everything from it except for `kindlegen`

3. `chmod 777 kindlegen`

4. `chown nobody:users kindlegen`

5. Changed the external binary's path to /config/kindlegen

kindlegen.PNG.c6f40e5dc68bac22004814fb5d9fbe54.PNG

6. Confirmed tool showing up in info page

info.PNG.e4ef14074a0a765db2286248dbd8d6f5.PNG

 

Hopefully that gets it working for you. I tested the convert and send feature to my email and it worked fine. Good luck.

  • Like 1
Link to comment
On 12/22/2018 at 12:17 PM, peteknot said:

@phorse Here's what I did to get the kindlegen binary working.

 

1. Downloaded tarball from https://www.amazon.com/gp/feature.html?docId=1000765211 to the docker config folder.

2. Untar'ed it and removed everything from it except for `kindlegen`

3. `chmod 777 kindlegen`

4. `chown nobody:users kindlegen`

5. Changed the external binary's path to /config/kindlegen

kindlegen.PNG.c6f40e5dc68bac22004814fb5d9fbe54.PNG

6. Confirmed tool showing up in info page

info.PNG.e4ef14074a0a765db2286248dbd8d6f5.PNG

 

Hopefully that gets it working for you. I tested the convert and send feature to my email and it worked fine. Good luck.

 

Many thanks, it's working now.  I feel so foolish as all I needed to do was supply the full path to the executable, including the executable name, rather than simply supplying the path where the kindlegen executable was located :)

 

Thanks again!

Link to comment
  • 1 month later...

I've got what I think is everything setup between LazyLibrarian and Calibre-Web but I seem to be at a loss for Calibre-Web to notice an updated book.  LazyLibrarian deposits the book in the same folder that Calibre is looking at but I don't see an option to "update" Calibre to reflect the new book.   

 

Unless I'm blind, which I'm open to being.

Link to comment
On 2/3/2019 at 12:32 AM, hgelpke said:

Does anybody have a good config to set up a reverse proxy?

server {
    listen 80;
    server_name calibre.<yourdomain>.com;
    return 301 https://$server_name$request_uri;
    }
server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name calibre.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /login;

        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_calibre calibre-web;
        proxy_pass http://$upstream_calibre:8083;
    }
}

 

the first part just re routes from port 80 to port 443 so if you type http://calibre.<yourdomain>.com it changes it to https//calibre.<yourdomin>.com

  • Like 2
Link to comment
  • 3 weeks later...
On 2/9/2019 at 2:48 PM, Raczo said:

server {
    listen 80;
    server_name calibre.<yourdomain>.com;
    return 301 https://$server_name$request_uri;
    }
server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name calibre.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /login;

        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_calibre calibre-web;
        proxy_pass http://$upstream_calibre:8083;
    }
}

 

the first part just re routes from port 80 to port 443 so if you type http://calibre.<yourdomain>.com it changes it to https//calibre.<yourdomin>.com

I guess I should have been more specific. I was hoping to get a subfolder version and not a subdomain. Regardless, thank you for responding.

 

Link to comment

Has anyone received an internal server error when selecting a menu category? I am getting the below error when I select author, series or category. 

I have tried rebuilding the database with no luck and it works fine in calibre. 

 

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.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.