تطبيق بريد إلكتروني مفتوح المصدر للوصول إلى البريد الوارد بسرعة.
موقع الويب · الخلاف · القضايا · كانبان
Inbox Zero هو تطبيق بريد إلكتروني مفتوح المصدر هدفه هو مساعدتك في الوصول إلى البريد الوارد بسرعة بمساعدة الذكاء الاصطناعي.
لطلب ميزة، افتح مشكلة GitHub. إذا لم يكن لديك حساب GitHub، يمكنك طلب الميزات هنا. أو انضم إلى ديسكورد الخاص بنا.
لدينا كانبان عام متاح هنا. انضم إلى Discord الخاص بنا لمناقشة المهام والتحقق مما يتم العمل عليه.
إليك مقطع فيديو حول كيفية إعداد المشروع. ويغطي نفس الخطوات المذكورة في هذه الوثيقة. ولكنه يخوض في مزيد من التفاصيل حول إعداد الخدمات الخارجية.
الخدمات الخارجية المطلوبة هي:
نحن نستخدم Postgres لقاعدة البيانات.
يمكنك تشغيل Postgres & Redis محليًا باستخدام docker-compose
docker-compose up -d # -d will run the services in the background
قم بإنشاء ملف .env
الخاص بك:
cp apps/web/.env.example apps/web/.env
cd apps/web
pnpm install
قم بتعيين متغيرات البيئة في ملف .env
الذي تم إنشاؤه حديثًا. يمكنك رؤية قائمة بالمتغيرات المطلوبة في: apps/web/env.ts
.
متغيرات البيئة المطلوبة:
NEXTAUTH_SECRET
- يمكن أن يكون أي سلسلة عشوائية (حاول استخدام openssl rand -hex 32
للحصول على سلسلة عشوائية سريعة وآمنة)GOOGLE_CLIENT_ID
-- معرف عميل Google OAuth. مزيد من المعلومات هناGOOGLE_CLIENT_SECRET
-- سر عميل Google OAuth. مزيد من المعلومات هناOPENAI_API_KEY
- مفتاح OpenAI API.UPSTASH_REDIS_URL
- عنوان URL لـ Redis من Upstash.UPSTASH_REDIS_TOKEN
- رمز Redis من Upstash.TINYBIRD_TOKEN
- رمز المشرف لمساحة عمل Tinybird الخاصة بك (تأكد من إنشاء مثيل في منطقة GCP us-east4
. ويمكن أيضًا تغيير هذا عبر .env
إذا كنت تفضل منطقة مختلفة). يمكنك أيضًا أن تقرر تعطيل Tinybird ومن ثم سيتم تعطيل التحليلات وميزات إلغاء الاشتراك المجمع. اضبط NEXT_PUBLIC_DISABLE_TINYBIRD=true
إذا قررت تعطيل Tinybird.لتشغيل عمليات الترحيل:
pnpm prisma migrate dev
لتشغيل التطبيق محليًا:
pnpm run dev
أو من جذر المشروع:
turbo dev
افتح http://localhost:3000 لمشاهدته في متصفحك. لترقية نفسك إلى المشرف، تفضل بزيارة: http://localhost:3000/admin.
تحتاج إلى تمكين هذه النطاقات في Google Cloud Console:
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/contacts
اتبع الإرشادات الواردة هنا لإعداد pipes
ومصادر datasources
.
اختياري: إذا كنت تريد تخزين إحصائيات استخدام الذكاء الاصطناعي في Tinybird أيضًا، فافعل الشيء نفسه في /packages/tinybird-ai-analytics
.
اتبع التعليمات هنا.
قم بتعيين env var GOOGLE_PUBSUB_TOPIC_NAME
. عند إنشاء الاشتراك، حدد Push ويجب أن يبدو عنوان url بالشكل التالي: https://www.getinboxzero.com/api/google/webhook?token=TOKEN
أو https://abc.ngrok-free.app/api/google/webhook?token=TOKEN
حيث يكون المجال هو نطاقك. قم بتعيين GOOGLE_PUBSUB_VERIFICATION_TOKEN
في ملف .env
الخاص بك ليكون قيمة TOKEN
.
يمكن أن يكون التشغيل في تطوير ngrok مفيدًا:
ngrok http 3000
# or with an ngrok domain to keep your endpoint stable (set `XYZ`):
ngrok http --domain=XYZ.ngrok-free.app 3000
ثم قم بتحديث نقطة نهاية webhook في لوحة معلومات اشتراكات Google PubSub.
لبدء مشاهدة رسائل البريد الإلكتروني، قم بزيارة: /api/google/watch/all