Calibre-Web is an eBook viewer which uses an existing Calibre database to pull content. We do not run the stand alone version of Calibre, but instead use a build of LazyLibrarian which has Calibre built in.

Some of Calibre-web’s features include:

  • Full HTML5 GUI.
  • User management with per-user permissions
  • Custom shelves
  • Editing eBook metadata
  • Send eBooks to Kindle devices
  • Reading eBooks directly in a browser

Setting up Calibre-web is really simple. We use the Docker version on our Linux server and you can read about how to install that here.

Once Calibre-web is running it will stay open in the background and can be opened using your favorite internet browser and navigating to http://localhost:7878. When prompted to login, use the default values.

Username: admin
Password: admin123

Upon opening Calibre-web you will be directed to input the location of your Calibre database (metadata.db). This should have been setup when mapping directories within the Docker container. Since we are using LazyLibrarian to snatch and process books, our database is located where our library is. /Library/Books

That’s it! Calibre-web will connect to the database and you will be able to edit books, add shelves, manage users, etc.


  1. Hello, H&D!
    Thank you very much for this tutorial, I really appreciate it!
    I already installed it and I was starting the configuration process, when I realized that Calibre-web’s default port is being used by another container, which itself is interacting with a few more containers. So, I’d rather not fiddle with it, since I’m new to containers.
    Now, you explained how to change Lazylibrarian’s default port but, is there a way to change Calibre-Web’s default port, given that it’s built into Lazylibrarian?

    • You do this by changing the Port variable of the Docker. Im using Synology Docker. Go to the Docker Container, select Edit, then to Port Settings.

      The LOCAL port is the port that you will use in the Web Browser to access Calibre-Web.
      So change this value to a port that is not already mapped to another docker. In his example above he is using 7878 (although on the linked page to download the docker it shows configuring it to 8083).

      For anyone else reading this page. is only going to work if you are accessing the docker from inside the machine. If you deployed it on your Synology NAS for example, then you would need to use http://:7878

  2. Hi,

    Thanks for the turorial.
    Everthing works fine.
    Now i would like to share calibre web with other persons.
    I have a domainname and created a hostname for calibre web.
    I made a reverse proxy in synology and linked the hostname to a let’s Encrypt certificate.
    But when i browse to the hostname at work i could not connect to calibre web.
    What am i doiing wrong.
    I did other reverse proxy that work so i think i know how to do it.
    Please help.

    Thanks in advance,


    • On mine, the port settings on the container had a default of auto for local and 8083 for the container port.
      After it starts it should display the port if you right-click on the container and click on details. Every time I stopped and started the container, it changed the auto port, so I set it to the last port that came up, which was 32791 and put that number in the reverse proxy under Destination with Protocol HTTP.
      Don’t forget to use port 443 (for https) as the source port in the reverse proxy and port-forward 443 in your router to 443 on your Synology.
      You should also add environment variables PUID and PGID (I had to ssh into my Synology and run: id $user to get mine) Otherwise, it runs as root which may be a problem. I also added TZ America/Denver for time zone.

  3. Hi, I’m from Cuba, it is impossible for me to be connected to the internet, I can install web caliber without using docker or any other virtual pc, only using my pc as a server over a local network to other 2 pcs, for example my pc connected to my 2 Brothers, I would appreciate it if you could explain to me if you could how it is done

  4. Hi,

    Calibre-web isn’t importing my existing LL library. If I download a new book it is though. When I try to manually import the book in Calibre-Web it adds a second copy in /books with its naming structure. Is there a way to prevent the second copy, and is the a bulk uploaded for Calibre-Web vs doing one book at a time?

  5. Where does calibre-web keep its configuration settings/logs? I need to move it from the current pc to another one, and I would not want all my users to re-do anything from scratch. Any information would be greatly appreciated

    • Did you ever find this out? I had to do a repair/restore of my Calibre (server) database and it worked, but I lost ALL my shelves a ton of my series I add manually added with Calibre-Web…making me believe that editing metadata with Calibre-Web isn’t as great as it’s made out to be, or I’m missing some crucial way to SAVE it to the book to prevent that from happening in the future.

  6. Hi, I’m trying to setup two different instances of calibre-web but docker (running on a raspberry pi) seems to preset the 8083 port. Do you know of any variable I can set to make sure the right port is used?

    I’ve had it running on port 8083, but now that I want to put another one beside it on (say) port 8084, it adds: <8084/tcp, :::8084->8084/tcp >>

    Googling so far hasn’t helped, do you guys have any idea? Thanks in advance!

  7. Hi
    I have problem with file permission. I want to use freenas folder as calibre library. But I can not use this, because user are not same in freenas and debain 10.
    I mount freenas share in Debain, can copy or delete file. But caliber can not add book that folder.

  8. I am stuck at DB location for Database Configuration, can you please help me? I followed step by step and when I put in /Library/Books it says DB Location is not Valid, Please Enter Correct Path

  9. Hello,

    I have set up Calibre-Web in Docker on my Synology again using your instructions, after losing access to my first installation.

    I get get the login screen, but now I cannot get access with the admin/admin123 user/password combination. Any idea what could have gone wrong.

    Thanks in advance


Please enter your comment!
Please enter your name here