BookWyrm vs Calibre-Web: Which Should You Self-Host?

Quick Verdict

If you want a social platform where users review, rate, and discuss books across the Fediverse, BookWyrm is the only real option. If you need a personal or family ebook library with download and reading capabilities, Calibre-Web is simpler, lighter, and purpose-built for the job. These tools solve fundamentally different problems despite both involving books.

Updated March 2026: Verified with latest Docker images and configurations.

Overview

BookWyrm is a federated social reading platform — think Goodreads but self-hosted and connected to the Fediverse via ActivityPub. Users create profiles, track reading progress, write reviews, and follow readers on other BookWyrm instances or Mastodon. It launched in 2020 and has grown into the leading self-hosted Goodreads alternative.

Calibre-Web provides a browser-based interface to your existing Calibre ebook library. It handles browsing, searching, downloading, and reading ebooks through a clean web UI. Built on top of the Calibre database format, it turns your local ebook collection into a personal cloud library accessible from any device.

Feature Comparison

FeatureBookWyrmCalibre-Web
Primary purposeSocial reading networkEbook library browser
ActivityPub federationYes — follows, reviews, shelvesNo
Multi-user supportFull social platform (unlimited users)Basic user management (admin + readers)
Book reviews & ratingsCore feature with rich textNo
Reading progress trackingYes (shelves: to-read, reading, read)No
Ebook downloadsNo (metadata/social only)Yes (EPUB, PDF, MOBI, etc.)
In-browser readerNoYes (EPUB reader built-in)
Ebook format conversionNoYes (via Calibre tools Docker mod)
OPDS feedYesYes
Book metadata sourcesOpenLibrary, Inventaire, ISBNCalibre database, Google Books, Amazon
Mobile appMastodon-compatible clientsResponsive web UI
Docker services required7-9 containers1 container
LicenseAGPL-3.0GPL-3.0

Installation Complexity

Calibre-Web deploys in under two minutes. Single container, no database to configure, no secrets to generate:

services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:0.6.26
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./config:/config
      - /path/to/calibre/library:/books
    ports:
      - "8083:8083"
    restart: unless-stopped

Point it at an existing Calibre library directory and log in with admin / admin123.

BookWyrm requires a multi-container stack — PostgreSQL, two Redis instances, Celery workers, a beat scheduler, and Nginx. The official docker-compose.yml includes 7-9 services depending on configuration. You need to generate secrets, configure a domain name, and set up SMTP for email notifications:

services:
  web:
    image: ghcr.io/bookwyrm-social/bookwyrm:v0.8.5
    command: gunicorn bookwyrm.wsgi:application --bind 0.0.0.0:8000
    env_file: .env
    volumes:
      - static_volume:/app/static
      - media_volume:/app/images
    depends_on:
      - db
      - redis_activity
      - redis_broker
    restart: unless-stopped

  db:
    image: postgres:17
    env_file: .env
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: unless-stopped

  redis_activity:
    image: redis:7.2.1
    command: redis-server --requirepass ${REDIS_ACTIVITY_PASSWORD} --appendonly yes
    volumes:
      - redis_activity_data:/data
    restart: unless-stopped

  redis_broker:
    image: redis:7.2.1
    command: redis-server --requirepass ${REDIS_BROKER_PASSWORD} --appendonly yes
    volumes:
      - redis_broker_data:/data
    restart: unless-stopped

  celery_worker:
    image: ghcr.io/bookwyrm-social/bookwyrm:v0.8.5
    command: celery -A celerywyrm worker -l info -Q high_priority,medium_priority,low_priority,streams,images,suggested_users,email,connectors,lists,inbox,imports,broadcast,misc
    env_file: .env
    volumes:
      - static_volume:/app/static
      - media_volume:/app/images
    depends_on:
      - db
      - redis_broker
    restart: unless-stopped

  celery_beat:
    image: ghcr.io/bookwyrm-social/bookwyrm:v0.8.5
    command: celery -A celerywyrm beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
    env_file: .env
    depends_on:
      - celery_worker
    restart: unless-stopped

volumes:
  pgdata:
  static_volume:
  media_volume:
  redis_activity_data:
  redis_broker_data:

Setup requires generating a SECRET_KEY, configuring DOMAIN, setting PostgreSQL and Redis passwords, and running initial database migrations. Expect 15-30 minutes for a first deployment versus 2 minutes for Calibre-Web.

Performance and Resource Usage

ResourceBookWyrmCalibre-Web
RAM (idle)1.5-2 GB100-200 MB
RAM (active)2-4 GB200-500 MB
CPU cores2-4 recommended1 sufficient
Disk (application)2 GB + media uploads50 MB + library size
Containers7-91
External databasePostgreSQL 17None (SQLite internal)

BookWyrm’s resource footprint reflects its role as a full social platform — PostgreSQL, two Redis instances, Celery workers, and the Django application all consume memory. Calibre-Web is a lightweight Python app backed by SQLite that barely registers on system monitoring.

Community and Support

BookWyrm has an active development community centered on GitHub with 2,600+ stars. The lead developer (Mouse Reeve) maintains regular releases. Documentation lives at docs.joinbookwyrm.com. The project has a dedicated Matrix chat and an active Fediverse community of instance operators.

Calibre-Web has 13,000+ GitHub stars and benefits from the massive Calibre ecosystem. The LinuxServer.io community maintains the Docker image, which is among their most popular. Development is steady but slower — the project is mature and feature-stable. Community support happens through GitHub issues and the LinuxServer.io Discord/forums.

Use Cases

Choose BookWyrm If…

  • You want a Goodreads replacement with social features (reviews, shelves, followers)
  • Federation matters — you want readers on other instances to discover your reviews
  • You’re running a book club or reading community
  • Multiple users need full social profiles, not just library access
  • You have 2+ GB RAM available and are comfortable managing a multi-container stack

Choose Calibre-Web If…

  • You have an existing Calibre ebook library and want web access to it
  • You need to download, read, and convert ebooks from a browser
  • You want a personal or family library server, not a social platform
  • Your server has limited resources (a Raspberry Pi runs Calibre-Web fine)
  • You want the simplest possible setup — one container, no database management

Final Verdict

If you already manage ebooks in Calibre and want remote access to your library, Calibre-Web is the right tool — it does exactly that with minimal overhead. If you want to track your reading, write reviews, and participate in a federated reading community, BookWyrm fills the Goodreads-shaped hole that no ebook manager can.

Many self-hosters run both: Calibre-Web as their private ebook server and BookWyrm as their public reading profile. The two tools complement rather than compete.

FAQ

Can BookWyrm serve ebook files like Calibre-Web?

No. BookWyrm is a social reading tracker focused on metadata, reviews, and reading lists. It doesn’t store or serve ebook files. For ebook hosting and downloads, you need Calibre-Web or a similar library server.

Does Calibre-Web support ActivityPub or federation?

No. Calibre-Web is a standalone library application with no federation capabilities. If you want federated book reviews, BookWyrm is the only self-hosted option.

Can I import my Goodreads data into BookWyrm?

Yes. BookWyrm includes a Goodreads CSV import feature that brings over your reading history, ratings, reviews, and shelves. The import process handles most data cleanly, though some formatting may need manual cleanup.

Do I need an existing Calibre library for Calibre-Web?

Yes. Calibre-Web reads from a Calibre database (metadata.db). You need to create a library using the Calibre desktop application first, then point Calibre-Web at that directory.

Can I run both on the same server?

Yes. BookWyrm typically runs on port 80/443 behind its built-in Nginx, while Calibre-Web uses port 8083. Put both behind a reverse proxy with different subdomains and they coexist without issues.

Comments