Skip to content

Configuration

Syed Ahmer Shah edited this page Nov 1, 2026 · 1 revision

Configuration

All settings are environment variables with the OFFLINESHELF_ prefix, read from .env by Docker Compose.

Variable Default Meaning
SECRET_KEY required Signs session cookies; 32+ random characters
ENV dev prod behind TLS: Secure __Host- cookies and HSTS
SITE_URL http://localhost:8080 Public address, used for CSRF origin checks and email links
TRUSTED_PROXIES 1 in Compose Reverse proxies in front of the API; never more than there are
MAX_CATEGORY_DEPTH 5 Deepest category walk
MAX_PASTED_TITLES 20000 Titles per pasted list
MAX_ARTICLES_PER_LIST 100000 A build with more fails
MAX_SPARQL_CHARS 10000 Longest SPARQL query
MAX_TOP_ARTICLES 1000 Largest pageviews list
MAX_LISTS_PER_USER 100 Lists per account
MAX_BUNDLE_ARTICLES 1000 Largest HTML bundle or ZIM export
EXPORT_DAYS 7 Days an export file is kept
RATE_LIMIT_BUILD 20 per hour Builds and exports per account
SMTP_HOST empty (off) For example smtp.resend.com; empty turns failure emails off
SMTP_PORT 587 STARTTLS
SMTP_USERNAME / SMTP_PASSWORD empty Send-only credentials
MAIL_FROM OfflineShelf <noreply@ahmershah.dev> A sender on a domain verified with your provider

Clone this wiki locally