دليل الاستضافة الذاتية
المتطلبات
- Docker
- Node.js 20+
- npm
- PostgreSQL 16+ عبر إعداد Docker المرفق
البدء السريع
git clone https://github.com/kirill-markin/flashcards-open-source-app.git
cd flashcards-open-source-app
cp .env.example .env
make db-up
npm install --prefix api
npm install --prefix apps/auth
npm install --prefix apps/backend
npm install --prefix apps/web
ثم شغّل الخدمات في نوافذ طرفية منفصلة:
make auth-dev
make backend-dev
make web-dev
سيؤدي ذلك إلى تشغيل:
postgresعلى المنفذ5432authعلى المنفذ8081backendعلى المنفذ8080webعلى المنفذ3000
العناوين المحلية:
http://localhost:3000لتطبيق الويبhttp://localhost:8080/v1لواجهة backend APIhttp://localhost:8081لخدمة المصادقة
الإعداد
انسخ .env.example إلى .env ثم اضبط القيم التالية:
DATABASE_URL— سلسلة اتصال PostgresAUTH_MODE— استخدمnoneمحليًا وcognitoلمصادقة OTP عبر البريدBACKEND_ALLOWED_ORIGINS— الأصول المسموح بها لطلبات API الخاصة بالجلساتPUBLIC_API_BASE_URLوPUBLIC_AUTH_BASE_URL— بدائل اختيارية عندما تريد أن تعرض استجابات الاكتشاف مضيفين عامين مخصصين
إعداد iOS المحلي
يقرأ تطبيق iOS في المستودع الرئيسي مضيفي API وauth المحليين من:
apps/ios/Flashcards/Config/Local.xcconfig
انسخ ملف المثال إذا لزم الأمر:
cp apps/ios/Flashcards/Config/Local.xcconfig.example apps/ios/Flashcards/Config/Local.xcconfig
بعد ذلك وجّهه إلى نطاقي api وauth المحليين أو المستضافين ذاتيًا.
التحديث
git pull
npm install --prefix api
npm install --prefix apps/auth
npm install --prefix apps/backend
npm install --prefix apps/web
أعد تشغيل الخدمات المحلية بعد تغيير الاعتمادات.
نشر AWS
شكل الإنتاج الموثق هو:
- CloudFront + S3 لـ
app.<domain> - API Gateway + Lambda لـ
api.<domain> - API Gateway + Lambda لـ
auth.<domain> - Postgres في AWS RDS
- Cognito لمصادقة البريد بلا كلمة مرور
- إعادة توجيه اختيارية للنطاق الجذر عند عدم استخدامه
للتفاصيل راجع: