calibre-web

A sleek web interface for browsing, reading, and downloading eBooks from an existing Calibre library. Forked from the original Calibre-web project, hosted by the reliable LinuxServer.io team.

yaml

docker-compose.yml

services:
  calibre-web:
    image: linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    volumes:
      - ${CALIBRE_WEB_CONFIG}:/config
      - ${CALIBRE_BOOKS}:/books
    ports:
      - ${CALIBRE_WEB_PORT}:8083
    restart: unless-stopped
networks:
  default:
    name: calibre-web-network

.ENV

.env example

# ─────────────────────────────────────────────────────────────
# Calibre-Web — eBook management interface
# https://github.com/linuxserver/docker-calibre-web
# ─────────────────────────────────────────────────────────────

# ── User/Group ─────────────────────────────────────────────────
# Match these to the UID/GID of your host user (run: id $USER)
PUID=1000
PGID=1000

# ── Timezone ────────────────────────────────────────────────────
# Example: America/New_York, Europe/London, Asia/Tokyo
TZ=Etc/UTC

# ── Ports ───────────────────────────────────────────────────────
# Web UI access port (http://your-server:8083)
CALIBRE_WEB_PORT=8083

# ── Volumes ─────────────────────────────────────────────────────
# /config  — Calibre-Web app DB, settings, and cached data
CALIBRE_WEB_CONFIG=./calibre-web/config

# /books   — Your Calibre library folder (must contain metadata.db)
#   IMPORTANT: This must be an existing Calibre library with a metadata.db file.
#   Calibre-Web will NOT create a library for you — use Calibre desktop app first.
CALIBRE_BOOKS=./calibre-books

# ── Optional ────────────────────────────────────────────────────
# Uncomment to enable full Calibre ebook conversion (x86-64 hosts only)
# DOCKER_MODS=linuxserver/mods:universal-calibre

# Uncomment if using Google OAuth and hitting token scope errors
# OAUTHLIB_RELAX_TOKEN_SCOPE=1

# ─────────────────────────────────────────────────────────────
# DEFAULT ADMIN LOGIN:
#   Username: admin
#   Password: admin123
#   → Change immediately after first login!
# ─────────────────────────────────────────────────────────────

deployment

Quick Start

  1. Create a working directory named after the service.
  2. Copy the compose file and generated `.env` into that directory.
  3. Review the variables and replace placeholders with real values.
  4. Run `docker compose up -d`.
mkdir calibre-web
cd calibre-web
# create docker-compose.yml
# create .env
docker compose up -d