انتقل إلى المقال
Aniq-UI

Ticketoryالمتطلبات

المتطلبات

ما تحتاج إلى تثبيته قبل تشغيل حزمتك، باستخدام Docker أو من دونه.

لحزمة الحزمة الكاملة

ما تحتويه كل حزمة

الحزمةالتطبيقات في التنزيليعمل بمفرده
الحزمة الكاملةواجهة API، الموقع العام، لوحة المنظّمنعم، الثلاثة معًا
موقع التذاكرالموقع العاملا: يحتاج إلى تشغيل واجهة API الخاصة بتيكيتوري
لوحة المنظّملوحة المنظّملا: يحتاج إلى تشغيل واجهة API الخاصة بتيكيتوري
واجهة API (Backend API)APIنعم، يقدّم واجهة API فقط

لا تتضمن حزمة التطبيق الواحد التطبيقات الأخرى. يقرأ الموقع واللوحة كل شيء من واجهة API الخاصة بتيكيتوري، وكود واجهة API موجود فقط في حزمتي الحزمة الكاملة وواجهة API الخلفية.

باستخدام Docker

  • Docker Desktop على macOS أو Windows، أو Docker Engine مع إضافة Compose على Linux، مع Docker Compose 2.24 أو أحدث، وهو ما يتضمنه كل Docker Desktop حاليًا؛ ويطبع docker compose version إصدارك. تبدأ الحزمة الكاملة بأمر docker compose واحد، ويقرأ docker-compose.yml الملف back-end/.env فقط عند وجوده، وهو إعداد ترفضه إصدارات Compose الأقدم.
  • اتصال بالإنترنت للبناء الأول، الذي ينزّل الصور الأساسية والاعتماديات.
  • لا شيء آخر: يجلب Docker معه Node.js، وقاعدة البيانات ملف SQLite داخل وحدة تخزين Docker.

باستخدام Docker

  • Docker Desktop على macOS أو Windows، أو Docker Engine على Linux. لتطبيقك ملف Dockerfile خاص به؛ ولا حاجة إلى Compose.
  • اتصال بالإنترنت للبناء الأول، الذي ينزّل الصورة الأساسية والاعتماديات.

من دون Docker

  • Node.js 22 أو أحدث، وهو الإصدار الذي يعلنه كل تطبيق في engines. تعمل صور Docker على Node.js 24. تحقق من إصدارك بالأمر node -v.
  • Yarn 4، عبر Corepack. شغّل corepack enable مرة واحدة؛ يثبّت كل تطبيق إصدار Yarn الخاص به في packageManager، فيختار yarn الإصدار الصحيح. إذا لم يكن في Node.js لديك Corepack (Node.js 25 وما بعده لا تضمه)، فثبّته أولًا بالأمر npm install -g corepack.
  • لا حاجة إلى حزم عامة.

قاعدة البيانات

لا حاجة إلى خادم قاعدة بيانات. تستخدم واجهة API قاعدة SQLite افتراضيًا، وينشئ yarn seed الملف لك؛ ويستخدم Docker قاعدة SQLite أيضًا. الانتقال إلى MySQL مدعوم بتغيير في الإعدادات، لا بتغيير في الكود.

المنافذ

يعمل كل تطبيق على منفذ محلي ثابت. تأكد من أن لا شيء آخر يستخدمها، أو، مع Docker، انقل أحدها باستخدام SITE_PORT أو ADMIN_PORT أو API_PORT في ملف .env بجوار docker-compose.yml.

التطبيقالمنفذ
API8000
الموقع العام3030
لوحة المنظّم3031

المنفذ

يعمل الموقع على المنفذ 3030 ويتوقع واجهة API على 8000. تأكد من أن لا شيء آخر يستخدمهما.

المنفذ

تعمل لوحة التحكم على المنفذ 3031 وتتوقع واجهة API على 8000. تأكد من أن لا شيء آخر يستخدمهما.

المنفذ

تعمل واجهة API على المنفذ 8000، وتقبل افتراضيًا الموقع من 3030 ولوحة التحكم من 3031. تأكد من أن لا شيء آخر يستخدم المنفذ 8000.

واجهة API للربط

ليس لتطبيقك بيانات خاصة به. يحتاج إلى واجهة API الخاصة بتيكيتوري تعمل وفيها بيانات تجريبية، وتضبط عنوانها في .env الخاص به أو تمرّره كوسيط بناء. تُباع واجهة API كحزمة مستقلة اسمها واجهة API الخلفية، وهي جزء من الحزمة الكاملة.

الخدمات الاختيارية

لا شيء من هذه مطلوب لتشغيل تيكيتوري محليًا. يُفعَّل كل منها بمتغيراته في .env الخاص بواجهة API؛ والمتغير المتروك معلّقًا يُبقي ميزته مغلقة.

الخدمةمن دونها
حساب Stripe أو PayPalيعرض الدفع خيار دفع اختباري الذي يعتبر الطلب مدفوعًا من دون تحويل أي مال، فيعمل المسار كله. التذاكر المجانية لا تحتاج إلى مزوّد أبدًا.
حساب Resend للبريديُكتب كل بريد (التذاكر ورموز التسجيل وإعادة ضبط كلمة المرور وأخبار الاسترداد وتذكيرات الفعاليات) في سجل واجهة API بدلًا من إرساله.
Cloudflare R2 أو مخزن آخر متوافق مع S3تُخزَّن الملفات المرفوعة على قرص واجهة API نفسها (مع Docker، في وحدة تخزين البيانات)، وتقدّم واجهة API الصور التجريبية بنفسها.
مفتاح ذكاء اصطناعي من Google Gemini أو OpenAI أو DeepSeek، أيٌّ منهايقول مساعد الفعاليات بالذكاء الاصطناعي إنه يحتاج إلى مفتاح مزوّد، ويذكر المزوّدين الثلاثة الذين يقبلهم، ولا تُحتسب أي رسوم. وكل شيء آخر يعمل.
مفتاح Google Gemini لاستوديو الأماكنيقول استوديو الأماكن بالذكاء الاصطناعي إنه يحتاج إلى مفتاح ولا ينشئ شيئًا، حتى لو كان المساعد يعمل بمفتاح OpenAI أو DeepSeek.
مفتاح لخادم MCPيرفض POST /api/mcp كل طلب.

كل خدمة مدفوعة تحاسبك على حسابك لدى مزوّدها. لا تفرض تيكيتوري أي ضريبة بنفسها: أعدّ الضريبة لبلدك قبل استلام مدفوعات حقيقية.

الخرائط

تعرض خرائط اللوحة بلاطات OpenFreeMap، ويستخدم البحث عن الأماكن في محرر الأماكن خدمة Photon العامة. كلتاهما تحتاج إلى اتصال بالإنترنت ولا تحتاج إلى مفتاح أو حساب؛ ولا تضمن أي منهما التوفر، ويمكنك توجيههما إلى خدماتك الخاصة.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.