جایگزین سبک و متنباز Trello که برای سازندگان و برنامهنویسان مستقل طراحی شده است.
تمرکز بر سادگی، سرعت و مقیاسپذیری. ساخته شده با فناوریهای مدرن: Tailwind CSS، shadcn/ui، Supabase، و ادغام Stripe. پشتیبانی از پروژههای نامحدود، همکاری تیمی، حالت تاریک/روشن و تجربه کاربری یکپارچه. مناسب برای توسعهدهندگان فردی و تیمهای کوچک که کنترل کامل بدون پیچیدگی اضافی میخواهند.
🌟 اگر این پروژه برای شما مفید بود، لطفاً به آن ستاره بدهید! این کار باعث میشود دیگران هم آن را کشف کنند.
راهنمای استقرار
نمای کلی
این برنامه اکنون به جای Supabase Edge Functions برای ادغام Stripe از مسیرهای محلی API در Next.js استفاده میکند. این کار استقرار را سادهتر کرده و به شما امکان میدهد از فایلهای استاندارد .env برای پیکربندی استفاده کنید.راهاندازی متغیرهای محیطی
۱. ایجاد فایل .env.local
فایل.env.example را به .env.local کپی کرده و مقادیر واقعی خود را وارد کنید:cp .env.example .env.local۲. متغیرهای محیطی مورد نیاز
#### پیکربندی Supabase
NEXT_PUBLIC_SUPABASE_URL- آدرس پروژه Supabase شماNEXT_PUBLIC_SUPABASE_ANON_KEY- کلید ناشناس Supabase شماSUPABASE_SERVICE_ROLE_KEY- کلید نقش سرویس Supabase شما (فقط سمت سرور)
STRIPE_SECRET_KEY- کلید مخفی Stripe شما (فقط سمت سرور)NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY- کلید عمومی Stripe شماSTRIPE_WEBHOOK_SECRET- کلید مخفی webhook Stripe شما
NEXT_PUBLIC_SITE_URL- آدرس سایت شما (برای محیط تولید)NEXTAUTH_URL- آدرس سایت شما (همانند بالا)NEXTAUTH_SECRET- یک مقدار تصادفی به عنوان رمز برای NextAuth
توسعه محلی
- نصب وابستگیها:
npm install- متغیرهای محیطی خود را در فایل
.env.localتنظیم کنید - سرور توسعه را اجرا کنید:
npm run dev- وبهوکهای Stripe را به صورت محلی با استفاده از Stripe CLI تست کنید:
stripe listen --forward-to localhost:3000/api/stripe/webhookاستقرار تولید
استقرار در Vercel
- استقرار در Vercel:
npx vercel
- متغیرهای محیطی:
- راهاندازی Stripe Webhook:
- وبهوک را به این آدرس اشاره دهید:
https://your-domain.vercel.app/api/stripe/webhook
نقاط پایانی API
برنامه اکنون از این مسیرهای محلی API استفاده میکند:
POST /api/stripe/checkout- ایجاد نشست پرداخت StripePOST /api/stripe/webhook- مدیریت رویدادهای وبهوک Stripe
مزایای مسیرهای محلی API
- استقرار سادهتر - نیازی به استقرار توابع edge جداگانه نیست
- متغیرهای محیطی - پشتیبانی استاندارد از فایل .env
- اشکالزدایی بهتر - رفع اشکال محلی راحتتر است
- یکپارچگی با فریمورک - یکپارچگی بهتر با Next.js
- عدم قفلشدگی به فروشنده - قابلیت استقرار روی هر پلتفرمی که Next.js را پشتیبانی میکند
رفع اشکال
- مشکلات وبهوک:
- اطمینان حاصل کنید که
STRIPE_WEBHOOK_SECRETبا نقطه پایانی وبهوک Stripe شما مطابقت دارد - لاگهای وبهوک را در داشبورد Stripe بررسی کنید
- صحت آدرس URL وبهوک را تایید کنید
- متغیرهای محیطی:
- اطمینان حاصل کنید همه متغیرهای لازم تنظیم شدهاند
- وجود اشتباه تایپی در نام متغیرها را بررسی کنید
- مطمئن شوید کلید نقش سرویس Supabase مجوزهای لازم را دارد
- مشکلات CORS:
- مسیرهای API شامل هدرهای CORS مناسب هستند
- در صورت نیاز، اطمینان حاصل کنید دامنه شما در لیست سفید قرار گرفته است
نکات امنیتی
- هرگز
STRIPE_SECRET_KEYیاSUPABASE_SERVICE_ROLE_KEYرا به سمت کاربر ارسال نکنید - فقط برای متغیرهای سمت کاربر از پیشوند
NEXT_PUBLIC_استفاده کنید - به طور منظم رمزهای وبهوک خود را تغییر دهید
- تحویل وبهوک را در داشبورد Stripe پایش کنید