Documentation
Everything here assumes the Docker image — a single container, a bind-mounted data directory, and configuration by environment variable. New here? Start with Installation.
Getting started
Guides
Compose + env vars
Keep secrets out of your compose file with .env — version pinning, defaults, verification.
Backups
From a one-line tar to the nightly staged-and-offsite system we run ourselves.
Multi-user & OIDC
Per-user libraries with SSO through Google, Authentik, Keycloak, or any OIDC provider.
Tailscale & HTTPS
Private access over your tailnet, and same-origin HTTPS with Caddy.
Using Lector
Reading & practice
EPUBs and articles, click-to-translate, word states, cloze SRS, AI providers, AnkiConnect.
Getting started with Anki
New to Anki? What it is, how spaced repetition works, installing it, and loading your first deck.
Supported languages
Language packs, sentence banks, and how the frequency data is built.
Tech stack
- Frontend: Next.js 16 with React 19 — UI only; the browser calls the API directly
- API: Hono on Bun, using
bun:sqlite - Database: SQLite, server-side only
- Styling: Tailwind CSS v4
- AI: Anthropic Claude, or any OpenAI-compatible server — Ollama, LM Studio, vLLM (all optional)
- TTS: Google Cloud Text-to-Speech (optional)
- Container: Docker (single image, bind mount for data)