fix: pass DISABLE_SIGNUPS and EMAIL_RATE_LIMIT_PER_SECOND through compose; trim .env.self-host.example
PR review (#371): scope the self-host baseline to envs that make sense without reselling Plunk. docker-compose.yml: pass through only DISABLE_SIGNUPS (private/single- admin self-host) and EMAIL_RATE_LIMIT_PER_SECOND (works around the silent 14/sec fallback when ses:GetSendQuota is denied). Drop the VERIFY_EMAIL_ON_SIGNUP and OPENROUTER_API_KEY passthroughs — signup hygiene and phishing detection are reselling concerns. .env.self-host.example: drop the entire Stripe Billing block (billing only matters when reselling), drop the VERIFY_EMAIL_ON_SIGNUP doc block for the same reason, and add an EMAIL_RATE_LIMIT_PER_SECOND section explaining the silent-14/sec fallback so operators know why they'd set it.
This commit is contained in:
+10
-14
@@ -60,15 +60,6 @@ GITHUB_OAUTH_SECRET=
|
|||||||
GOOGLE_OAUTH_CLIENT=
|
GOOGLE_OAUTH_CLIENT=
|
||||||
GOOGLE_OAUTH_SECRET=
|
GOOGLE_OAUTH_SECRET=
|
||||||
|
|
||||||
# ========================================
|
|
||||||
# OPTIONAL: Stripe Billing
|
|
||||||
# ========================================
|
|
||||||
STRIPE_SK=
|
|
||||||
STRIPE_WEBHOOK_SECRET=
|
|
||||||
STRIPE_PRICE_ONBOARDING=
|
|
||||||
STRIPE_PRICE_EMAIL_USAGE=
|
|
||||||
STRIPE_METER_EVENT_NAME=emails
|
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# OPTIONAL: File Storage (Minio)
|
# OPTIONAL: File Storage (Minio)
|
||||||
# ========================================
|
# ========================================
|
||||||
@@ -154,11 +145,16 @@ SMTP_DOMAIN=smtp.example.com
|
|||||||
# Default: false
|
# Default: false
|
||||||
# DISABLE_SIGNUPS=false
|
# DISABLE_SIGNUPS=false
|
||||||
|
|
||||||
# Controls whether email validation checks are performed on signup
|
# ========================================
|
||||||
# When enabled (true), validates emails for disposable domains, plus-addressing, domain existence, and MX records
|
# OPTIONAL: SES Sending Rate
|
||||||
# When disabled (false), skips these validation checks and allows any email format
|
# ========================================
|
||||||
# Default: false
|
# Caps the email-worker's send rate (messages per second) for the SES sandbox or
|
||||||
# VERIFY_EMAIL_ON_SIGNUP=false
|
# manually-throttled accounts. When unset, the worker probes the AWS account at
|
||||||
|
# startup via ses:GetSendQuota; if that call is denied or transiently fails,
|
||||||
|
# the worker silently falls back to 14/sec which may exceed sandbox limits and
|
||||||
|
# trigger SES throttling errors. Set this explicitly to avoid the silent fallback.
|
||||||
|
# Default: unset (auto-detect, falls back to 14)
|
||||||
|
# EMAIL_RATE_LIMIT_PER_SECOND=1
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# ADVANCED (rarely needed)
|
# ADVANCED (rarely needed)
|
||||||
|
|||||||
@@ -190,6 +190,14 @@ services:
|
|||||||
# Security
|
# Security
|
||||||
AUTO_PROJECT_DISABLE: ${AUTO_PROJECT_DISABLE:-false}
|
AUTO_PROJECT_DISABLE: ${AUTO_PROJECT_DISABLE:-false}
|
||||||
|
|
||||||
|
# Self-hosting user management (documented in .env.self-host.example
|
||||||
|
# and read by apps/api/src/app/constants.ts at import time)
|
||||||
|
DISABLE_SIGNUPS: ${DISABLE_SIGNUPS:-false}
|
||||||
|
|
||||||
|
# Explicit SES sending rate (avoid silent fallback to 14/sec when
|
||||||
|
# ses:GetSendQuota is denied or transiently fails at worker startup)
|
||||||
|
EMAIL_RATE_LIMIT_PER_SECOND: ${EMAIL_RATE_LIMIT_PER_SECOND:-}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
# Persistent storage for application data
|
# Persistent storage for application data
|
||||||
- plunk_data:/app/data
|
- plunk_data:/app/data
|
||||||
|
|||||||
Reference in New Issue
Block a user