# Path to the sqlite database. Relative paths resolve from the process CWD; # absolute is safest. Use mode=rw in prod so a wrong path fails loudly. DATABASE_URL=sqlite://../data/db.sqlite3?mode=rwc # Signs the SimpleJWT-compatible tokens. Keep this CONSTANT across deploys and # restarts — changing it invalidates every issued access/refresh token. (Use the # value the retired Django app used so tokens already in the wild stay valid.) SECRET_KEY=change-me # Where this service binds. BIND_ADDR=0.0.0.0:8001 # Media URL prefix (matches the historical Django MEDIA_URL = "media/"). MEDIA_URL=media/ # Filesystem root for uploaded media (avatars). MEDIA_ROOT=../data/media # Base URL of the frontend, used to build email links (verify-email, reset). FRONTEND_URL=http://localhost:5173 # --- Email (lettre) ------------------------------------------------------- # Leave EMAIL_HOST unset to log emails to the console (dev). Set it to enable # real SMTP. #EMAIL_HOST=smtp.example.com EMAIL_PORT=587 EMAIL_USE_TLS=true EMAIL_USE_SSL=false #EMAIL_HOST_USER=noreply@example.com #EMAIL_HOST_PASSWORD=change-me # Accept self-signed SMTP certs. EMAIL_SKIP_CERT_VERIFICATION=false # From address; falls back to EMAIL_HOST_USER then noreply@localhost. #DEFAULT_FROM_EMAIL=noreply@example.com # Set `Secure` on auth cookies (true in prod). JWT_AUTH_COOKIE_SECURE=false # In-process job scheduler (replaces Celery beat). Exactly one running instance # may set this true — it owns scheduling of the api_job table. Additional # instances must leave it false or jobs fire twice. ENABLE_SCHEDULER=false # --- Shop reviews (sync_reviews job) -------------------------------------- # reviews.io store slug to pull anonymous shop reviews from. They feed the # recommender as a prior under the community's own ratings — see # src/recommend.rs. REVIEWS_STORE=holy # Cap on pages fetched per run (100 reviews per page). The incremental sync # stops on its own after a few pages; this only bounds a first-run backfill. #REVIEWS_MAX_PAGES=2000 # Salt for the one-way hash of upstream reviewer ids. Defaults to SECRET_KEY. # Changing it re-pseudonymises new rows only, so old rows stop joining up with # them — truncate `external_review` and re-sync if you rotate it. #REVIEWS_HASH_SALT=change-me # tracing filter RUST_LOG=info,holy_backend_rs=debug,sea_orm=warn