یک جایگزین متنباز و سبک برای Trello، طراحیشده برای سازندگان و هکرهای مستقل.
تمرکز بر سادگی، سرعت و مقیاسپذیری. ساختهشده با فناوریهای مدرن: Tailwind CSS، shadcn/ui، Supabase، و یکپارچهسازی Stripe. پشتیبانی از پروژههای نامحدود، همکاری تیمی، حالت تاریک/روشن و تجربه کاربری روان. ایدهآل برای توسعهدهندگان مستقل و تیمهای کوچک که به کنترل کامل بدون پیچیدگی غیرضروری نیاز دارند.
🌟 اگر این پروژه برای شما مفید بود، با دادن یک ستاره از آن حمایت کنید! این کار به دیگران هم کمک میکند تا آن را پیدا کنند.
راهنمای استقرار
مرور کلی
این برنامه اکنون به جای استفاده از Supabase Edge Functions برای یکپارچهسازی Stripe، از مسیرهای API محلی Next.js استفاده میکند. این کار استقرار را سادهتر میکند و به شما امکان میدهد از فایلهای استاندارد .env برای پیکربندی استفاده کنید.تنظیم متغیرهای محیطی
1. ساخت فایل .env.local
فایل.env.example را به .env.local کپی کرده و مقادیر واقعی خود را وارد کنید:cp .env.example .env.local
2. متغیرهای محیطی مورد نیاز
#### پیکربندی 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
- متغیرهای محیطی:
- تنظیم Webhook استرایپ:
- آدرس webhook را به این صورت قرار دهید:
https://your-domain.vercel.app/api/stripe/webhook
نقاط پایانی API
این برنامه اکنون از این مسیرهای API محلی استفاده میکند:
POST /api/stripe/checkout- ایجاد نشستهای پرداخت استرایپPOST /api/stripe/webhook- مدیریت رویدادهای webhook استرایپ
مزایای مسیرهای محلی API
- استقرار سادهتر - نیازی به استقرار جداگانه edge functions نیست
- متغیرهای محیطی - پشتیبانی استاندارد از فایل .env
- اشکالزدایی بهتر - اشکالزدایی راحتتر به صورت محلی
- ادغام بهتر با فریمورک - ادغام بهتر با Next.js
- بدون وابستگی به فروشنده خاص - امکان استقرار روی هر پلتفرمی که Next.js را پشتیبانی کند
رفع اشکال
- مشکلات Webhook:
- اطمینان حاصل کنید که
STRIPE_WEBHOOK_SECRETبا endpoint مربوطه در استرایپ مطابقت دارد - لاگهای webhook را در داشبورد استرایپ بررسی کنید
- صحت آدرس webhook را تأیید کنید
- متغیرهای محیطی:
- اطمینان حاصل کنید همه متغیرهای مورد نیاز تنظیم شدهاند
- وجود اشتباه تایپی در نام متغیرها را بررسی کنید
- اطمینان حاصل کنید کلید نقش سرویس Supabase مجوزهای لازم را دارد
- مشکلات CORS:
- مسیرهای API دارای headerهای مناسب CORS هستند
- اطمینان حاصل کنید دامنه شما در صورت نیاز در لیست سفید قرار دارد
یادداشتهای امنیتی
- هرگز
STRIPE_SECRET_KEYیاSUPABASE_SERVICE_ROLE_KEYرا در اختیار کلاینت قرار ندهید - فقط برای متغیرهای سمت کاربر از پیشوند
NEXT_PUBLIC_استفاده کنید - کلیدهای مخفی webhook خود را به طور منظم تعویض کنید
- تحویل webhook را در داشبورد استرایپ پایش کنید