.env.example (4159 bytes)
1 # Copy to .env and edit. Every value has a working localhost default, 2 # so an empty .env is a valid config. 3 4 # --- alignment ------------------------------------------------------------- 5 # Which backend does the aligning. See backend/aligner.py to add another. 6 SUBPLZ_WEB_ALIGNER=subplz 7 # tiny is what upstream recommends for audiobooks: the transcript only needs to 8 # be good enough to line up against text you already have. 9 SUBPLZ_WEB_MODEL=tiny 10 # cpu | cuda 11 SUBPLZ_WEB_DEVICE=cpu 12 # 0 = use (CPU count - 1) 13 SUBPLZ_WEB_THREADS=0 14 SUBPLZ_WEB_JOB_TIMEOUT_SECONDS=21600 15 16 # --- match check ----------------------------------------------------------- 17 # Transcribe a few short samples on upload and score them against the book, 18 # so a mismatched pair is caught in seconds instead of after a full run. 19 SUBPLZ_WEB_MATCH_CHECK=true 20 21 # --- video ----------------------------------------------------------------- 22 # Render a YouTube-ready MP4: cover image + audio + soft subtitle track. 23 SUBPLZ_WEB_RENDER_VIDEO=true 24 SUBPLZ_WEB_VIDEO_WIDTH=1920 25 SUBPLZ_WEB_VIDEO_HEIGHT=1080 26 # 1 fps is the minimum YouTube accepts and all a still image needs. 27 SUBPLZ_WEB_VIDEO_FPS=1 28 # "auto" probes the H.264 encoders this ffmpeg build can actually run. 29 # Force one with libx264 / h264_nvenc / h264_amf / h264_qsv / libopenh264. 30 SUBPLZ_WEB_VIDEO_ENCODER=auto 31 SUBPLZ_WEB_VIDEO_CRF=28 32 33 # --- queue ----------------------------------------------------------------- 34 # memory = run jobs in this process. redis = hand them to worker.py processes. 35 SUBPLZ_WEB_QUEUE_BACKEND=memory 36 SUBPLZ_WEB_MAX_CONCURRENT_JOBS=1 37 # SUBPLZ_WEB_REDIS_URL=redis://localhost:6379/0 38 39 # --- storage --------------------------------------------------------------- 40 # local = under ./data. s3 = a bucket, with presigned download URLs. 41 SUBPLZ_WEB_STORAGE_BACKEND=local 42 # SUBPLZ_WEB_S3_BUCKET=subplz-artifacts 43 # SUBPLZ_WEB_S3_PREFIX=jobs/ 44 # SUBPLZ_WEB_DOWNLOAD_URL_TTL_SECONDS=3600 45 46 # --- database -------------------------------------------------------------- 47 # Empty = SQLite under ./data. Set a Postgres URL for the public release. 48 # SUBPLZ_WEB_DATABASE_URL=postgresql+psycopg://user:pass@host/subplz 49 50 # --- billing --------------------------------------------------------------- 51 # Off for localhost: nothing is locked and nothing is for sale. 52 # On: a conversion in the visitor's browser stays free, without limit. A 53 # conversion on this server's hardware takes one credit. 54 SUBPLZ_WEB_BILLING_ENABLED=false 55 # True when fast conversion on this server's hardware is on offer. While it is 56 # false the page sells nothing, whatever BILLING_ENABLED says. 57 SUBPLZ_WEB_CLOUD_ENABLED=false 58 # Where customers write to. Shown on /terms.html. 59 SUBPLZ_WEB_CONTACT_EMAIL= 60 # How long the server keeps a visitor's files (see backend/retention.py). 61 SUBPLZ_WEB_INPUT_RETENTION_HOURS=24 62 SUBPLZ_WEB_ARTIFACT_RETENTION_DAYS=7 63 64 # --- accounts & payments --------------------------------------------------- 65 # The origin users reach this on. Sign-in links and Stripe return URLs use it. 66 # SUBPLZ_WEB_PUBLIC_BASE_URL=https://subread.space 67 # Send the identity cookie over HTTPS only. Set true on any public deployment. 68 # SUBPLZ_WEB_COOKIE_SECURE=true 69 # Shown on the Stripe payment page. 70 # SUBPLZ_WEB_SITE_NAME=SubRead 71 72 # Stripe. Do not type these into a shell - use tools/set-secret.sh, which 73 # prompts with input hidden and keeps them out of your history. 74 # SUBPLZ_WEB_STRIPE_SECRET_KEY= 75 # SUBPLZ_WEB_STRIPE_WEBHOOK_SECRET= 76 77 # Sign-in links go out over SMTP, so any provider works. With no host set, 78 # sign-in is unavailable: there would be no safe way to deliver the link. 79 # SUBPLZ_WEB_SMTP_HOST=smtp.example.com 80 # SUBPLZ_WEB_SMTP_PORT=587 81 # SUBPLZ_WEB_SMTP_USER= 82 # SUBPLZ_WEB_SMTP_PASSWORD= 83 # SUBPLZ_WEB_SMTP_FROM=SubRead <login@subread.space> 84 # Development only: return the sign-in link in the API response instead of 85 # mailing it. This signs anyone in as any address - never set it in public. 86 # SUBPLZ_WEB_DEV_LOGIN_LINKS=true 87 # Override the plan catalogue (see backend/pricing.py for the shape). 88 # SUBPLZ_WEB_PLANS_JSON=[...] 89 90 # --- uploads --------------------------------------------------------------- 91 SUBPLZ_WEB_MAX_UPLOAD_BYTES=2147483648