P Pitchbar مستندات

عملیات

متغیرهای محیطی

Pitchbar پیکربندی خود را از .env استاندارد لاراول می‌خواند، با لغوهایی برای برخی کلیدها از طریق صفحه تنظیمات برنامه مدیریت پلتفرم، تا بتوانید اعتبارنامه‌های Stripe / ایمیل / هوش مصنوعی را بدون استقرار مجدد تغییر دهید.

الزامی

متغیردلیل
APP_KEYکلید اصلی رمزگذاری. با php artisan key:generate تولید کنید. بدون مهاجرت رمزگذاری مجدد، هرگز آن را تغییر ندهید.
APP_URLآدرس عمومی، برای ساخت قطعه‌های ویجت، بازخوانی OAuth، آدرس‌های امضا شده استفاده می‌شود.
DB_*اتصال Postgres.
REDIS_HOSTکش، نشست‌ها، صف، کش بازیابی مسیر اصلی، کش تاریخچه مکالمات.
QUEUE_CONNECTIONدر تولید روی redis تنظیم کنید.
SESSION_DRIVERدر تولید روی redis تنظیم کنید.
CACHE_DRIVERredis.
WIDGET_JWT_SECRETکلید مخفی امضای HS256 برای JWT بازدیدکنندگان. حداقل ۳۲ بایت تصادفی.

سرویس‌دهنده هوش مصنوعی

حداقل یکی از موارد زیر:

متغیرسرویس‌دهنده
CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKENCloudflare Workers AI (ترجیح داده می‌شود). به‌طور خودکار Llama 3.3 70B + bge-base-en-v1.5 را متصل می‌کند.
OPENAI_API_KEYOpenAI مستقیم.
OPENROUTER_API_KEYOpenRouter (مسیریاب بین سرویس‌دهنده‌های متعدد).

LLM_PROVIDER را برای اتصال اجباری تنظیم کنید (cloudflare، openai، openrouter). در صورت تنظیم نشدن، حل‌کننده براساس کلیدهای موجود و با اولویت بالا انتخاب می‌کند.

ذخیره‌ساز جستجوی هوشمند

متغیرسرویس‌دهنده
CLOUDFLARE_VECTORIZE_INDEXنام شاخص Vectorize کلودفلر. از CLOUDFLARE_ACCOUNT_ID + توکن استفاده می‌کند. پیش‌فرض pitchbar-chunks.
QDRANT_URL + QDRANT_API_KEYQdrant.

برای اجباری کردن، VECTOR_PROVIDER را تنظیم کنید. براساس کلیدهای موجود به‌طور خودکار متصل می‌شود (Vectorize ترجیح داده می‌شود).

خزنده

متغیرراهبرد
(از CLOUDFLARE_* استفاده می‌کند)بارگذاری کامل صفحات با کلودفلر. ترجیح داده می‌شود.
BROWSERLESS_TOKEN + BROWSERLESS_URLبازگشت Browserless.
(هیچ‌کدام)HTTP ساده. رایگان؛ بدون اجرای جاوااسکریپت.
متغیرهدف
CRAWL_MAX_PAGES_PER_SOURCEحداکثر صفحات گسترش‌یافته در هر منبع. پیش‌فرض ۵۰۰ (از ۲۵ افزایش یافته است — خریدارانی که نقشه‌های سایت ۱۰۰ آدرسی اضافه می‌کردند، ۷۵ صفحه را بی‌صدا از دست می‌دادند). سقف پس از بازگشت شاخص نقشه سایت + حذف تکراری اعمال می‌شود.
CRAWL_PAGE_DISPATCH_DELAYتأخیر در هر صفحه (ثانیه) هنگام گسترش صفحات نقشه سایت تا هم‌زمانی کوچک بارگذاری کامل صفحات با کلودفلر در هر حساب، خطای ۴۲۹ ندهد. پیش‌فرض 2.
CLOUDFLARE_BROWSER_RENDERINGبرای اجباری کردن مسیر Browserless / HTTP ساده حتی در صورت وجود کلیدهای کلودفلر، روی false تنظیم کنید. پیش‌فرض true.

RAG / بازیابی

