Calibre-Web on a VPS: Self-Hosted Ebook Library with OPDS, Kobo Sync, and User Management

Calibre-Web on a VPS: Self-Hosted Ebook Library with OPDS, Kobo Sync, and User Management

Calibre-Web is a web interface for Calibre ebook libraries — it serves your existing Calibre library through a browser, OPDS feed (for Kindle, KOReader, and other e-readers), and direct Kobo device sync. If you have thousands of ebooks managed in Calibre, self-hosting Calibre-Web on a VPS makes your entire library accessible from any device, anywhere, with multi-user support and reading progress tracking.

What Calibre-Web Provides

  • Web reader: Read EPUBs directly in browser using an integrated reader
  • OPDS catalog: Connect any OPDS-compatible reader app (KOReader, Moon+ Reader, KyBook)
  • Kobo sync: Native Kobo device integration — sync reading progress, download books wirelessly to your Kobo
  • Send to Kindle: Email books directly to your Kindle device via Calibre’s send-to-device feature
  • User management: Multiple users with individual reading lists and progress
  • Book format conversion: Convert between EPUB, MOBI, AZW3, PDF on the server
  • Metadata editing: Edit book metadata, covers, and tags through the web UI

Step 1: Upload Your Calibre Library

<code"># Copy your existing Calibre library to the VPS
# Calibre library folder contains: metadata.db + author/book subdirectories

rsync -avz --progress \
    /Users/you/Calibre\ Library/ \
    deploy@YOUR_VPS_IP:/opt/calibre/library/

# Or create a new empty library:
mkdir -p /opt/calibre/library

Step 2: Docker Compose Setup

<code">mkdir -p /opt/calibre && cd /opt/calibre
nano docker-compose.yml
<code">version: '3.8'

services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    restart: always
    ports:
      - "127.0.0.1:8083:8083"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - DOCKER_MODS=linuxserver/mods:universal-calibre   # Enables format conversion
    volumes:
      - ./config:/config          # Calibre-Web configuration database
      - ./library:/books          # Your Calibre library
    # Optional: add a second library mount
    # - /opt/comics:/comics
<code">docker compose up -d
docker compose logs -f calibre-web

Step 3: Nginx Reverse Proxy

<code">sudo nano /etc/nginx/sites-available/calibre
<code">server {
    listen 80;
    server_name books.yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name books.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/books.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/books.yourdomain.com/privkey.pem;

    client_max_body_size 200M;   # For large ebook uploads

    location / {
        proxy_pass http://127.0.0.1:8083;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 120s;
    }
}
<code">sudo ln -s /etc/nginx/sites-available/calibre /etc/nginx/sites-enabled/
sudo certbot --nginx -d books.yourdomain.com
sudo systemctl reload nginx

Step 4: Initial Configuration

  1. Visit https://books.yourdomain.com
  2. Default login: admin / admin123 — change immediately
  3. Initial Setup Wizard:
    • Database Location: /books (where metadata.db is)
    • Click “Save”
  4. Admin → Edit User (admin) → change password, set email

Step 5: Configure OPDS for E-Reader Apps

<code"># OPDS catalog URL: https://books.yourdomain.com/opds

# In Calibre-Web Admin → Configuration:
# Enable OPDS catalog: Yes
# Require login for OPDS: Yes (recommended)

# KOReader (recommended open-source e-reader app):
# Search → OPDS Catalog → Add:
# Name: My Library
# URL: https://books.yourdomain.com/opds
# Username: your_username
# Password: your_password

# Moon+ Reader Pro (Android):
# Library → Add → OPDS → same settings

# Kybook 3 (iOS):
# Catalog → + → OPDS
# URL: https://books.yourdomain.com/opds

Step 6: Kobo Device Sync

  1. Admin → Configuration → Feature Configuration → Enable Kobo sync: Yes
  2. Admin → Edit User → your account → Kobo Sync Token → Generate token
  3. On Kobo device: Settings → My Account → Advanced → Add account → enter URL:
    https://books.yourdomain.com/kobo/YOUR_TOKEN
  4. Kobo connects, downloads books, and syncs reading progress automatically

Step 7: Email Books to Kindle

<code"># Admin → Configuration → Email Server:
# SMTP hostname: email-smtp.us-east-1.amazonaws.com  (SES)
# SMTP port: 587
# From: your@email.com (verified in SES)
# Username/Password: SES SMTP credentials

# Admin → Configuration → Kindle Email:
# Allowed domains: @kindle.com, @free.kindle.com

# User → Edit Account → Kindle Email: your-kindle@kindle.com
# In Calibre-Web: book → Send to Kindle

Managing Your Library

<code"># Add books via web UI:
# Admin → Upload → select EPUB, PDF, MOBI, etc.

# Bulk add books via Calibre desktop app:
# Connect desktop Calibre to the same library folder
# Add books in Calibre → they appear in Calibre-Web on next refresh

# Trigger metadata refresh:
# Admin → Tasks → Reconnect Database

# Convert formats via Calibre-Web (requires DOCKER_MODS):
# Book detail page → Convert Book → select output format

Getting Started

Calibre-Web runs on 100–200 MB RAM — it fits comfortably on a 1 GB Ubuntu VPS at VPS.DO alongside other services. The main storage requirement is your ebook library itself — a 10,000-book EPUB library typically uses 20–50 GB. NVMe storage provides fast book downloads and format conversion. For individuals and families with large Calibre libraries, self-hosted Calibre-Web eliminates the need for cloud ebook services while enabling access from any device.

Conclusion

Calibre-Web transforms your local Calibre library into a multi-device, multi-user ebook server — accessible from browsers, OPDS-compatible e-reader apps, and Kobo devices directly. The Kobo sync integration is particularly valuable: open your Kobo, connect to your library, and wirelessly download any book from your collection. For book lovers managing large Calibre libraries, self-hosting Calibre-Web on a VPS provides private, unlimited access to your collection from anywhere.

Fast • Reliable • Affordable VPS - DO It Now!

Get top VPS hosting with VPS.DO’s fast, low-cost plans. Try risk-free with our 7-day no-questions-asked refund and start today!