:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

Overview

About

Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.

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

Main screen

Features

  • Bootstrap 3 HTML5 interface
  • full graphical setup
  • User management with fine-grained per-user permissions
  • Admin interface
  • User Interface in czech, dutch, english, finnish, french, german, greek, hungarian, italian, japanese, khmer, polish, russian, simplified chinese, spanish, swedish, turkish, ukrainian
  • OPDS feed for eBook reader apps
  • Filter and search by titles, authors, tags, series and language
  • Create a custom book collection (shelves)
  • Support for editing eBook metadata and deleting eBooks from Calibre library
  • Support for converting eBooks through Calibre binaries
  • Restrict eBook download to logged-in users
  • Support for public user registration
  • Send eBooks to Kindle devices with the click of a button
  • Sync your Kobo devices through Calibre-Web with your Calibre library
  • Support for reading eBooks directly in the browser (.txt, .epub, .pdf, .cbr, .cbt, .cbz)
  • Upload new books in many formats, including audio formats (.mp3, .m4a, .m4b)
  • Support for Calibre Custom Columns
  • Ability to hide content based on categories and Custom Column content per user
  • Self-update capability
  • "Magic Link" login to make it easy to log on eReaders
  • Login via LDAP, google/github oauth and via proxy authentication

Quick start

  1. Install dependencies by running pip3 install --target vendor -r requirements.txt (python3.x). Alternativly set up a python virtual environment.
  2. Execute the command: python3 cps.py (or nohup python3 cps.py - recommended if you want to exit the terminal window)
  3. Point your browser to http://localhost:8083 or http://localhost:8083/opds for the OPDS catalog
  4. Set Location of Calibre database to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button
    Optionally a Google Drive can be used to host the calibre library -> Using Google Drive integration
  5. Go to Login page

Default admin login:
Username: admin
Password: admin123

Issues with Ubuntu: Please note that running the above install command can fail on some versions of Ubuntu, saying "can't combine user with prefix". This is a known bug and can be remedied by using the command pip install --system --target vendor -r requirements.txt instead.

Requirements

python 3.x+

Optionally, to enable on-the-fly conversion from one ebook format to another when using the send-to-kindle feature, or during editing of ebooks metadata:

Download and install the Calibre desktop program for your platform and enter the folder including program name (normally /opt/calibre/ebook-convert, or C:\Program Files\calibre\ebook-convert.exe) in the field "calibre's converter tool" on the setup page.

Download Kepubify tool for your platform and place the binary starting with kepubify in Linux: \opt\kepubify Windows: C:\Program Files\kepubify.

Docker Images

Pre-built Docker images are available in these Docker Hub repositories:

Technosoft2000 - x64

LinuxServer - x64, armhf, aarch64

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

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

  • Github - (Optional Calibre layer) - https://github.com/linuxserver/docker-calibre-web/tree/calibre

    This image has the option to pull in an extra docker manifest layer to include the Calibre ebook-convert binary. Just include the environmental variable DOCKER_MODS=linuxserver/calibre-web:calibre in your docker run/docker compose file. (x64 only)

    If you do not need this functionality then this can be omitted, keeping the image as lightweight as possible.

    Both the Calibre-Web and Calibre-Mod images are rebuilt automatically on new releases of Calibre-Web and Calibre respectively, and on updates to any included base image packages on a weekly basis if required.

    • The "path to convertertool" should be set to /usr/bin/ebook-convert
    • The "path to unrar" should be set to /usr/bin/unrar

Wiki

For further information, How To's and FAQ please check the Wiki

Contributing to Calibre-Web

Please have a look at our Contributing Guidelines

