: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

Comments
  • 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 95
  • Logout after search in Browser on Tolino E-Book reader

    Logout after search in Browser on Tolino E-Book reader

    I login into calibre-web on my reader. this works fine. but when I search a book or click any other button, i get logout. This issue I only have on reader. On any other device like phone or laptops I don't have this problem. Any suggestion to fix this problem or is this may be a bug?

    Logfile In the log file there is nothing, only calibre-web was starting in the morning. No crash nothing.

    Expected behavior Like this, the calibre-web on my readers (all are tolinos) are useless, because after every search I must login and my search is away.

    Environment (please complete the following information):

    • Client: Tolino - E-Reader
    • Python version 3.7.3 (default, Dec 20 2019, 18:57:59) [GCC 8.3.0]
    • Calibre-Web version 0.6.9 Beta - b83d56eff2c820e55222c9856000f0422f721f3d - 2020-06-03T19:10:36+02:00
    • Docker container None
    • Special Hardware Raspberry Pi 3
    • Browser browser from tolino E-Reader
    bug 
    opened by Gagalari 60
  • 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
  • crashes on upload.

    crashes on upload.

    just upgraded to latest version and cannot upload magazines. please help! ripping hair out! tried rebooting restarting reconnect database etc. none work i have over 1000 ebooks on this and have been using it for years. i love it! but this is a huge problem a reload would be a nightmare

    Internal Server Error

    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 "C:\CWM\vendor\flask\app.py", line 2073, in wsgi_app   
        response = self.full_dispatch_request()
      File "C:\CWM\vendor\flask\app.py", line 1518, in full_dispatch_request    
        rv = self.handle_user_exception(e)
      File "C:\CWM\vendor\flask\app.py", line 1516, in full_dispatch_request
        rv = self.dispatch_request()
      File "C:\CWM\vendor\flask\app.py", line 1502, in dispatch_request       
        return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)    
      File "C:\CWM\cps\usermanagement.py", line 35, in decorated_view      
        return login_required(func)(*args, **kwargs)      
      File "C:\CWM\vendor\flask_login\utils.py", line 272, in decorated_view    
        return func(*args, **kwargs)     
      File "C:\CWM\cps\editbooks.py", line 59, in inner      
        return f(*args, **kwargs)    
      File "C:\CWM\cps\editbooks.py", line 1100, in upload     
        error = helper.update_dir_structure(book_id,   
      File "C:\CWM\cps\helper.py", line 685, in update_dir_structure      
        return update_dir_structure_file(book_id,  
      File "C:\CWM\cps\helper.py", line 488, in update_dir_structure_file   
        error = move_files_on_change(calibre_path,  
      File "C:\CWM\cps\helper.py", line 551, in move_files_on_change  
        os.makedirs(new_path)
      File "C:\Program Files\Python310\lib\os.py", line 215, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "C:\Program Files\Python310\lib\os.py", line 225, in makedirs
        mkdir(name, mode)
    ValueError: mkdir: embedded null character in path
    

    i also noticed i cant open books on shelves only under the books tab. i wish i had a backup before updating. what a mess! update1: its a problem with caliblur theme. uses standard and it works. however still cant upload. update 2: installed the windows version exe and moved the app.db to it and has same issue with uploading Calibre-Web-debug-pack.zip

    bug Fixed in Nightly 
    opened by david85091 40
  • 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
    enhancement Caliblur! Theme To check 
    opened by gpapin 39
  • Amazon ending MOBI support in Send to Kindle service

    Amazon ending MOBI support in Send to Kindle service

    Is your feature request related to a problem? Please describe.

    https://gizmodo.com/amazon-kindle-e-readers-will-now-convert-epub-to-kindle-1848867278

    Per this article, Amazon will be phasing out support for the MOBI format in the Send to Kindle service.

    Describe the solution you'd like

    Calibre-web currently has the ability to convert to MOBI and email books, it would be prudent to update this process to convert to AZW3.

    Describe alternatives you've considered

    Converting to EPUB before sending could also be a valid alternative, but seems less ideal since EPUBs will be immediately converted to AZW3 by Amazon before delivery.

    Additional context Add any other context or screenshots about the feature request here.

    opened by tzw9373 38
  • 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
  • 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
  • Generate Book Cover Thumbnail Images

    Generate Book Cover Thumbnail Images

    Features

    Generating Book Cover Thumbnails

    • Automatically generate / regenerate book cover thumbnails as needed
    • Works for books stored locally and on Google Drive
    • Generate two thumbnail sizes - 225px height (normal resolution devices) and 450px height (high resolution devices)
    • A new setting has been added to toggle on / off this feature

    Generating Series Cover Thumbnails

    • Automatically generate / regenerate series cover thumbnails for books series with at least 4 books as needed
    • Series thumbnails will be regenerated if a book in the series has been updated since the last time the cover was created
    • Series thumbnails will always use the last four books in the series index when generating a cover - could consider changing this in the future to being the most recently released books in the series
    • Works for books stored locally and on Google Drive
    • Generate two thumbnail sizes - 225px height (normal resolution devices) and 450px height (high resolution devices)
    • A new setting has been added to toggle on / off this feature

    Thumbnail Images In the interface, book cover thumbnails will be used wherever possible.

    • Uses the srcset attribute on the img tag. This allows the browser to determine which image is the best fit for the device displaying it. For example, on a newer phone with a high-resolution display, the browser will choose the 450px tall image to use as the thumbnail.
    • Full browser support with a fallback src attribute.

    Cache Busting The current method of cache busting is to: bust the cache on every page load, for every image. The new way:

    • For book covers, generate a cache busting id using the books last_modified date
    • For series covers, generate a cache busting id that refreshes daily

    Scheduled Tasks

    • Tasks created by the system (GenerateCoverThumbnails and GenerateBookThumbnails) will be automatically scheduled to run at the same time every day.
    • New settings have been added in order for admins to customize the scheduled tasks start and end time.
    • Some scheduled tasks are now cancellable by an admin from the tasks page.
    • If the scheduled tasks settings are changed, all current running tasks are cancelled, and re-registered - which may result in starting the scheduled tasks again.

    FileStorage Cache

    • A new directory will be generated for thumbnails or other cached files calibre-web/cps/cache/ with subdirectories for each cached file type: calibre-web/cps/cache/thumbnails
    • A new environment variable CACHE_DIR has been added to override the default cache directory.
    • In the case of the thumbnail cache, there is a chance of having many thousands of files in the cache, so a hash-directory structure is used.

    Performance Improvements

    In the following examples the browser cache was disabled.

    Locally stored library To illustrate performance improvements, a library consisting of 483 books most of which have 2200px height cover images. Since this PR was developed locally, I don't have example load times for this example.

    • When loading 60 books, the page size before updates: ~27Mb, after updates ~6Mb an improvement of 4.5x!
    • When loading 483 books, the page size before updates: ~254Mb, after updates ~26Mb an improvement of almost 10x!

    Google Drive stored library In this example I used a library of only 5 books most of which have 2200px height cover images.

    • When loading 60 books, the pages load speed before updates: 26.5s after updates 300ms an improvement of almost 90x!

    Images

    Series Thumbnails series-thumbs

    Scheduled Tasks Running task-list-1

    Scheduled Tasks Cancelled task-list-2

    Scheduled Task Settings schedule-settings

    Fixes

    Fixes #742 - Feature request: resize cover images

    opened by mmonkey 28
  • Is it doable on a dedicated web server ? [BEGINNER]

    Is it doable on a dedicated web server ? [BEGINNER]

    Hi, so i'm new to code (only few experiences with setting a wordpress localhost).

    So my question is this :

    i have an unlimited database + FTP offer, and i was wondering if there was any ways for me to install calibre web server on oen dedicated domain name i have.

    Like when i want to read a book when i'm in my bed or traveling for example, i just have to go to https://calibre.thewebsite.fr

    Because from everything i saw this is only for localhost if i'm right ?

    question 
    opened by Wilfried-1 28
  • New books won't sync through kobo sync

    New books won't sync through kobo sync

    Describe the bug/problem I haven't synced my kobo in a few months, however, when I went to sync it recently I get the "sync complete" message on my device, however, no new books are added. I did delete and recreate my token and update it in the kobo configuration because I was debugging an issue an issue that ended up being unrelated, so I'm unsure if that could have anything to do with it. As an additional test I removed a book from my current library on my kobo and went to re-sync and it wasn't added back

    Logfile

    [2021-11-27 12:09:34,532]  INFO {cps.kobo:140} Kobo library sync request received.
    [2021-11-27 12:09:34,532] DEBUG {cps.kobo:141} SyncToken: 
    eyJ0eXAiOjEsInZlciI6bnVsbCwicHR5cCI6IlN5bmNUb2tlbiJ9.eyJJbnRlcm5hbFN5bmNUb2tlbiI6ImV5SjBlWEFpT2pFc0luWmxjaUk2SW5ZeUlpd2ljSFI1Y0NJNklsTjVibU5VYjJ0bGJpSjkuZXlKVGRXSnpZM0pwY0hScGIyNUZiblJwZEd4bGJXVnVkSE1pT25zaVNYTkpibWwwYVdGc0lqcHVkV3hzTENKSFpXNWxjbUYwYVc5dVZHbHRaU0k2Ym5Wc2JDd2lWR2x0WlhOMFlXMXdJam9pTVRrd01DMHdNUzB3TVZRd01Eb3dNRG93TUZvaUxDSkRhR1ZqYTFOMWJTSTZiblZzYkN3aVNXUWlPaUl3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpZlN3aVJuVjBkWEpsVTNWaWMyTnlhWEIwYVc5dVJXNTBhWFJzWlcxbGJuUnpJanB1ZFd4c0xDSkZiblJwZEd4bGJXVnVkSE1pT25zaVNYTkpibWwwYVdGc0lqcHVkV3hzTENKSFpXNWxjbUYwYVc5dVZHbHRaU0k2Ym5Wc2JDd2lWR2x0WlhOMFlXMXdJam9pTWpBeU1DMHhNaTB5T1ZReU1EbzFPRG8xTTFvaUxDSkRhR1ZqYTFOMWJTSTZJbnRjSWxOcmFYQkRjbVZoZEdWa1hDSTZabUZzYzJVc1hDSkRjbVZoZEdWa1EyOTFiblJjSWpvd0xGd2lRM0psWVhSbFpGd2lPbHRkTEZ3aVUydHBjRTF2WkdsbWFXVmtYQ0k2Wm1Gc2MyVXNYQ0pOYjJScFptbGxaRndpT2x0ZGZTSXNJa2xrSWpvaU1EQXdNREF3TURBdE1EQXdNQzB3TURBd0xUQXdNREF0TURBd01EQXdNREF3TURBd0luMHNJa1JsYkdWMFpXUkZiblJwZEd4bGJXVnVkSE1pT25zaVNYTkpibWwwYVdGc0lqcHVkV3hzTENKSFpXNWxjbUYwYVc5dVZHbHRaU0k2Ym5Wc2JDd2lWR2x0WlhOMFlXMXdJam9pTWpBeU1DMHhNaTB5T1ZReU1EbzFPRG8xTTFvaUxDSkRhR1ZqYTFOMWJTSTZiblZzYkN3aVNXUWlPaUl3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpZlN3aVVtVmhaR2x1WjFOMFlYUmxjeUk2ZXlKSmMwbHVhWFJwWVd3aU9tNTFiR3dzSWtkbGJtVnlZWFJwYjI1VWFXMWxJanB1ZFd4c0xDSlVhVzFsYzNSaGJYQWlPaUl5TURJd0xURXlMVEk1VkRJd09qVTRPalV6V2lJc0lrTm9aV05yVTNWdElqcHVkV3hzTENKSlpDSTZJakF3TURBd01EQXdMVEF3TURBdE1EQXdNQzB3TURBd0xUQXdNREF3TURBd01EQXdNQ0o5TENKVVlXZHpJanA3SWtselNXNXBkR2xoYkNJNmJuVnNiQ3dpUjJWdVpYSmhkR2x2YmxScGJXVWlPbTUxYkd3c0lsUnBiV1Z6ZEdGdGNDSTZJakl3TWpBdE1USXRNamxVTWpBNk5UZzZOVE5hSWl3aVEyaGxZMnRUZFcwaU9tNTFiR3dzSWtsa0lqb2lNREF3TURBd01EQXRNREF3TUMwd01EQXdMVEF3TURBdE1EQXdNREF3TURBd01EQXdJbjBzSWtSbGJHVjBaV1JVWVdkeklqcDdJa2x6U1c1cGRHbGhiQ0k2Ym5Wc2JDd2lSMlZ1WlhKaGRHbHZibFJwYldVaU9tNTFiR3dzSWxScGJXVnpkR0Z0Y0NJNklqRTVNREF0TURFdE1ERlVNREE2TURBNk1EQmFJaXdpUTJobFkydFRkVzBpT201MWJHd3NJa2xrSWpvaU1EQXdNREF3TURBdE1EQXdNQzB3TURBd0xUQXdNREF0TURBd01EQXdNREF3TURBd0luMHNJbEJ5YjJSMVkzUk5aWFJoWkdGMFlTSTZleUpKYzBsdWFYUnBZV3dpT201MWJHd3NJa2RsYm1WeVlYUnBiMjVVYVcxbElqcHVkV3hzTENKVWFXMWxjM1JoYlhBaU9pSXlNREl4TFRFeExUSXpWREF3T2pFM09qQTJXaUlzSWtOb1pXTnJVM1Z0SWpwdWRXeHNMQ0pKWkNJNkltWmpOV016Wm1JMkxUVXhPR1V0TkdVeFppMWhOemcwTFRaa056QTFZemN5TkRnd01TSjlmUSIsIklzQ29udGludWF0aW9uVG9rZW4iOmZhbHNlfQ,2021-07-03 14:20:57.049122,2021-07-03 14:21:20.852841,0001-01-01 00:00:00,2021-11-27 16:28:09.701760,0001-01-01 00:00:00
    [2021-11-27 12:09:34,532] DEBUG {cps.kobo:143} Kobo: Received unproxied request, changed request port to external server port
    [2021-11-27 12:09:34,557] DEBUG {cps.kobo:270} Remaining books to Sync: 0
    [2021-11-27 12:09:34,827] DEBUG {cps.kobo:980} Unimplemented User Request received: http://192.168.1.75/kobo/[MyToken]/v1/user/wishlist
    [2021-11-27 12:09:35,348] DEBUG {cps.kobo:995} Unimplemented Products Request received: http://192.168.1.75/kobo/[MyToken]/v1/products/books/series/ab83e0cd-5bf2-356e-90e2-afc3e74a7147
    [2021-11-27 12:09:35,490] DEBUG {cps.kobo:995} Unimplemented Products Request received: http://192.168.1.75/kobo/[MyToken]/v1/products/books/series/f59de287-48a6-3d65-9043-9d9399c9b94d
    [2021-11-27 12:09:35,689] DEBUG {cps.kobo:980} Unimplemented User Request received: http://192.168.1.75/kobo/[MyToken]/v1/user/recommendations
    [2021-11-27 12:09:36,735] DEBUG {cps.kobo:980} Unimplemented User Request received: http://192.168.1.75/kobo/[MyToken]/v1/analytics/event
    [2021-11-27 12:09:37,481] DEBUG {cps.kobo:995} Unimplemented Products Request received: http://192.168.1.75/kobo/[MyToken]/v1/products/468547f2-8f73-497a-bbb7-6593e961cbdf/nextread
    [2021-11-27 12:09:37,682] DEBUG {cps.kobo:995} Unimplemented Products Request received: http://192.168.1.75/kobo/[MyToken]/v1/products/819bcdd2-9b51-462f-9ba9-226a7f498ea6/nextread
    [2021-11-27 12:09:37,920] DEBUG {cps.kobo:995} Unimplemented Products Request received: http://192.168.1.75/kobo/[MyToken]/v1/products/502c3026-3886-45a8-86b3-67160e5b2622/nextread
    

    Expected behavior I have 14 new kepub files since my previous sync that should be added to my device after I sync

    Screenshots If applicable, add screenshots to help explain your problem.

    Environment (please complete the following information):

    • OS: Linux 5.10.28-Unraid SMP Wed Apr 7 08:23:18 PDT 2021 x86_64 x86_64
    • Python version: 3.8.10
    • Calibre-Web version: 0.6.15 Beta - 7f9da94a18daadb9e6b4c9cede41667a1402b5af - 2021-11-27T17:43:51+01:00
    • Docker container: LinuxServer
    • Special Hardware: None
    • Browser: Firefox 94.0.1

    Additional context Syncing over LAN using LAN address. As mentioned before I did delete and recreate my token and update it in the kobo configuration between the previous and current syncs.

    Here are my configuration settings within calibre-web image

    bug 
    opened by garrettjones331 27
  • No client-side caching of static content

    No client-side caching of static content

    Describe the bug/problem

    All static content is served with a Cache-Control: no-cache header, so all these resources are re-downloaded on every page navigation.

    For even a small library (~40 books) this means a significant amount of data is downloaded:

    image

    Would be happy to contribute a pull request, but am not familiar with Flask so some guidance about where to make the change/what library to use would be appreciated.


    To Reproduce

    docker run -i -t --rm -p 8083:8083 linuxserver/calibre-web
    
    curl -sSf 'http://localhost:8083/static/js/libs/intention.min.js' -D /dev/stdout -o /dev/null | grep -i cache-control
    Cache-Control: no-cache
    

    Expected behavior Static content should be cached client-side.

    Environment

    • Docker container: LinuxServer
    opened by danhawkes 1
  • Private books/shelves

    Private books/shelves

    In a multi-user setup, I think it would make sense to be able to restrict the visibility of books and/or shelves to specific users.

    At the moment, custom column (suppose, we call it owner) -based visibility can achieve this in two ways:

    • Denying the access of each user to books where owner is equal to some other username. This means replicating the list of usernames, one by one, in each user's visibility settings, which also have to be updated whenever a new user is created.
    • Allowing each user to see books with owner equal to their username or to some default value like 'Everyone'. Having to add a single value to each new user is easier but still annoying. More problematically, custom text columns do not seem to support default values, so this approach makes all new books invisible until an administrator manually sets them to be owned by 'Everyone'.

    A relatively simple solution would be to make books with an undefined custom column value visible by default, so only those set explicitly are filtered. It would also help to support regex matching rather than simple string comparison, so one could have the custom column contain multiple usernames to show the book to (e.g. book.custom_column_owner='foo,bar'; foo.allowed_column_value='\bfoo\b'; bar.allowed_column_value='\bbar\b').

    Ideally, a user-based visibility setting could be implemented, which would function like a tags column. It would also mean 'visible' in absence of any values as above, but one could 'tag' usernames in this column with some validation going on in the background.

    opened by DmitriiOdintcov 0
  • English Language Updates - V3

    English Language Updates - V3

    English Language Updates - Version 3

    Changes to provide consistency and spelling corrections for English language.

    This continues on from Pull Request https://github.com/janeczku/calibre-web/pull/1173 and https://github.com/janeczku/calibre-web/pull/1264 with even further English language corrections and changes.

    opened by joshobriencom 0
  • epub: Skip invalid dc:identifier

    epub: Skip invalid dc:identifier

    I have a book where the dc:identifier metadata element does not have an attribute to signify what type of identifier this is. This causes an exception to be thrown on upload and makes the metadata fall back to the default template.

    However, this seems to be perfectly valid, so maybe it's better to just skip the tag and return the rest of the metadata. This could be smarter and try to employ some heuristic about which type of identifier it could be, but from what I've seen these can be many different things.

    Example metadata:

    <?xml version="1.0" encoding="utf-8"?>
    <package version="3.0" unique-identifier="BookId" xmlns="http://www.idpf.org/2007/opf">
      <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
        <dc:identifier>978-1-938570-34-6</dc:identifier>
        <dc:language>en</dc:language>
        <dc:title>Tress of the Emerald Sea</dc:title>
        …
      </metadata>
    </package>
    
    opened by moben 0
  • Problem with calibre-web

    Problem with calibre-web

    This is for sure not an important bug. I file it just for information, perhaps it may serve to further improve calibre-web a little.

    Describe the bug/problem When trying to log in into calibre-web, i run into the error below. I run Calibre-server and Calibre-web simultaneously, because I need Calibre-server for adding new books automatically via crontab, while I need Calibre-web to synchronize everything with my kobo. Due to an error in an automated script that I wrote, there are 394 books, mostly with the same title and and the same author, in the library. The error disappears, when I delete the duplicate e-books.

    To Reproduce Steps to reproduce the behavior:

    1. set up calibre-server
    2. set up calibre-web
    3. load 400 books with the same title and author into the library
    4. try to open the web interface of calibre-web ( 192.168.xx.xx:8083 )
    5. See error: Calibre-Web 500 Internal Server Error The server encountered an internal error and was unable to complete your request. There is an error in the application. Traceback (most recent call last): File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context self.dialect.do_execute( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) sqlite3.OperationalError: database is locked The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 2073, in wsgi_app response = self.full_dispatch_request() File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/usermanagement.py", line 35, in decorated_view return login_required(func)(*args, **kwargs) File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask_login/utils.py", line 303, in decorated_view return current_app.ensure_sync(func)(*args, **kwargs) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/web.py", line 781, in index return render_books_list("newest", sort_param, 1, page) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/web.py", line 399, in render_books_list entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, True, order[0], File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/db.py", line 730, in fill_indexpage return self.fill_indexpage_with_archived_books(page, database, pagesize, db_filter, order, False, File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/db.py", line 775, in fill_indexpage_with_archived_books entries = self.order_authors(entries, True, join_archive_read) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/db.py", line 785, in order_authors ids = [a.id for a in entry.Books.authors] File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 482, in __get__ return self.impl.get(state, dict_) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 942, in get value = self._fire_loader_callables(state, key, passive) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 978, in _fire_loader_callables return self.callable_(state, passive) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1714, in execute result = conn._execute_20(statement, params or {}, execution_options) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection return connection._execute_clauseelement( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement ret = self._execute_context( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context self._handle_dbapi_exception( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception util.raise_( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context self.dialect.do_execute( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked [SQL: SELECT authors.id AS authors_id, authors.name AS authors_name, authors.sort AS authors_sort, authors.link AS authors_link FROM authors, books_authors_link WHERE ? = books_authors_link.book AND authors.id = books_authors_link.author] [parameters: (481,)] (Background on this error at: https://sqlalche.me/e/14/e3q8) Please report this issue with all related information: [Issue erzeugen](https://github.com/janeczku/calibre-web/issues/new?assignees=&labels=&template=bug_report.md&title=)

    Logfile Calibre-Web 500 Internal Server Error The server encountered an internal error and was unable to complete your request. There is an error in the application. Traceback (most recent call last): File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context self.dialect.do_execute( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) sqlite3.OperationalError: database is locked The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 2073, in wsgi_app response = self.full_dispatch_request() File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask/app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/usermanagement.py", line 35, in decorated_view return login_required(func)(*args, **kwargs) File "/home/calibre/calibreweb/lib/python3.9/site-packages/flask_login/utils.py", line 303, in decorated_view return current_app.ensure_sync(func)(*args, **kwargs) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/web.py", line 781, in index return render_books_list("newest", sort_param, 1, page) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/web.py", line 399, in render_books_list entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, True, order[0], File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/db.py", line 730, in fill_indexpage return self.fill_indexpage_with_archived_books(page, database, pagesize, db_filter, order, False, File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/db.py", line 775, in fill_indexpage_with_archived_books entries = self.order_authors(entries, True, join_archive_read) File "/home/calibre/calibreweb/lib/python3.9/site-packages/calibreweb/cps/db.py", line 785, in order_authors ids = [a.id for a in entry.Books.authors] File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 482, in __get__ return self.impl.get(state, dict_) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 942, in get value = self._fire_loader_callables(state, key, passive) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 978, in _fire_loader_callables return self.callable_(state, passive) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1714, in execute result = conn._execute_20(statement, params or {}, execution_options) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection return connection._execute_clauseelement( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement ret = self._execute_context( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context self._handle_dbapi_exception( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception util.raise_( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context self.dialect.do_execute( File "/home/calibre/calibreweb/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked [SQL: SELECT authors.id AS authors_id, authors.name AS authors_name, authors.sort AS authors_sort, authors.link AS authors_link FROM authors, books_authors_link WHERE ? = books_authors_link.book AND authors.id = books_authors_link.author] [parameters: (481,)] (Background on this error at: https://sqlalche.me/e/14/e3q8) Please report this issue with all related information: [Issue erzeugen](https://github.com/janeczku/calibre-web/issues/new?assignees=&labels=&template=bug_report.md&title=)

    Expected behavior I would expect4 calibre to start normally, with a lot of same e-books.

    Environment (please complete the following information):

    • OS: Debian 11
    • Python version: python 2.7.18
    • Calibre-Web version: 0.6.19 -- unknown git clone
    • Docker container: None, the install is in a virtual environment
    • Browser: Mozilla Firefox

    Additional context The access is in a local network. I

    opened by Pupo1 0
Releases(0.6.19)
  • 0.6.19(Jul 31, 2022)

    New features:

    • Cover images are cached when using gdrive storage and local storage
    • Kobo sync now uses calibre-web generated thumbnails as cover pictures
    • Pagination button disapear in standard theme once infinite scroll is triggered
    • Added "None" to list of file formats, tags, series, languages
    • Extract publishing date, identifier from epubs after upload
    • Added basic themes to epub reader
    • Allow "@" in imported ldap usernames
    • Allow sending epub files to amazon kindle

    Bug Fixes:

    • Read status checkbox works again for custom columns
    • Character '\u200d' is removed from end of email address and no longer causes an error on send emails
    • Gevent log output is redirected to log file and no longer stops Calibre-web on Windows
    • custom column of type "Text, but with a fixed set of permitted values" with default color no longer leads to error 500
    • Permission problems while accessing the robots file are now handled better
    • Fix for missing "query" entry in flask_session
    • Handle empty response from lubimyczytac metadata provider
    • Fix cover upload url with spaces at the end
    • Support image/jpg as upload format
    • Prevent "none" comment from uploaded pdf documents
    • Prevent converting of kepubs on every new user
    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.19.tar.gz(5.53 MB)
    calibre-web-0.6.19.zip(6.29 MB)
    Calibre-Web-Setup.exe(28.58 MB)
    calibre-web_0.6.19_amd64.deb(37.76 MB)
    calibre-web_0.6.19_arm64.deb(41.71 MB)
  • 0.6.18(Apr 3, 2022)

    New features:

    • Enabled search for text based custom column content in simple search

    Bug Fixes:

    • Bugfix errors for load metadata from amazon are now properly handled
    • Errors with readonly library are handled better
    • Bigfix author sort order differs from authors order with readonly database
    • Improved cover extraction for epub files, better epub cover parsing with multiple cover-image items
    • Undo check of read checkbox in case of error
    • Display error message in details modal dialog instead of putting it to the hidden UI
    • Bugfix set archive bit in booktable
    • Added environment variables for reconnect
    • Catch additional error on not existing custom column linked to read column
    • Prevent metadata changes are lost on edit books with errors
    • Bugfix remember sort order of series and authors if entered from link below book cover
    • Bugfix gmail.json location
    • Series Link in series view no longer clickable
    • import error on python <3.7 dataclasses solved
    • Deactivated several functions for kindle, tolino, bookeen and kobo e reader. Opening books now working for ebook readers
    • Bugfix show covers from goodreads
    • Bugfix for advanced search with linked read column and read column having a higher number than number of available custom columns
    • Bugfix for plus ("+" vs. "%2B") encoded search strings in opds search feeds are now working
    • Bugfix logging with gdrive
    • Bugfix database locked in combination with gevent

    Security fix: Prevent possible SQL Injection in user table Thanks to Iman Sharafaldin (Forward Security) Security fix: SSRF protection no longer can be bypassed by IPV6/IPV4 embedding. Thanks to @416e6e61 Security fix: SSRF protection no longer can be bypassed to connect to other servers in the local network. Thanks to @michaellrowley

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.18.tar.gz(5.48 MB)
    calibre-web-0.6.18.zip(6.23 MB)
    Calibre-Web-Setup.exe(30.37 MB)
  • 0.6.17(Mar 6, 2022)

    New features:

    • Amazon.com is added as metadata source
    • Edit of raw html in desciption field was added
    • Read and archive bit visible in book edit table
    • Rename all book authors on rename author of one book (same behavior as Calibre)
    • Kobo sync token is now also visible if accessed from localhost
    • Added command line option to allow loading covers from localhost
    • Added command line option to enable database reconnect (default disabled)
    • Added command line option to perform dry run of updater
    • Added possibility to exclude files from getting updated
    • Better logging of errors in metadata source files
    • Prevent delete of database related settings due to better detection of database change/missing
    • Enabled re-convert of bookformats

    Bug Fixes:

    • Fix for adding books to shelfs using the caliblur theme

    • Fix for iOS covers are not displayed during infinite scroll on standard theme

    • Deleted book formats are removed from synced to kobo table

    • Fix for "scholarly" requiring internet connection at startup

    • Fix parsing /Keywords' in doc_info of pdf file with type bytes

    • Fix for detecting covers in epubs

    • Fix for already present mobi file during convert for send to kindle

    • Dependencies are now displayed correct in windows executables

    • Fix showing of academic cover in case no cover was found from scholary

    • Fix for empty search results from google

    • Avoid problems with percent encoded utf-8 abstracts on certain chinese papers while importing metadata from google scholary

    • Fix a problem with sending emails from custom domain name server

    • Linux "unrar-free" is now also recognized for displaying unrar version in about section

    • Fix error message if rename files fails

    • Fix load metadata on windows executable, due to missing iso639 files

    • Security fix: The SSRF Protection can no longer be bypassed via an HTTP redirect

    • Security fix: The SSRF Protection can no longer be bypassed via 0.0.0.0 and it's ipv6 equivalent

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.17.tar.gz(5.47 MB)
    calibre-web-0.6.17.zip(6.22 MB)
    Calibre-Web-Setup.exe(30.25 MB)
  • 0.6.16(Jan 24, 2022)

    Bug Fixes:

    • Add book to shelf in popup for book details working again

    • Cover extraction with comicapi for webp files working now

    • Added missing unique marker on comments table to prevent double book_ids in comment table

    • Delete book format is working again

    • Books can be added to shelf from search again

    • Kobo sync token is now also created if accessed from localhost

    • If book format is deleted this also deletes the "book synced to kobo" status

    • Security fix: JavaScript could get executed on authors page

    • Security fix: Loading cover from localhost is prevented

    • Security fix: Prevent creating a public shelf without permission

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.16.tar.gz(5.46 MB)
    calibre-web-0.6.16.zip(6.21 MB)
    Calibre-Web-Setup.exe(30.39 MB)
  • 0.6.15(Jan 16, 2022)

    New features:

    • Added filtering of language view
    • Allow download of archived books
    • Add button to force full kobo sync
    • New user language: korean

    Bug Fixes:

    • Fix position read mark in standard theme

    • Fix grid to list button in series view

    • Fix sort ascending, descending in author and series list

    • Fix for Epub viewer isn't displaying images

    • Fix shelf grid ordering for inverted order at page load

    • Sorting buttons now visible on medium size screens

    • "Fetch metadata" update appends to the existing tags instead or replacing them

    • Exclude upload rights visibility if upload is not activated

    • Delete book setting only visible if edit book setting is ticked

    • Current sorting order visible in all sidebar selectors, and search results

    • Check versions of dependencies at startup and generate logfile output if not matching

    • Fix which cover are visible in series grid view

    • Sorting "hot" books only ascending and descending according to download numbers

    • Downloaded books sorting according to authors name now working

    • Fixed missing handle_error in convert calibre task (database readonly case)

    • Fix opds search and opds list of read books

    • Added some missing supported book languages and unknown book languages don't lead to error message

    • Improved handling of invalid cover files on upload

    • Bugfix show all allowed languages in user settings in case restrictions currently apply

    • Bugfix search in books list

    • Fixed KoboSynce in general and in multiuser environment

    • Unicode texts (title, author) are showing up right on kobo reader

    • Added some missing kobo routes (prevents 404 response)

    • Kobo Sync token only updated after complete library sync

    • Guest sorting options are now stored in the browser session

    • Visibility of upload buttons now depends only on upload right and no more on admin right

    • Bugfix edit series_index

    • Delete books in shelfs, downloaded books, kobo sync status, etc on database change

    • Improved handling of calibre output on windows

    • Catch more Gdrive errors

    • Bugfix advanced search for language

    • Bugfix uncheck all elements in books list and user list

    • Whitespaces are trimmed also for normal search

    • Better version output in about page

    • Load metadata including loading from google-scholary is working again

    • Deleting users now deletes also depending entries in all tables

    • Prevent 2 public shelfs with same names due to changing public property (thanks to @alicaz)

    • Security fix: Changed error message in case of trying to delete a shelf unauthorized

    • Security fix: Added missing check for creating public shelfs

    • Security fix: Fix upload of cover and book formats containing html characters

    • Security fix: Migrated some routes to POST-requests (CSRF protection)

    • Security fix: Fix for "javascript:" script links in identifier

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.15.zip(6.21 MB)
    Calibre-Web-Setup.exe(30.36 MB)
    calibreweb-0.6.15.tar.gz(5.69 MB)
  • 0.6.14(Oct 31, 2021)

    New features:

    • New algorithm for searching for metadata
    • Python2 support removed from code
    • Enabled editing of float, integer, enum, text and comments type custom_columns in books list
    • Enabled raw html edit in book comments
    • Enabled editing comments in books list
    • Login name is no longer auto capitalized on touch devices
    • Added trusted host settings for custom theming
    • New user language: Traditional chinese

    Bug Fixes:

    • Hovering on cover, now shows tooltip also in Caliblur! Theme

    • Added missing default locale and default language view upon importing ldap user

    • Language names on non english locales are now displayed correct

    • Misaligned shelf names after glyphicon

    • Fix filemodal file selection dialog now works for more than one filepicker on page

    • Kobo sync for more than 100 books now works correct

    • Show checkbox from boolean custom columns on details page with caliblur theme

    • In comic reader files are naturally sorted again

    • Bugfix for book list with language restriction or archived books

    • Remove include subdomwains from hsts protection

    • Bugfix for covers are not displayed during infinite scroll on standard theme on Safari browsers

    • Bugfix for mime-type not executable on windows

    • Security fix: CSRF protection

    • Security fix: JavaScript payload can no longer be injected in all typeahead functions

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.14.tar.gz(5.41 MB)
    calibre-web-0.6.14.zip(6.16 MB)
    Calibre-Web-Setup.exe(30.78 MB)
  • 0.6.13(Sep 25, 2021)

    New features:

    • Added Google Scholar to supported metadata provider
    • New faster comic reader backend (only supports x86 server)
    • Sync only selected shelfs to your Kobo reader
    • Swap author and title easily while editing books
    • Fullscreen mode for viewing covers
    • Setup database is now a seperate page and is also in unconfigured mode only accessible after login
    • Display book title in reader instead of simple "reader"
    • Add tooltip for complete title on hover over cover and title
    • Sort authors additionally to series and series_index
    • Updated pdf viewer

    Bug Fixes:

    • Fix searching for custom columns created after calibre-web was started

    • Extended search term with excluded series/shelfs are now working

    • Fixes in the !Caliblur theme

    • Fix for pdf buttons missing in safari browsers (iOS, iPadOS, macOS)

    • Enhanced compatability with sqlalchemy 2.0

    • Updated translations

    • Books with uppercase extensions are now found after upload

    • Deleting book with additional "/" in database path is now working

    • Fix error "unclosed IO" on external binary version query

    • Bugfix with encoding errors windows on external binary version query

    • Fix encoding errors on windows while downloading logbooks

    • Change user name is no longer allowed as non admin

    • Entries of user table are now visible if database has no tags

    • Deleting shelfs and so on failed before while deleting users

    • Fix show edit user after exception

    • Handle shelf request without title properly

    • Import LDAP User with "." in the name is now possible

    • All html special characters are nnow handled properly while editing fields in tables

    • List/grid button action is now possbile while accessing Calibre-Web behind a reverse proxy

    • With merge button disabled it's no longer possible to open merge dialog

    • Quotes are now handled properly in UI-editable tables

    • Better handling of defective utf-16 txt files while viewing them

    • Security fix: Name of Shelves are only visible to users who can access the corresponding shelf

    • Security fix: It's no longer possible to login with the old session cookie after logout

    • Security fix: Shelves can only be deleted by the owner

    • Security fix: JavaScript payload can no longer be injected in the description field

    • Security fix: JavaScript payload can no longer be injected in a custom column of type "comment" field

    • Security fix: JavaScript payload is no longer executed after converting a book to another format with a title containing javascript code

    • Security fix: JavaScript payload is no longer executed after converting a book to another format with a username containing javascript code

    • Security fix: JavaScript payload can no longer be injected in the description series, categories or publishers title

    • Security fix: JavaScript payload can no longer be injected in the shelf title

    Source code(tar.gz)
    Source code(zip)
    calibre-web-0.6.13.tar.gz(5.49 MB)
    calibre-web-0.6.13.zip(6.39 MB)
    Calibre-Web-Setup.exe(23.16 MB)
  • 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)
Owner
Jan B
Jan B
Find duplicate files

dupeGuru dupeGuru is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in a system. It is written mostly in Python 3 and has th

Andrew Senetar 3.3k Jan 04, 2023
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.5k Dec 30, 2022
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

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

Jan B 8.2k Jan 02, 2023
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 14.1k Dec 27, 2022
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

1.5k Dec 30, 2022
Collect your thoughts and notes without leaving the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for your command line. Journals are stored as human readable plain t

Manuel Ebert 31 Dec 01, 2022
Automatic music downloader for SABnzbd

Headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, De

3.2k Dec 31, 2022
115原码播放服务Kodi插件

115proxy-for-kodi 115原码播放服务Kodi插件,需要kodi 18以上版本,需配合 https://github.com/feelfar/115-for-kodi 使用 安装 由于release包尚未释出,可直接下载源代码zip包安装。 20210202:由于正调试kodi19兼

92 Jan 01, 2023
Source code for Gramps Genealogical program

The Gramps Project ( https://gramps-project.org ) We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete f

Gramps Project 1.6k Jan 08, 2023
cherrytree

CherryTree A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single XML or SQLite file. The proje

Giuseppe Penone 2.7k Jan 08, 2023
A Python library to manage ACBF ebooks.

libacbf A Python library to read and edit ACBF formatted comic book files and archives. XML Specifications here: https://acbf.fandom.com/wiki/Advanced

Grafcube 0 Nov 09, 2021
WikidPad is a single user desktop wiki

What is WikidPad? WikidPad is a Wiki-like notebook for storing your thoughts, ideas, todo lists, contacts, or anything else you can think of to write

WikidPad 176 Dec 14, 2022
Small and highly customizable twin-panel file manager for Linux with support for plugins.

Note: Prefered repository hosting is GitLab. If you don't have an account there and don't wish to make one interacting with one on GitHub is fine. Sun

Mladen Mijatov 407 Dec 29, 2022
A time tracking application

GTimeLog GTimeLog is a simple app for keeping track of time. Contents Installing Documentation Resources Credits Installing GTimeLog is packaged for D

GTimeLog developers 224 Nov 28, 2022
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.9k Jan 04, 2023
🗃 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 14.8k Jan 05, 2023
🦉Data Version Control | Git for Data & Models

Website • Docs • Blog • Twitter • Chat (Community & Support) • Tutorial • Mailing List Data Version Control or DVC is an open-source tool for data sci

Iterative 10.9k Jan 05, 2023
The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.

The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim

Pinry 2.7k Jan 08, 2023
:mag: Ambar: Document Search Engine

🔍 Ambar: Document Search Engine Ambar is an open-source document search engine with automated crawling, OCR, tagging and instant full-text search. Am

RD17 1.9k Jan 09, 2023
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 13.3k Jan 04, 2023