# ============================================================================= # CORE (Required) # ============================================================================= # PostgreSQL connection string DATABASE_URL=postgres://writekit:writekit@localhost:5432/writekit?sslmode=disable # Base domain for the platform (without protocol) DOMAIN=writekit.localhost # Full URL for OAuth callbacks and links BASE_URL=http://writekit.localhost # Session cookie encryption key (min 32 characters) SESSION_SECRET=change-this-to-a-random-32-char-string # ============================================================================= # OAUTH (At least one required for login) # ============================================================================= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= DISCORD_CLIENT_ID= DISCORD_CLIENT_SECRET= # ============================================================================= # STORAGE (Optional - for image uploads) # ============================================================================= R2_ACCOUNT_ID= R2_ACCESS_KEY_ID= R2_SECRET_ACCESS_KEY= R2_BUCKET= R2_PUBLIC_URL= # Custom endpoint (for MinIO/local dev, leave empty for R2) R2_ENDPOINT= # ============================================================================= # ANALYTICS (Optional - for Cloudflare analytics) # ============================================================================= # Cloudflare API token with Analytics read permission CLOUDFLARE_API_TOKEN= # Cloudflare Zone ID for your domain CLOUDFLARE_ZONE_ID= # ============================================================================= # BILLING (Optional - for paid memberships) # ============================================================================= # LemonSqueezy - https://app.lemonsqueezy.com/settings/api LEMON_API_KEY= LEMON_STORE_ID= LEMON_WEBHOOK_SECRET= # Wise (for payouts) - https://wise.com/settings/api-tokens WISE_API_KEY= WISE_PROFILE_ID= # Minimum balance before payout (in cents, default: 1000 = $10) PAYOUT_THRESHOLD_CENTS=1000 # ============================================================================= # SERVER (Optional) # ============================================================================= # Server port (default: 8080) PORT=8080 # SQLite data directory for tenant databases (default: ./data) DATA_DIR=./data # Environment: prod, staging, or dev (affects some behaviors) ENV=dev