Why Self-Hosted Ebook Management Makes Sense
Calibre-Web is a browser-based front end for your Calibre ebook library, giving you a clean reading interface, download access, and OPDS catalog support – all running on your own hardware. Unlike cloud-based ebook platforms that restrict sideloaded formats or quietly remove titles from your account, Calibre-Web puts every file under your direct control. You define the formats, the metadata, and the access permissions.
The self-hosting angle here is particularly practical for anyone who owns a large collection of DRM-free epubs, technical PDFs, or out-of-print titles that no commercial platform would ever carry. Calibre-Web wraps around a standard Calibre library database, so if you already use the Calibre desktop app to organize books, you are halfway there before you even touch a terminal.
Setup requires Docker, a working Calibre library folder, and about twenty minutes.

What You Need Before You Start
You need Docker and Docker Compose installed on the machine that will host the service. This can be a home server, a spare PC running Linux, or even a Raspberry Pi 4 with enough storage attached. The Calibre-Web Docker image maintained by LinuxServer.io is the most straightforward path – it handles permissions cleanly and gets updated regularly. You will also need an existing Calibre library folder, which contains a metadata.db file at its root. If you have never used Calibre before, install the desktop app, add a book or two to generate that database file, then point Calibre-Web at the same directory.
Storage matters more than CPU here. Ebook files themselves are small, but if your library includes technical PDFs or comic book archives in CBZ format, the folder can grow to dozens of gigabytes quickly. Mount an external drive or a NAS share as the library path rather than keeping everything on your system drive. Make sure the folder is readable by the user ID that Calibre-Web runs under – LinuxServer images use a configurable PUID and PGID environment variable specifically to solve permission headaches across different host setups.
Port 8083 is the default for Calibre-Web. If something else already uses that port, you will remap it in the Docker Compose file before the container starts. Have that information ready before writing your configuration.

Deploying Calibre-Web with Docker Compose
Create a directory for the project – something like /opt/calibre-web – and inside it create a file named docker-compose.yml. The configuration below covers a standard single-user deployment:
- image: lscr.io/linuxserver/calibre-web:latest
- container_name: calibre-web
- environment: PUID=1000, PGID=1000, TZ=America/New_York, DOCKER_MODS=linuxserver/mods:universal-calibre (optional, for ebook conversion)
- volumes: ./config:/config and /path/to/your/books:/books
- ports: 8083:8083
- restart: unless-stopped
Replace /path/to/your/books with the absolute path to your Calibre library folder on the host machine. The DOCKER_MODS line is optional but worth including if you want Calibre-Web to convert between formats on the fly – say, sending an epub to your Kindle as a MOBI file via the built-in email delivery feature. Without it, the container is lighter but limited to serving files in their original format. Run docker compose up -d from that directory and let the container initialize. The first startup takes about thirty seconds while it writes its configuration files.
Open a browser and navigate to http://your-server-ip:8083. The setup wizard will ask you to point Calibre-Web at your library – enter /books, which is the path inside the container as mapped by your volume definition. The default admin credentials are admin/admin123, which you should change immediately in the user settings. From there, the interface loads your full Calibre metadata: covers, author names, series tags, ratings, and descriptions all pull directly from the metadata.db file.
Configuring Access, Users, and External Reading
Calibre-Web supports multiple user accounts with individual permissions. You can create a read-only account for a family member or housemate, restrict it to specific shelves or book formats, and keep the admin account separate for library edits. The admin panel under Settings lets you toggle public registration on or off, configure email settings for Kindle delivery, and enable the OPDS catalog – a standardized feed that apps like KOReader, Moon+ Reader, and Kybook can connect to directly for browsing and downloading without ever touching the web interface.
If you plan to access your library outside your home network, put Calibre-Web behind a reverse proxy such as Nginx Proxy Manager or Caddy. Exposing port 8083 directly to the internet is not advisable. A reverse proxy lets you assign a domain name, handle HTTPS automatically via Let’s Encrypt, and add an extra authentication layer if needed. This is the same infrastructure pattern used for other self-hosted tools – if you already run something like FreshRSS for self-hosted feed reading, the reverse proxy setup will be familiar ground.
Google Drive sync is also built into Calibre-Web if your library lives in the cloud rather than on a local drive. Under Admin > Edit Google Drive Integration, you can link a service account and point it at a Drive folder containing your Calibre library. The sync is not instant – it works on a timed interval – but it means your library files do not have to physically live on the server hardware, which helps if you are running on a machine with limited storage.

Keeping the Library in Order
Calibre-Web does not edit metadata on its own – it reads what Calibre has already written to metadata.db. For ongoing library hygiene, you still want the Calibre desktop app for bulk metadata edits, cover fetching, and format conversions. The cleanest workflow is to use the desktop app as the write layer and Calibre-Web as the read and delivery layer. Any changes made through Calibre desktop sync into the web interface automatically because both tools read from the same database file – as long as your library folder is accessible to both. If the Calibre-Web container is running on a different machine than your desktop, mount the library over a network share, or commit to editing on the server directly using Calibre’s headless mode via SSH. The one thing to avoid is running the desktop app and Calibre-Web simultaneously with write access to the same metadata.db, since SQLite does not handle concurrent writes gracefully and you risk database corruption.
Frequently Asked Questions
Do I need an existing Calibre library to use Calibre-Web?
Yes. Calibre-Web reads from a Calibre metadata.db file. Install the Calibre desktop app first, add at least one book, then point Calibre-Web at that library folder.
Can I access Calibre-Web from outside my home network?
Yes, but route it through a reverse proxy with HTTPS rather than exposing port 8083 directly. Nginx Proxy Manager or Caddy are both common choices for this.