متغیرهدف
RAG_CONFIDENCE_THRESHOLDآستانه شباهت پیش‌فرض برای دستیاران فروش تازه ایجاد شده. 0.5 برای Cloudflare bge-base-en-v1.5 (امتیاز کسینوسی ANN آن کمتر از OpenAI است). 0.78 برای OpenAI text-embedding-3-small. براساس LLM_PROVIDER به‌طور خودکار حل می‌شود.
RAG_RERANK_ENABLEDبرای غیرفعال کردن عبور رمزگشای متقابل bge-reranker-base، روی false تنظیم کنید. در صورت وجود کلیدهای کلودفلر، پیش‌فرض true است.
VECTOR_DIMلغو ابعاد جستجوی هوشمند. برای حل خودکار از مدل جستجوی هوشمند پیکربندی‌شده از طریق نقشه مدل‌های شناخته‌شده (bge-base=768، bge-m3=1024، text-embedding-3-small=1536 و غیره) خالی بگذارید. فقط زمانی به‌طور صریح تنظیم کنید که به یک مدل لیست‌نشده اشاره می‌کنید. تغییر این مقدار در یک نصب موجود نیاز به php artisan vector:rebuild-index دارد — شاخص Vectorize با ابعاد فعال در زمان ایجاد اولیه تأمین می‌شود و نمی‌توان آن را درجا تغییر اندازه داد.

درگاه هوش مصنوعی کلودفلر (اختیاری)

متغیرهدف
CLOUDFLARE_AI_GATEWAY_URLدر صورت تنظیم، فراخوانی‌های Workers AI از طریق درگاه هوش مصنوعی کلودفلر مسیریابی می‌شوند — قابلیت مشاهده، کش، محدودیت نرخ.
CLOUDFLARE_CHAT_MODELپیش‌فرض @cf/meta/llama-3.3-70b-instruct-fp8-fast.
CLOUDFLARE_EMBED_MODELپیش‌فرض @cf/baai/bge-base-en-v1.5.
CLOUDFLARE_VECTORIZE_INDEXنام شاخص Vectorize. پیش‌فرض pitchbar-chunks.
OPENROUTER_CHAT_MODELنامک مدل چت OpenRouter. پیش‌فرض meta-llama/llama-3.3-70b-instruct:free.
OPENROUTER_EMBED_MODELمدل جستجوی هوشمند OpenRouter. پیش‌فرض text-embedding-3-small.
QDRANT_COLLECTIONنام مجموعه Qdrant در صورت استفاده از بازگشت ذخیره‌ساز جستجوی هوشمند Qdrant. پیش‌فرض pitchbar_chunks.

S3 / R2 (ذخیره‌سازی اشیاء برای آپلود فایل‌ها)

