openreader/docs-site/docs/configure/database.md
Richard R 9f25e05cce feat(previews): implement document preview generation and caching
- Add document preview caching logic with in-memory and persisted storage.
- Implement S3 blobstore functions for managing document previews.
- Create rendering functions for PDF and EPUB cover images to JPEG format.
- Introduce database schema and functions for managing document preview metadata.
- Add unit tests for rendering PDF and EPUB previews.
2026-02-12 16:05:03 -07:00

1.3 KiB

title
Database

This page covers database mode selection for OpenReader WebUI.

Database mode

  • SQLite (default): embedded DB at docstore/sqlite3.db; good for local/self-host single-instance setups.
  • Postgres: enabled when POSTGRES_URL is set; recommended for production/distributed deployments.

What the database stores

  • Document and audiobook metadata/state used by server routes.
  • Auth/session tables when auth is enabled.
  • TTS character usage counters (user_tts_chars) for daily rate limiting (when enabled).
  • User settings preferences (user_preferences) when auth is enabled.
  • User reading progress (user_document_progress) when auth is enabled.
  • Document preview job/asset metadata (document_previews) for server-side PDF/EPUB thumbnails.
  • POSTGRES_URL

For database variable behavior, see Environment Variables.

State sync summary

  • With auth enabled, settings and reading progress are stored in SQL and synced from the app.
  • With auth disabled, settings and reading progress remain local in the browser.
  • Sync is currently request-based (not realtime push invalidation).