Issues
  • caliBlur!

    caliBlur!

    Soooo... i've been crazy busy since we last spoke and i've learned some shit :) My goal atm is to build a consistent ui across all user facing apps in my organizr install. Since plex is the biggest part of that, is closed source, and i actually like the design the most anyway, ive decided to make everything fit with it. To that end, I started a repo called layer#Cake to build a css layer on top of existing self hosted apps like organizr, ombi, and now calibre-web, and i've built my own themes (blur) with the plex design language as a guide, into each.

    layercake can be installed on the webserver which means you don't have to worry about messing w source or breaking updates, and since its all hosted on git, updates are automatic (using rawgit cdn network to push the .css). That being said, there are some definite advantages to building layercake directly into these apps (as we have done with organizr and ombi) so please let me know if that has any appeal to you. Anyway, I was kind of hoping to have this mostly finished before posting here, but I'm hitting a couple forks in the road, and your willingness to add a couple things for me will change the way i finish this theme. (If it's not too much trouble to attach a class to <body> for each url dir is the most important for example).

    Anyway, still a wip, and mobile doesn't work at all yet, but the desktop layout is 90% finished. You can check it out by adding this to your nginx location block:

        proxy_set_header Accept-Encoding "";
        sub_filter '</head>' '<link rel="stylesheet" type="text/css" href="https://rawgit.com/leram84/layer.Cake/dev/CSS/caliBlur-Demo.css"> </head>';
        sub_filter_once on;
    

    Lemme know what you think, and like i said, if you're willing to add a few (very small) adjustments for this, i can make it even better! Cheers!

    SS: caliblur1 caliblur2

    opened by leram84 94
  • Uploading PDF results in Calibre Web restarting [Docker]

    Uploading PDF results in Calibre Web restarting [Docker]

    I'm trying to upload a PDF file to Calibre, but ever time I upload, I get a 500 error and see the following in the calibre-web logs:

    [2019-01-29 18:00:25,749] INFO in web: Starting Calibre Web... [2019-01-29 18:00:26,126] INFO in server: Starting Gevent server

    This is the second PDF file encountering this issue. I'm not sure what the issue is, exactly, as there doesn't appear to be any debug output prior to the server restarting. What can I do to provide more information to determine what the issue is?

    opened by XenoPhage 41
  • Unable to connect to Zimbra's LDAP Service

    Unable to connect to Zimbra's LDAP Service

    Description Hello again, I'm trying to connect the app to the Zimbra's LDAP Service of my work but so far I have not achieved what was proposed. I reccently got the credentials to access the LDAP server but after configure the values on the app's Basic Configuration there is no sign of sucess.

    Reproduction

    1. Register my works LDAP info into app:

    LDAP Base DN: dc=utm,dc=edu,dc=ec LDAP SERVER: Server IP LDAP Admin DN: uid=zimbra,cn=admins,cn=zimbra PASSWORD LDAP: *******

    1. Click on Save
    2. App shows the update config message on top
    3. Restart App service.
    4. Logout and relogin
    5. After no sucess, login with the fallback.

    Logfile

    [2020-06-23 22:20:44,560]  INFO {cps.server:200} webserver stop (restart=True)
    [2020-06-23 22:20:44,568]  INFO {cps.server:185} Performing restart of Calibre-Web
    [2020-06-23 22:20:45,119] DEBUG {cps.services:29} Cannot import goodreads, showing authors-metadata will not work: No module named 'goodreads'
    [2020-06-23 22:20:45,160] DEBUG {cps.services:45} Cannot import SyncToken, syncing books with Kobo Devices will not work: No module named 'jsonschema'
    [2020-06-23 22:20:45,270] DEBUG {cps.comic:33} cannot import comicapi, extracting comic metadata will not work: No module named 'comicapi'
    [2020-06-23 22:20:45,271] DEBUG {cps.comic:40} cannot import rarfile, extracting cover files from rar files will not work: No module named 'rarfile'
    [2020-06-23 22:20:45,655] DEBUG {cps.uploader:58} cannot import epub, extracting epub metadata will not work: No module named 'lxml'
    [2020-06-23 22:20:45,655] DEBUG {cps.uploader:65} cannot import fb2, extracting fb2 metadata will not work: No module named 'lxml'
    [2020-06-23 22:20:45,655] DEBUG {cps.uploader:73} cannot import Pillow, using png and webp images as cover will not work: No module named 'PIL'
    [2020-06-23 22:20:45,665] DEBUG {cps.admin:63} Cannot import Flask-Dance, login with Oauth will not work: No module named 'flask_dance'
    [2020-06-23 22:20:45,681] DEBUG {cps.cache_buster:45} Computing cache-busting values...
    [2020-06-23 22:20:45,713] DEBUG {cps.cache_buster:58} Finished computing cache-busting values
    [2020-06-23 22:20:45,713]  INFO {cps:95} Starting Calibre Web...
    [2020-06-23 22:20:45,807]  INFO {cps.server:152} Starting Tornado server on :443
    [2020-06-23 22:21:52,989] DEBUG {cps.config_sql:288} _ConfigSQL updating storage
    [2020-06-23 22:21:52,998] DEBUG {cps.config_sql:288} _ConfigSQL updating storage
    [2020-06-23 22:21:53,001]  INFO {cps.server:200} webserver stop (restart=True)
    [2020-06-23 22:21:53,009]  INFO {cps.server:185} Performing restart of Calibre-Web
    [2020-06-23 22:21:53,550] DEBUG {cps.services:29} Cannot import goodreads, showing authors-metadata will not work: No module named 'goodreads'
    [2020-06-23 22:21:53,591] DEBUG {cps.services:45} Cannot import SyncToken, syncing books with Kobo Devices will not work: No module named 'jsonschema'
    [2020-06-23 22:21:53,700] DEBUG {cps.comic:33} cannot import comicapi, extracting comic metadata will not work: No module named 'comicapi'
    [2020-06-23 22:21:53,701] DEBUG {cps.comic:40} cannot import rarfile, extracting cover files from rar files will not work: No module named 'rarfile'
    [2020-06-23 22:21:54,050] DEBUG {cps.uploader:58} cannot import epub, extracting epub metadata will not work: No module named 'lxml'
    [2020-06-23 22:21:54,050] DEBUG {cps.uploader:65} cannot import fb2, extracting fb2 metadata will not work: No module named 'lxml'
    [2020-06-23 22:21:54,051] DEBUG {cps.uploader:73} cannot import Pillow, using png and webp images as cover will not work: No module named 'PIL'
    [2020-06-23 22:21:54,060] DEBUG {cps.admin:63} Cannot import Flask-Dance, login with Oauth will not work: No module named 'flask_dance'
    [2020-06-23 22:21:54,076] DEBUG {cps.cache_buster:45} Computing cache-busting values...
    [2020-06-23 22:21:54,108] DEBUG {cps.cache_buster:58} Finished computing cache-busting values
    [2020-06-23 22:21:54,108]  INFO {cps:95} Starting Calibre Web...
    [2020-06-23 22:21:54,198]  INFO {cps.server:152} Starting Tornado server on :443
    [2020-06-23 22:21:56,213] DEBUG {cps.web:309} LDAP empty response
    [2020-06-23 22:22:05,554]  INFO {cps.server:200} webserver stop (restart=True)
    [2020-06-23 22:22:05,556]  INFO {cps.server:185} Performing restart of Calibre-Web
    [2020-06-23 22:22:06,152] DEBUG {cps.services:29} Cannot import goodreads, showing authors-metadata will not work: No module named 'goodreads'
    [2020-06-23 22:22:06,194] DEBUG {cps.services:45} Cannot import SyncToken, syncing books with Kobo Devices will not work: No module named 'jsonschema'
    [2020-06-23 22:22:06,316] DEBUG {cps.comic:33} cannot import comicapi, extracting comic metadata will not work: No module named 'comicapi'
    [2020-06-23 22:22:06,317] DEBUG {cps.comic:40} cannot import rarfile, extracting cover files from rar files will not work: No module named 'rarfile'
    [2020-06-23 22:22:06,675] DEBUG {cps.uploader:58} cannot import epub, extracting epub metadata will not work: No module named 'lxml'
    [2020-06-23 22:22:06,676] DEBUG {cps.uploader:65} cannot import fb2, extracting fb2 metadata will not work: No module named 'lxml'
    [2020-06-23 22:22:06,676] DEBUG {cps.uploader:73} cannot import Pillow, using png and webp images as cover will not work: No module named 'PIL'
    [2020-06-23 22:22:06,686] DEBUG {cps.admin:63} Cannot import Flask-Dance, login with Oauth will not work: No module named 'flask_dance'
    [2020-06-23 22:22:06,703] DEBUG {cps.cache_buster:45} Computing cache-busting values...
    [2020-06-23 22:22:06,736] DEBUG {cps.cache_buster:58} Finished computing cache-busting values
    [2020-06-23 22:22:06,737]  INFO {cps:95} Starting Calibre Web...
    [2020-06-23 22:22:06,833]  INFO {cps.server:152} Starting Tornado server on :443
    [2020-06-23 22:22:13,960] DEBUG {cps.web:1350} User logged out
    [2020-06-23 22:22:16,651]  INFO {cps.web:1331} Login failed for user "[email protected]" IP-adress: 181.198.206.23
    [2020-06-23 22:22:18,997]  INFO {cps.web:1297} Local Fallback Login as: 'cdemera'
    

    Expected behavior Login into the App with my work's zimbra credentials. The use of LDAP is for academic purpose since my students are struggling with the credentials of multiple accounts in the University, this is a solution to use an already created account.

    Screenshots Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4

    Environment (VM):

    • OS: CentOS 8
    • Python version: python3.6
    • Calibre-Web version: 0.6.7 (updated through app)
    • Docker container: None
    • Special Hardware: None
    • Browser: Brave

    Additional context I access the server through SSH.

    Thanks for the read time and the help.

    opened by Kuroburn 33
  • New view for series

    New view for series

    Hi, I've been working on a quick proof of concept to improve the listing of the series. Basically instead of having a list of series titles I would have something like this:

    Screenshot 2019-07-27 12 23 14

    Now in order to integrate it smoothly I want to have your opinion as to how this should behave. Here are my thoughts:

    1: Having another menu called "Collection" next to serie witch would display the new view

    ➖A bit redundant ➕You get to keep both view and it's easy to switch between them

    2: Having a switch on top of the serie page to switch between views

    ➕Easy to switch between views ➖If you prefer one way or another you'll be stuck with what the default would be ➖Extra ui

    3: Having a setting on your user pref to choose between one view or another.

    ➕Once setup, no extra step or cluttering to get your view. ➖More difficult to switch between different style

    My personal preference goes for option 3, but I would like to hear your thoughts on that.

    Also Things to consider and features I'd like to add to this view.

    cover selection: At the moment I just display the cover of the first book in the collection. We could imagine an option to select

    • First
    • Last
    • First unread

    Badge display: At the moment I don't display any badge but there is going to be one and it could display 2 things:

    • Total books in the collection
    • Total unread books in the collection
    Caliblur! Theme enhancement 
    opened by gpapin 31
  • Convert only from edit metadata page not working

    Convert only from edit metadata page not working

    First off, when I run a new setup of calibre-web, I always seem to get this HTTP error page when I add the initial setup info even though it starts to function fine afterwards:

    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.

    BUT, after going to the edit metadata page of a book and trying to convert from XXX to MOBI/AWZ/etc I get the same HTTP error page. It also does not do the convert, no Task is created, and the log file shows:

    [2018-09-06 02:13:55,990] DEBUG in web: converting: book id: 47 from: EPUB to: MOBI                                                          
    [2018-09-06 02:13:56,007] ERROR in app: Exception on /admin/book/convert/47 [POST]                                                           
    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 "/calibre-web/app/cps/web.py", line 331, 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 "/calibre-web/app/cps/web.py", line 482, in inner                                                                                     
        return f(*args, **kwargs)                                                                                                                
      File "/calibre-web/app/cps/web.py", line 3734, in convert_bookformat                                                                       
        book_format_to.upper(), current_user.nickname)                                                                                           
      File "/calibre-web/app/cps/helper.py", line 79, in convert_book_format                                                                     
        settings['old_book_format'] = u'EPUB'                                                                                                    
    UnboundLocalError: local variable 'settings' referenced before assignment                                                                    
    ::ffff:172.17.0.1 - - [2018-09-06 02:13:56] "POST /admin/book/convert/47 HTTP/1.1" 500 412 0.029396  
    
    opened by kianrafiee 29
  • Remove Books from Database?

    Remove Books from Database?

    Is there a way to remove books from the database?

    opened by oneseedfruit 26
  • AD users import error

    AD users import error

    I have calibre-web server running. And i also have a AD as a centralized authentication server. I have configured LDAP authentication, but i am unable to import users from AD. I can only login with user which i added as username same as that in AD. When trying to import users it says Error:No user returned in responce of LDAP server. I have almost 300 users in AD so how can i import all users in calibre-web from AD.

    bug 
    opened by Bijay2052 26
  • Imagemagick policy prevents generating thumbnails for pdfs during upload

    Imagemagick policy prevents generating thumbnails for pdfs during upload

    many (? all) uploaded pdfs display 'Cover not available'. if possible display page one as a 'cover' similar to what nextcloud does.

    question 
    opened by tim-moody 26
  • Refactor worker thread / tasks

    Refactor worker thread / tasks

    Issue: #1577

    As mentioned in that issue, the current worker thread that handles background tasks is monolithic and non-extendable without modifying the file itself. This PR aims to address this and make the background task system more modular.

    This is a fairly big PR, but I can answer any questions and work with the maintainers to address any issues noted. Here's a quick rundown of the changes:

    • The worker thread is now simply a queue that runs and manages tasks. That's its only function.
    • Each task that is added is a mostly self-contained class that extends from CalibreTask. This class contains the logic specific to running that task
      • CalibreTask is an abstract class that provides basic boilerplate logic for all tasks. This allows each task to simply focus on the stuff they need to run, while the CalibreTask manages things like meta data (eg: start/stop time), wrapping errors, and providing a common API that all tasks should have.
    • Since each task is self contained and there isn't any reason to check the "task type" via if statements, I've removed the TASK_* constants. Each task now has their human-readable type defined in their class. This might affect localization - would be open to hearing any concerns over this and if there's an issue, how to address it
    • Aside from those, the actual logic of the tasks hasn't changed much (although, I will say that I've removed the CalibreDB add_format task due to #1565 being merged in, which allows the database to be safely utilized within other threads)

    With the changes in this PR, it should be theoretically possible for third party code to be added to calibre-web (in some sort of future plugin system) and be able to utilize the background worker thread. It simply needs to provide the queue with it's own task class extended from CalibreTask and it'll work like any other task

    I've tested this stuff to the best of my abilities, and everything seems to be working well. I would definitely invite others to test it though.

    Some things that I haven't been able to test:

    • Any gdrive integration. Theoretically, it should work, but I don't have that integration set up and honestly it looked really involved that I just didn't bother. 🙄🤗
    • Apparently calibre-web has tests... see tests/, but have no idea how to run them / if there's even tests written for these systems. So if there's any automated unit testing, they haven't been run (and indeed, they would probably have to be re-written due to the refactoring)
    • I developed this on python 3.6. I think this would also work with 2.7 and the other versions that calibre-web supports, but I'm not positive. I don't have much experience with maintaining code that must be compatible with 2.x and 3.x, so any additional eyes on this would be beneficial
    opened by blitzmann 25
  • No Book-Cover with Kindlegen sending the Book via E-Mail

    No Book-Cover with Kindlegen sending the Book via E-Mail

    Hey there, I'm using the calibre-web Docker image from technosoft2000 but I think this is no error with the image. When I'm sending a Book to my kindle via Calibre-Web, everything is going well. It send the book and my kindle downloads the book. No problem with that. But unfortunately, it doesn't download or shows me the book cover. When I transfer the eBook via Calibre directly, it shows me the cover.

    Is this a normal behavior? If not, do you need anything else to investigate my problem? As I said, I'm running an Container via Docker. Here are the versions how they are displayed at the about page:

    Program library | Installed Version ----------------|---------------------- Python | 2.7.13 (default, Apr 20 2017, 12:13:37) [GCC 6.3.0] Kindlegen | Amazon kindlegen(Linux) V2.9 build 1028-0897292 ImageMagick | ImageMagick 6.9.9-21 Q16 x86_64 2017-11-04 http://www.imagemagick.org PyPDF2 | v1.26.0 Babel | v2.5.1 SqlAlchemy | v1.1.15 Flask | v0.12.2 Flask Login | v0.4.0 Flask Principal | v0.4.0 Tornado web server | v4.5.2 ISO639 Languages | v0.4.5 Requests | v2.18.4 SQlite | v3.20.1 Pysqlite | v2.6.0

    opened by TheLux83 25
  • User menu dropdown in caliblur is tiny and presents scrollbars

    User menu dropdown in caliblur is tiny and presents scrollbars

    The following line, introduced in 394b063b8cb38787699c52253b85f8b2bad3ed9c restricts the height of the dropdown to 80% of the navbar container, likely not what was intended:

    https://github.com/janeczku/calibre-web/blob/d9f86aecd21de6ea4828cc1207959cfa70fe0220/cps/static/css/caliBlur.css#L3294

    Removing this line causes the menu to display correctly.

    opened by sPOiDar 0
  • [iOS] Caliblur! Download button not working on 0.6.12

    [iOS] Caliblur! Download button not working on 0.6.12

    Describe the bug/problem

    • The download button is not working when using an iOS device (Safari or Chrome). When clicking the download button, nothing will happen, no drop-down menu appear.
    • Background color shifted a bit, seems to be related to the div
    • The problem only happens in iOS, Android and Windows is working fine
    • Download button in 0.6.11 is working fine

    To Reproduce Steps to reproduce the behavior:

    1. Select any book
    2. Click the download button
    3. bug appears

    Logfile Nothing in the log file related to this bug

    Screenshots IMG_8128

    Environment (please complete the following information):

    • OS: Alpine Linux 3.12.4
    • Python version: python 3
    • Calibre-Web version: 0.6.12
    • Docker container: LinuxServer
    • Special Hardware: DS218+
    • Browser: iOS Safari / iOS Chrome
    Caliblur! Theme bug duplicate 
    opened by gabmak 1
  • Can't save metadata when Calibre Web is running in a Docker container on a Nas whose books are mounted via CIFS share.

    Can't save metadata when Calibre Web is running in a Docker container on a Nas whose books are mounted via CIFS share.

    [2021-06-04 17:10:00,843] INFO {cps.server:205} Starting Gevent server on [::]:8083 [2021-06-04 17:16:32,521] ERROR {cps.editbooks:56} (sqlite3.OperationalError) database is locked (Background on this error at: http://sqlalche.me/e/e3q8)

    opened by D1skanime 0
  • Define timings for thumbnail generation

    Define timings for thumbnail generation

    I just stumbled upon this PR. Sounds like a great idea.

    Please let the user define the timings/intervals.

    I do not need it to look for missing images every 5 minutes. Once per day or week would be enough for me. Maybe let the user define a specific time instead of an interval? And the expire time could even be a couple of month, in my opinion.

    My main concern is that my HDD would not go into standby when calibre-web is scanning for thumbnails all the time. 😄

    Just my 2 cents as a casual user. I barely use calibre-web as you might have guessed. 😉

    opened by CWempe 0
  • [Question] Default locale for new users imported via LDAP?

    [Question] Default locale for new users imported via LDAP?

    This is more of a question than an issue, I apologize if it is not possible to do this kind of thing.

    When I was importing users from LDAP, the locale was a big problem since the correct one was not always selected (even though I understood that it is taken from the browser). With the latest update, being able to modify multiple users at the same time was a blessing, but when it comes to managing more than 2k users it becomes a bit tedious.

    Currently, due to problems with a new ISP, I cannot use the LDAP import option, and despite the fact that in the last issue that I opened I implemented the Google's Oauth solution, I feel that eventually if I have the opportunity to return to LDAP I will not think twice, which is why I am encouraged to ask:

    Is possible to select the default locale for new users imported via LDAP? or... can be some part of the code fixed to do that?

    EDIT When I opened the issue #1504 you provided me with a script (at that time) to help me import users; that same script (some time later) I wanted to implement it, since it allowed me to define the locale with which the user account would be imported, but I had no success executing it. After reviewing documentation (since I did not want to bother) I could modify it so that "it works" (the problem was that my instance was running with domain and https, while the script needed an ip address + port and pointed to a http link) indicating that the import process had been carried out successfully, but when checking in the application users did not appear.

    Is there any possibility of being able to modify that same script to take advantage of the static selection of the locale?

    opened by Kuroburn 0
  • Question on Author sort by series

    Question on Author sort by series

    I've been using Calibre-web for a little while now and for the most part think it's quite good. I have a question regarding how books are sorted for display.

    I know that from the main page I can select from different sort parameters. Choosing the Author sort does that but books seem to be displayed in a random order within that. I would like to be able to sort by series / series index within the author but can't find a way to do that. I can sort by series index if I view a series but would prefer if it was the possible to do it as the default author sort.

    Is there a setting somewhere that controls this? I've looked in the app and multiple online forums and can't find any reference to that.

    Thanks.

    opened by Minstrel27 0
  • Let the user pick identifiers as a dropdown list

    Let the user pick identifiers as a dropdown list

    Is your feature request related to a problem? Please describe. As a user, I'm always confused because I do not know which identifiers are supported out of the box by Calibre-Web. I discovered a few by trial and error, and eventually I found a reference in db.py

    Describe the solution you'd like A dropdown list for picking identifiers in the "Edit Metadata" view would be awesome

    Describe alternatives you've considered Alternatively, an info tooltip or a footnote linking to the full reference list might suffice.

    Additional context N/A

    opened by a10software 0
  • Kobo api endpoint from localhost

    Kobo api endpoint from localhost

    I am using a seedbox to host my calibre-web server so I don't have control over the calibre installation and server configuration. The app is a bundle (calibre and calibre-web) and access to the web server is done through a thin client (so I will appear as coming from localhost). When I want to generate the Kobo Auth URL I have the error message:PLease access calibre-web from non localhost to get valid api_endpoint for kobo device. Is there a way to bypass this error or generate the API a different way? Any reason for restricting the API generation from localhost?

    Environment (please complete the following information):

    • OS: Linux / Seedbox
    • Python version: python2.7
    • Calibre-Web version: 0.6.9
    question 
    opened by gwenvador 3
  • Web based epub reader enhancements

    Web based epub reader enhancements

    What is the chance of improving the web epub reader?

    Update the epub reader to include the following.

    Ability to change font size. Add support for themes. This would allow nightmode. The ability to render two column or one big column.

    opened by aznkvaj 2
  • Question about bookmark

    Question about bookmark

    I tried using the bookmark but I can't see the page/book that i marked. Is it also possible for several library users to use the bookmark?

    I appreciate any help or if someone can tell me where to start.

    Thanks

    opened by Jakgab617 0
Releases(0.6.12)
  • 0.6.12(May 22, 2021)

    New features:

    • Added djvu ebook reader
    • Removed dropdown button on single file on details page
    • Add support for XMP Metadata in pdf files
    • Added possibility to search in Shelfs
    • Updated pdf reader
    • Added possibility to mass edit users
    • Added gmail with oauth as Email server
    • Added support for datetime and comments style custom columns
    • Bootstrap datepicker is now always used
    • Added brazillian translation

    Bug Fixes:

    • Upload of jpg files without installed imagemagick is working now
    • Fix for error "UnboundLocalError: local variable 'entries' referenced before assignment"
    • Enabled png files in supported picture formats for comic viewer
    • Odps feed is now working in Moonreader an Librera
    • Opds logins with colon in password work as expected now
    • Visiblilty restrictions are now applied to kobo sync requests
    • Changed test email message
    • Several bugfixes for Book list view
    • Write access to calibre database is no longer needed for displaying authors list
    • Search for publish dates and custom column dates now works with correct limits
    • Invalid numbers in books seriesindex no longer crashes the app

    Changes behind the scenes:

    • Updated requirements
    • A lot of js libraries are updates
    • Enabled pip and excecutable version
    • Improved error logging
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.12.tar.gz(4.32 MB)
    calibre-web-0.6.12.zip(5.11 MB)
    Calibre-Web-Setup.exe(22.48 MB)
  • 0.6.11(Feb 2, 2021)

    New features:

    • Swipe support for reader
    • Logging of failed opds accesses
    • Automatic conversion to kepub on kobo sync
    • Webp format to comic reader supported formats
    • Title is no longer shortened on book page

    Bug Fixes:

    • Chinese character language texts are no longer shown for english locale
    • logging on database error
    • Filepicker option
    • reverse proxy login working again
    • Detection of invalid email addresses for registering
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.11.zip(4.46 MB)
  • 0.6.10(Jan 17, 2021)

    This release will be the last one supporting Python 2

    New features:

    • User Password change on cli
    • Added correct mimetype for azw3 files
    • Improved errorhandling for user database
    • More informations are logged in debug mode
    • Debug Information and logbooks are downloadable via web UI
    • Gdrive callback is only parsed with activated metadata watch
    • LDAP user import now capable to import from Windows-AD
    • Kobo sync can handle large libraries
    • Filechooser dialog for calibre-database and other external files (use -f option for unconfigured Calibre-Web instances)
    • Advanced search has now Multiselects, making the UI easier for libraries with many series, tages, languages, file formats
    • Read Status is searchable
    • Shelfs can additionally sorted according to name, date, ...
    • Read status is visible on Cover pictures
    • Admin page layout optimized
    • Txt Reader now detects correct encoding
    • Kepub is prefered during kobo sync
    • Forward Overdrive requests to Kobo Store
    • Drag 'n drop for fileuploads
    • Convert from and convert to are now matching calibre's capabilities
    • Shrinked size of generic cover
    • When serving a download URL via KoboSync, use a URL that is specific to Kobo
    • Removed Gevent Tracebacks with SSL encryption
    • Save view settings
    • Delete user is now a separate button
    • Paginated search, advanced search, and shelfs
    • Downloaded books is no longer part of admin page (admins currently can't check which books are downloaded by other users)
    • Added greek translation

    Bug Fixes:

    • Downloads are now allowed for opds links, with ldap login and a cookie in the download request
    • Download rights of guest user are now respected again
    • Browser caching problem on cover change solved
    • Import rarfile v4.0 fails no longer on python3.5
    • No password prompt for anonymous browsing with LDAP login
    • Missing audio icon for other audio formats than mp3 added
    • Invalid timestamps during kobo sync caused by malformed database no longer crash the application
    • Conversion of multiple formats of one book in the queue with gdrive is fixed
    • Failed email and conversions with gdrive are now working correctly

    Changes behind the scenes:

    • Pillow is removed as dependency
    • Pydrive2 can be used additionally to Pydrive
    • Updated epub.js library
    • Updated minimum Sqlalchemy version
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.10.zip(4.46 MB)
  • 0.6.9(Sep 27, 2020)

    New features:

    • Changed color of rating stars
    • Reenabled m4a, m4b audio playback
    • Added route to robots.txt
    • Changed behavior delete books with subfolders (additional warning message, but book is deleted)
    • Program info only visible in about section if user is admin
    • Custom ratings of increment 0.5 are allowed
    • Support multiple authors on kobo sync (not working for every Kobo Reader)
    • Floating point numbers showing 2 decimals on details page
    • Change settings database gdrive watch to JSON (minimum sqlite version is the 2015 released V3.9)
    • Improved author names detection during for upload
    • Parse Amazon_* identifiers
    • Added hint for missing ghostcript on cover extraction

    Bug Fixes:

    • White background on transparent covers instead of black one during upload
    • Fix for errors editing/uploading books with duplicate tags/authors/language names
    • Fix for xx is not a valid language" on upload
    • Fix get metadata, typo, if no result from google
    • Fix for immediate logout with login?next="/logout"
    • Stay logged in with enabled remember token, use remember token
    • Guests can access public shelfs
    • Hide listen button if user has no read/listen permissions
    • Author name is shown again in change book order page for shelfs
    • Shelf download menu is working for books with more than one format
    • Text in Kobo Auth Screen is consistent now
    • Reading progress for Kobo is stored correct
    • Fix Kobo links for reverse proxies with subdomains
    • Fix Kobo sync if one of the timestamps is outside year 1970 to 2038
    • Add fix for read only GDdrive file
    • First request to GDrive fails no longer
    • Update error handling on callback and wording for GDrive
    • Password generation for registering on python2 working again
    • Calibre-web starting with installed and not activated gdrive denpendencies without internet connection again
    • Catch some errors related to non writable settings db
    • Handle improper migrated database with config_mature_content_tags NULL instead of ""
    • Fixes for windows (moving files not allowed -> close pdf after metadata extracting)
    • Reconnect is working again via web-route access
    • Fix for error unrar binary not found
    • Fix filenames (Escape "") for autodetect calibre excecutable on Windows
    • Invalid LDAP Cert Path no longer crashes app
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.9.zip(4.37 MB)
  • 0.6.8(Jun 3, 2020)

    New features:

    • Cover view in lists selection
    • Updated comic api (using now also unrar instead of unrarlib) -> needs manual update via pip
    • Updated comic api now also extracts metadata from cbt files
    • .png and webp pictures are extracted as cover pictures from comic books
    • Config option for limiting email size
    • Config option for changing upload formats
    • Added Epub to Kepub conversion using kepubify
    • Automatic .kepub.epub ending if downloading books using kobo reader
    • Fimally removed KindleGen
    • Autodetect calibre converter, unrar binary and kepubify on first startup
    • Add "asin" to recognized identifiers
    • Added config option for automatic username during registration
    • Changed supported audio files
    • Improved error handling for cover upload from url
    • Metadata.db is now automatically removed of database location string
    • linked readstatus to calibre custom column is now excluded automatically from view
    • Prevent empty series_index field
    • Deactived Archived books in sidebar, deactivate all archived books functions

    Bug Fixes:

    • Upload books with python2 is possible again
    • Spanish translation no longer crashs the app in config settings
    • Fixed covers for archived books not shown
    • Fixes for readonly metadata.db
    • Improved debug output on send emails
    • Fix for private shelfs are listed twice in "add to shelf" dropdown menu in search results
    • Fix for importing ldap users with whitespaces in the name
    • Fix for tags with "&" in the name can't be removed from visibility restrictions
    • Fix for kobo sync errors out if read/unread books had been present in app.db during initial database migration
    • Fix error 500 on reset password in debug mode
    • Fix for Kobo sync not working if series is given, but no series_index
    • Fix for saving settings with enabled gdrive metadata watch led to crash
    • Added missing float custom column to search form
    • Better detection of localhost for kobo sync
    • Fix XML parsing error when using OPDS feeds
    • Fix for >1000 read books lead to error 500 in read menu
    • Fix for failed recovery of config_logfile and config access_log, in case folder of logfiles is not present anymore
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.8.zip(4.02 MB)
  • 0.6.7(May 5, 2020)

    New features:

    • Additional Metadata Provider ComicVine
    • Added LDAP login
    • Additional features for kobo sync (support for reading status, archiving books, shelfs support)
    • Additional feature restrict and allow custom columns and tags
    • Additional categories in opds feed
    • Added editing of Book identifiers
    • Changed behavior for public and private shelfs
    • Changing ordering logic when showing books from a category
    • Improved input check on some endpoints
    • Added turkish translation
    • Updated translations

    Bug Fixes:

    • Updater is now able to recover after failed updates
    • Fixed pdf reader
    • Fixed compatibility for werkzeug and flask-dance
    • Fixed loading multiple authors via Get Metadata
    • Fixed OAuth login
    • Fix for Python3.8 on Windows
    • Fix for download after access to opds-fileformat tree
    • Book change timestamp in now applied upon changing a book
    • Fix upload of covers from hdd
    • Fix for removing admin role from last admin
    • Fix deletion of books with multiple custom column content
    • Fix handling uploaded books on forein file systems

    Security fix CVE 2020-12627 don't use an hardcoded session key anymore

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.7.zip(4.13 MB)
  • 0.6.6(Feb 25, 2020)

    New features:

    • Added handling of different virtual environment names on selfupdate
    • Added handling float-type custom columns
    • Updated translations

    Bug Fixes:

    • Fix for using werkzeug 1.0.0
    • Pinned dependencies to current version as maximum
    • Fix viewing logfile
    • Fix Autodetection of Locale for guest user
    • Fix Shelfs are reordering again
    • Fix Auth-digest Header no longer crashs calibre-web
    • Fix Windows with tornado and python <3.8 working
    • Fix Print button no longer visible in pdf reader if user has no download rights
    • Fix display of covers for downloaded books in usersection
    • Fix for missing referrer on send to kindle
    • Fix invalid file extensions on Kindle Paperwhite download
    • Fix shutown tornado-server
    • Fix fix custom column display that contain colons in Caliblur theme
    Source code(tar.gz)
    Source code(zip)
  • 0.6.5(Jan 21, 2020)

    New features:

    • Added oauth login via google and github
    • Added filtering of lists on first character
    • Added sorting of books according date, and first character
    • Added public reconnect point
    • Added upload of mp3 files and mp3 file listener
    • Added sorting on and search for file extensions and publisher
    • Added more information in the about section
    • Added logfile viewer
    • Added ability to log to streamoutput on linux
    • Added deny domains for registering
    • Added login via auth header
    • Added resend password feature
    • Added ability for admins to resend password to user
    • Added czech and finnish translation

    Bug Fixes:

    • Fix for exposure of mature content
    • Fix for login issue on MacOS
    • Fix compatibility with python 3.8
    • Fixed goodreads problem on Raspberry Pi
    • Fix for cover extraction on pdf files
    • Fix for metadata search on douban
    • Fix for Goodreads in combination with no books of author found
    • Fix for uploading of books with applied language restriction
    • Fix display no. of unread books now correct
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.5.zip(4.15 MB)
  • 0.6.4(Aug 3, 2019)

    New features:

    • Optional parsing of comic metadata

    Bug Fixes:

    • Custom columns now visible in Caliblur! theme
    • Fix for restart of newer versions of tornado server
    • Fix for updater on beta versions
    • Improved parsing of metadata downloads
    • Calibur! background images are available again
    • Search for username and email address is now case insensitive
    • Sorting in comics follows natural sorting rules
    • Fix for displaying long running tasks
    • Added error output for calibre during conversion
    • Deleting the last admin user is now prevented
    • User ids are unique (even for deleted users)
    • Updated Comicreader
    • Updated translations
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.4.zip(3.36 MB)
  • 0.6.3(May 30, 2019)

    New feature: Added direction settings for comic reader

    Bug Fixes: Fix not loading loading-icon Fix magic link on python 3 Fix for reader with not supported formats Fix instance name not shown in opds feed fix for advanced search without "custom column 1" Fix for non loading pdf-files in reader Fix registration emails are shown to normal users

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.3.zip(3.36 MB)
  • 0.6.2(Apr 20, 2019)

    Easter Release

    !Attention! Please backup all data before updating !Attention! Due to a bug in the auto updater, an update from a commit version before january 29th 2019 will lead to loss of all data

    • Update search function for Unicode characters
    • Upload of jpeg, png and webp file
    • Extraction of png covers from pdf files during upload
    • Updated epub reader lib
    • Fix for sqlalchemy v1.3.x
    • Removed Douban from metadata loading
    • Fixes for OPDS feed
    • Improved errorhandling
    • Changed behavior of filename renaming on Google Drive to match renaming on normal filestorage
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.2.zip(3.34 MB)
  • 0.6.0(Apr 20, 2019)

    Initial Release

    Named after the first donor of Calibre-Web.


    !Attention! Please backup all data before updating !Attention! Due to a bug in the autoupdater, an update from a commit version before january 29th 2019 will lead to loss of all data

    • Bootstrap 3 HTML5 interface
    • full graphical setup
    • User management
    • OPDS feed for eBook reader apps
    • Filter and search by titles, authors, tags, series and language
    • Create custom book collection (shelves)
    • Support for editing eBook metadata and deleting eBooks from Calibre library
    • Support for converting eBooks through Calibre binaries
    • Send eBooks to Kindle devices with the click of a button
    • Support for reading eBooks directly in the browser (.txt, .epub, .pdf, .cbr, .cbt, .cbz)
    • Upload new books in many formats
    • Support for Calibre custom columns
    • Self update capability
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.0.zip(2.96 MB)
The official source code repository for the calibre ebook manager

calibre calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book re

Kovid Goyal 10.1k Jun 13, 2021
🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

ArchiveBox Open-source self-hosted web archiving. ▶️ Quickstart | Demo | Github | Documentation | Info & Motivation | Community | Roadmap "Your own pe

ArchiveBox 9.5k Jun 14, 2021
A :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.

Baby Buddy A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs wit

Baby Buddy 1.1k Jun 14, 2021
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Mischievous Meerkat 4.5k Jun 13, 2021
One webpage for every book ever published!

Open Library Open Library is an open, editable library catalog, building towards a web page for every book ever published. Are you looking to get star

Internet Archive 2.9k Jun 2, 2021
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 76 Apr 21, 2021
Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Exclusiv

pyMedusa 1.3k Jun 12, 2021
Scan, index, and archive all of your paper documents

[ en | de | el ] Important news about the future of this project It's been more than 5 years since I started this project on a whim as an effort to tr

Paperless 7.6k Jun 13, 2021
Main repository of the zim desktop wiki project

Zim - A Desktop Wiki Editor Zim is a graphical text editor used to maintain a collection of wiki pages. Each page can contain links to other pages, si

Zim Desktop Wiki 1.3k Jun 13, 2021
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: ?? a general-purpose event management tool; ?? fully web-based; ?? feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.2k Jun 12, 2021
Automatic Movie Downloading via NZBs & Torrents

CouchPotato CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a "movies I want"-list and it will search for NZBs/torrents of t

CouchPotato 3.8k Jun 8, 2021
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 121 Jun 8, 2021
Open source platform for the machine learning lifecycle

MLflow: A Machine Learning Lifecycle Platform MLflow is a platform to streamline machine learning development, including tracking experiments, packagi

MLflow 9.6k Jun 13, 2021
Fava - web interface for Beancount

Fava is a web interface for the double-entry bookkeeping software Beancount with a focus on features and usability. Check out the online demo and lear

null 1k Jun 13, 2021