- Implemented user preferences management with a new API for GET and PUT requests. - Added user document progress tracking with a new API for retrieving and updating progress. - Introduced database schema changes for user preferences and document progress. - Enhanced EPUB and TTS contexts to support syncing user preferences and document progress. - Added functions to handle transferring user preferences and progress during account linking. - Updated client-side logic to schedule syncing of user preferences and document progress.
36 lines
1.2 KiB
Markdown
36 lines
1.2 KiB
Markdown
---
|
|
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.
|
|
|
|
## Related variables
|
|
|
|
- `POSTGRES_URL`
|
|
|
|
For database variable behavior, see [Environment Variables](../reference/environment-variables#database-and-object-blob-storage).
|
|
|
|
## Related docs
|
|
|
|
- [Migrations](./migrations)
|
|
- [Object / Blob Storage](./object-blob-storage)
|
|
- [Auth](./auth)
|
|
|
|
## 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).
|