Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

mishl-dev/shelfd

Open more actions menu

Repository files navigation

shelfd logo

shelfd

A small self-hosted OPDS server for ebook archives.

Browse by subject, search from reader apps, and fill in covers and metadata automatically.

What It Does

  • turns an ebook archive into an OPDS catalog
  • gives you an explore-first browsing feed instead of search-only UX
  • still supports OPDS search for clients like Foliate
  • pulls metadata and covers from Open Library when available
  • generates fallback covers when nothing better exists

Quick Start

Run with just:

just up

Or without just:

docker compose up --build

Then open:

  • http://localhost:7451/opds

Stop:

just down

Or:

docker compose down
Config

The defaults are enough to get started, but these are the settings you will most likely care about:

  • ARCHIVE_URLS: comma-separated archive base URLs for round-robin racing
  • ARCHIVE_BASE: fallback single archive URL (used if ARCHIVE_URLS is not set)
  • ARCHIVE_NAME: display name shown in feeds
  • APP_NAME: app name shown to OPDS clients
  • PUBLIC_BASE_URL: public base URL for generated links
  • DATABASE_URL: SQLite database location
  • RUST_LOG: log level and filters
Endpoints
  • GET /opds
  • GET /opds/search?q=...
  • GET /healthz
Dev
just up
just test
just lint
just fmt

License

MIT. See LICENSE.

About

A self-hosted API that provides a unified interface for accessing ebooks. designed for integration with readers like Foliate.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.