متغیرهدف
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYاعتبارنامه‌های سطل. برای Cloudflare R2، از جفت کلید/مخفی توکن R2 استفاده کنید.
AWS_DEFAULT_REGIONمنطقه سطل. برای R2 از auto استفاده کنید.
AWS_BUCKETنام سطل.
AWS_ENDPOINTنقطه پایانی سازگار با S3 سفارشی. برای R2 الزامی است (مثلاً https://<accountid>.r2.cloudflarestorage.com). برای AWS S3 بومی خالی بگذارید.
AWS_USE_PATH_STYLE_ENDPOINTtrue برای R2 و بیشتر پیاده‌سازی‌های غیر AWS S3؛ false برای AWS بومی.

فرانت‌اند (Vite)

متغیرهدف
VITE_WIDGET_CDN_URLآدرس پایه‌ای که بارگذار ویجت بازدیدکننده استفاده می‌کند. در حالت توسعه پیش‌فرض http://localhost:5173 است. در تولید، به مبدأ عمومی که /widget/widget.js را ارائه می‌دهد اشاره کنید.

Stripe

متغیرهدف
STRIPE_KEYکلید عمومی.
STRIPE_SECRETکلید مخفی. برای همگام‌سازی پلن و Cashier استفاده می‌شود.
STRIPE_WEBHOOK_SECRETکلید مخفی امضای وب‌هوک‌های ورودی (whsec_…).
CASHIER_CURRENCYپیش‌فرض usd.

Reverb (بی‌درنگ)

متغیرهدف
REVERB_APP_KEYکلید عمومی برنامه. در payload راه‌اندازی ویجت نصب شده است.
REVERB_APP_SECRETکلید مخفی. فقط سمت سرور.
REVERB_APP_IDشناسه برنامه.
REVERB_HOSTنام میزبان عمومی برای سرور Reverb.
REVERB_PORTپیش‌فرض ۸۰۸۰.
REVERB_SCHEMEwss در تولید، ws به‌صورت محلی.

ایمیل

متغیرهدف
MAIL_MAILERsmtp / postmark / resend / غیره.
MAIL_FROM_ADDRESSآدرس فرستنده. الزامی.
MAIL_FROM_NAMEنام نمایشی.
MAIL_HOST / MAIL_PORT / MAIL_USERNAME / MAIL_PASSWORDاعتبارنامه‌های SMTP.

برندینگ

متغیرهدف
BRANDING_LABELبرچسب پیش‌فرض "قدرت گرفته از Pitchbar". برای برچسب سفید در app_settings لغو کنید.
BRANDING_URLآدرسی که برچسب به آن لینک می‌دهد.
BRANDING_FOOTER_LOGO_PATHمسیر ذخیره‌سازی تصویر لوگوی فوتر.

قابلیت مشاهده

متغیرهدف
SENTRY_LARAVEL_DSNگزارش خطا. (برخی میزبان‌ها هنوز نام قدیمی SENTRY_DSN را ارسال می‌کنند؛ SDK لاراول از نسخه v4.x به بعد SENTRY_LARAVEL_DSN را می‌خواند — برای سازگاری با نسخه‌های قبلی در صورت مهاجرت، هر دو را در .env نگه دارید.)
OTEL_EXPORTER_OTLP_ENDPOINTکلکسیونر OpenTelemetry. Honeycomb / Grafana Cloud.
OTEL_SERVICE_NAMEنام سرویس در ردگیری‌ها. پیش‌فرض pitchbar.

درگاه‌های پرداخت

متغیرهدف
PAYPAL_ENABLEDبرای نمایش PayPal در زمان تسویه حساب، روی true تنظیم کنید.
PAYPAL_MODEsandbox یا live.
PAYPAL_CLIENT_ID + PAYPAL_CLIENT_SECRETاعتبارنامه‌های REST API.
PAYPAL_WEBHOOK_IDبرای بررسی وب‌هوک تأیید امضا.
RAZORPAY_ENABLEDبرای نمایش Razorpay در زمان تسویه حساب، روی true تنظیم کنید.
RAZORPAY_API_KEY + RAZORPAY_SECRET_KEYکلیدهای احراز هویت HTTP Basic.
RAZORPAY_WEBHOOK_SECRETکلید مخفی امضای HMAC-SHA256 برای بدنه‌های وب‌هوک.

یکپارچه‌سازی‌های OAuth

متغیرهدف
NOTION_CLIENT_ID + NOTION_CLIENT_SECRET + NOTION_REDIRECT_URIاعتبارنامه‌های یکپارچه‌سازی عمومی نوتین برای اتصال صفحات نوتین به‌عنوان منابع دانش.
GOOGLE_CLIENT_ID + GOOGLE_CLIENT_SECRET + GOOGLE_REDIRECT_URIOAuth گوگل (درایو + داکس + شیت) — یک مشتری OAuth در کنسول GCP با حوزه‌های drive.readonly، documents.readonly و spreadsheets.readonly ثبت کنید. حذف spreadsheets.readonly نوع منبع گوگل شیت را مسدود می‌کند.

ویجت دمو بازاریابی

متغیرهدف
MARKETING_DEMO_AGENT_IDUUID یک دستیار فروش منتشرشده که ویجت دموی زنده را در صفحات بازاریابی اجرا می‌کند. آدرس سایت بازاریابی را به allowed_origins آن دستیار فروش اضافه کنید.
DEMOبرای باز کردن لینک‌های ورود / شروع کنید در یک زبانه جدید در سایت بازاریابی، روی true تنظیم کنید — برای بازبینانی که در حال کاوش در یک دموی زنده CodeCanyon هستند مفید است تا وقتی وارد برنامه می‌شوند، صفحه بازاریابی را از دست ندهند.

زمان‌بندی صف (cron پردازشگر Cloudflare)

متغیرهدف
INTERNAL_QUEUE_TOKENکلید مخفی مشترک حامل که از POST /api/v1/internal/queue-tick محافظت می‌کند. پردازشگر cron Cloudflare هر ۶۰ ثانیه این را پینگ می‌کند تا زمانی که زمان‌بندی درون‌خوشه‌ای در دسترس نباشد، صف را هدایت کند.

لغوهای تنظیمات برنامه

ردیف تکی app_settings لغوهای رمزگذاری‌شده با متن ساده را برای موارد زیر ذخیره می‌کند:

  • کلید مخفی Stripe + کلید مخفی وب‌هوک + کلید عمومی.
  • تنظیمات درایور ایمیل.
  • کلیدهای Cloudflare / OpenAI / OpenRouter.
  • برندینگ (برچسب، آدرس، لوگو).

AppSettingsOverrideServiceProvider این را در زمان راه‌اندازی خوانده و در config() ادغام می‌کند. تنظیم از طریق پنل مدیریت برای تولید ترجیح داده می‌شود — نیازی به استقرار مجدد در زمان تغییر کلید ندارید.

چرخش APP_KEY نیاز به یک مهاجرت دستی دارد. ستون‌های رمزگذاری‌شده در app_settings با کلید قدیمی مهر و موم شده‌اند؛ چرخش بدون رمزگذاری مجدد، آنها را غیرقابل خواندن می‌کند.

زبان خود را انتخاب کنید