نظرة عامةEnglish
النشر

تشغيل مستقل على Coolify مع MySQL وS3

انشر الخلفية أولاً، نفّذ migrations مرة واحدة، تحقق من readiness، ثم انشر الواجهة على عنوان الخلفية الداخلي أو العام.

01

خدمات Coolify

أربع وحدات واضحة داخل المشروع.

  • pentascope-be من GitLab/Dockerfile على port 3000
  • pentascope-fe من GitLab/Dockerfile على port 3000
  • MySQL 8 بvolume دائم ونسخ احتياطي
  • MinIO/S3 بbucket خاص وvolume/retention
  • نطاق HTTPS للواجهة ونطاق أو شبكة داخلية للخلفية
02

بيئة الخلفية

القيم الإلزامية لا تظهر في الواجهة.

  • DATABASE_URL وDB_POOL_SIZE/timeout limits
  • FRONTEND_URL
  • S3_ENDPOINT/REGION/BUCKET/ACCESS_KEY_ID/SECRET_ACCESS_KEY
  • QA_CREDENTIAL_MASTER_KEY: base64 32-byte key
  • FILE_SIGNING_SECRET وTOKEN_HASH_SECRET
  • WEBHOOK_ALLOWED_HOSTS
  • OPENAI_API_KEY أو OPENROUTER_API_KEY اختياريان
03

بيئة الواجهة

لا تحتاج الواجهة اتصالاً مباشراً بقاعدة البيانات أو S3.

  • BACKEND_URL=https://backend.example.com
  • لا تنسخ DATABASE_URL أو S3 secret إلى frontend
  • أعد النشر عند تغيير BACKEND_URL
  • اختبر /api/health من المنصة و/api/ready من مراقب داخلي
04

ترتيب الإصدار

نفس commit المختبر ينتقل بين البيئات.

  • feature → dev → testing → staging → main
  • npm ci ثم typecheck/lint/test/build/audit
  • نسخ احتياطي قبل migration غير القابل للعكس
  • npm run db:migrate قبل backend الجديد
  • فعّل webhook:retry وschedule:dispatch كـCoolify scheduled tasks
  • تحقق من /api/ready ثم نفذ smoke test لمسارات الأعمال