-
Notifications
You must be signed in to change notification settings - Fork 0
Multi user and APIs
Josh Gunderson edited this page Jun 20, 2026
·
1 revision
-
GReader API — Google Reader-compatible API at
/greader; works with Capy, Readrops, Aggregator, Read You, and other Android/desktop clients. Authenticate with your Lectio username andLECTIO_FEVER_PASSWORD(single mode) or your per-user API token from/account(multi mode). -
Fever API — Fever-compatible API at
/fever; works with Reeder, FeedMe, NetNewsWire, etc. SetLECTIO_FEVER_PASSWORDin.envto enable (single mode), or use your per-user API token from/account(multi mode). Uses a dedicated credential (not your main login) because Fever transmits credentials as MD5.
-
Security modes —
LECTIO_SECURITY_MODE=single(default) is the classic single-user setup.multienables per-user accounts: each user gets isolated databases underdata/users/<username>/, while thumbnails and image caches stay shared. Set the bootstrap admin withLECTIO_ADMIN_USERNAME/LECTIO_ADMIN_PASSWORD(created on first start), and pick a password hashing scheme withLECTIO_PASSWORD_HASH_SCHEME(scryptdefault,pbkdf2_sha256, orargon2withargon2-cffiinstalled). -
Account page — visit
/accountto change your password and view/regenerate your API token; admins can create, disable, rename, and permanently delete users (deletion removes the account and its isolated data directory — feeds, folders, and saved articles — but leaves the shared image/thumbnail caches) and reset passwords. You cannot delete your own account or the last remaining admin. In multi mode each user authenticates to the GReader/Fever APIs with their own username + API token (shown on/account). -
Outbound-fetch hardening — feed discovery, the source/Readability proxy, and image proxies refuse private/loopback/link-local targets (SSRF); only
http(s)feed URLs can be subscribed (Add Feed / OPML rejectfile://etc.); proxied page HTML is sanitized against XSS. SetLECTIO_DEBUG=1only for local development — it disables the SSRF guard so LAN feeds work. -
Migrating an existing instance — converting a single-user install to multi-user is a one-time copy of your data into the per-user layout; see docs/multiuser-migration.md (
scripts/migrate_to_multiuser.py, dry-run by default).
- Instapaper — "Save to Instapaper" button in the entry toolbar
- Email — Resend API for Email Article and Email Article rules
- Settings UI — all API keys and options configurable in-app (env vars still accepted as fallback)