بديل Trello مفتوح المصدر وخفيف الوزن صُمم للمبتكرين والمطورين المستقلين.
يركز على البساطة والسرعة وقابلية التوسع. تم بناؤه باستخدام أحدث التقنيات: Tailwind CSS، shadcn/ui، Supabase، تكامل مع Stripe. يدعم مشاريع غير محدودة، تعاون الفريق، الوضع الداكن/الفاتح، وتجربة مستخدم سلسة. مثالي للمطورين الأفراد والفرق الصغيرة الذين يرغبون في تحكم كامل بدون تعقيد غير ضروري.
🌟 إذا وجدت هذا المشروع مفيدًا، فكر في منحه نجمة! هذا يساعد الآخرين في اكتشافه أيضًا.
دليل النشر
نظرة عامة
يستخدم هذا التطبيق الآن مسارات API المحلية لـ Next.js بدلاً من وظائف Supabase Edge لتكامل Stripe. هذا يجعل النشر أبسط ويسمح لك باستخدام ملفات .env القياسية للإعداد.إعداد متغيرات البيئة
1. إنشاء ملف .env.local
انسخ.env.example إلى .env.local واملأ القيم الفعلية الخاصة بك:cp .env.example .env.local2. متغيرات البيئة المطلوبة
#### إعدادات 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
- اختبر Webhooks الخاصة بـ Stripe محليًا باستخدام Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhookالنشر للإنتاج
النشر على Vercel
- انشر على Vercel:
npx vercel
- متغيرات البيئة:
- إعداد Webhook لـ Stripe:
- وجه الـ webhook إلى:
https://your-domain.vercel.app/api/stripe/webhook
نقاط نهاية API
يستخدم التطبيق الآن مسارات API المحلية التالية:
POST /api/stripe/checkout- ينشئ جلسات الدفع في StripePOST /api/stripe/webhook- يتعامل مع أحداث webhook لـ Stripe
فوائد مسارات API المحلية
- نشر أبسط - لا حاجة لنشر وظائف edge منفصلة
- متغيرات البيئة - دعم ملف .env القياسي
- تصحيح أفضل للأخطاء - أسهل في التصحيح محليًا
- تكامل مع الإطار - تكامل أفضل مع Next.js
- لا يوجد احتكار مزود - يمكن النشر على أي منصة تدعم Next.js
استكشاف الأخطاء وإصلاحها
- مشاكل الـ Webhook:
- تأكد من أن
STRIPE_WEBHOOK_SECRETيطابق نقطة نهاية webhook في Stripe - تحقق من سجلات الـ webhook في لوحة تحكم Stripe
- تحقق من صحة عنوان URL للـ webhook
- متغيرات البيئة:
- تأكد من تعيين جميع المتغيرات المطلوبة
- تحقق من وجود أخطاء إملائية في أسماء المتغيرات
- تحقق من أن مفتاح دور خدمة Supabase لديه الأذونات المناسبة
- مشاكل CORS:
- تتضمن مسارات API رؤوس CORS المناسبة
- تأكد من أن نطاقك مضاف إلى القائمة البيضاء إذا لزم الأمر
ملاحظات أمنية
- لا تعرض أبدًا
STRIPE_SECRET_KEYأوSUPABASE_SERVICE_ROLE_KEYللعميل - استخدم بادئة
NEXT_PUBLIC_فقط لمتغيرات جهة العميل - قم بتدوير أسرار webhook بانتظام
- راقب تسليم الـ webhook في لوحة تحكم Stripe