Skip to content

MyBibliotheca 2.2.0

STABLE · PRODUCTION READY

MyBibliotheca is a self-hosted library manager and reading tracker built with Flask and KuzuDB.

Looking for the hosted reading tracker?

These pages document the self-hosted edition. If you would rather sign up and use MyBibliotheca without managing a server, visit MyBibliotheca Cloud. It is free during beta.

Back up before upgrades and bulk maintenance

Keep a recent backup before upgrading, importing a large collection, restoring data, or running repairs. See Backups & restore.

Choose a guide

If you want to… Start here
Install or upgrade Install & upgrade
Import books Import books
Find missing ISBNs or covers Repair metadata
Search, organize, or edit books Library & metadata
Record reading and view statistics Reading & analytics
Manage users and server settings Administration
Back up or restore the library Backups & restore
Connect OPDS or Audiobookshelf Integrations
Diagnose a problem Troubleshooting

Stable release facts

  • Version: 2.2.0
  • Database: KuzuDB
  • Runtime: Python 3.13+ when running from source
  • Recommended deployment: Docker Compose
  • Required KuzuDB setting: WORKERS=1
  • Persistent data: /app/data, normally mounted from ./data
  • Metadata providers: Google Books and OpenLibrary, subject to availability and rate limits

A quick mental model

MyBibliotheca stores shared bibliographic information—such as title, contributors, ISBNs, series, categories, and covers—separately from personal information such as reading status, dates, notes, ratings, and personal custom fields. This is why a duplicate import can update your personal reading data without creating another global book record.

Documentation conventions

  • Admin-only means the action is available from Settings → Server and requires an administrator account.
  • Personal means the value belongs to one user and is not automatically shared with other users.
  • Shared book metadata means an update may be visible to every user who can see that book.
  • Needs Review marks a book for follow-up; it is not a failure that prevents the rest of an import.