Docker Compose
يتضمّن المستودع حزمة جاهزة للتشغيل في infra/docker/compose.yaml. وهي أسرع طريقة للحصول على نسخة عاملة على مضيف واحد.
الخدمات
| الخدمة | ما هي | المنافذ |
|---|---|---|
| db | PostgreSQL 16 — مستوى التحكّم و مستوى المخطّطات الافتراضي | داخلي |
| app | الخادم: واجهة tRPC API + REST /api/v1 + websocket الخاص بـ Hocuspocus | HTTP 8787، WS 8788 |
| web | تطبيق SPA، يُقدَّم خلف nginx | http://localhost:8080 |
البدء السريع
docker compose -f infra/docker/compose.yaml up
افتح http://localhost:8080 وستحصل على نسخة EntityFlow عاملة بالكامل على مضيف واحد، مع وجود كلا المستويين داخل PostgreSQL المضمّن.
إعادة توجيه مستوى المخطّطات
لتخزين المخطّطات في قاعدة بياناتك الخاصة، اضبط EF_DIAGRAM_DB_URL. وعندما لا يكون مستوى المخطّطات هو PostgreSQL، يجب أيضًا أن تضبط EF_CONTROL_DB_URL على نسخة PostgreSQL من أجل مستوى التحكّم:
# مستوى المخطّطات على Postgres الخاص بك (يشاركه مستوى التحكّم)
export EF_DIAGRAM_DB_URL="postgres://user:pass@db.internal:5432/entityflow"
# مستوى المخطّطات على MySQL — يجب أن يبقى مستوى التحكّم على Postgres
export EF_DIAGRAM_DB_URL="mysql://user:pass@mysql.internal:3306/entityflow"
export EF_CONTROL_DB_URL="postgres://user:pass@pg.internal:5432/ef_control"
docker compose -f infra/docker/compose.yaml up
راجع استخدام قاعدة بياناتك الخاصة للاطّلاع على القائمة الكاملة للمحرّكات المدعومة ومخطّطات سلاسل الاتصال.
أساسيات الإنتاج
لأي استخدام يتجاوز التقييم المحلي، اضبط سرّ مصادقة قويًّا:
export EF_AUTH_SECRET="$(openssl rand -base64 48)"
docker compose -f infra/docker/compose.yaml up -d
يجب ضبط EF_AUTH_SECRET (32 حرفًا أو أكثر) لأي نشر غير محلي. فبدونه، تكون الجلسات غير آمنة.
يتم تسجيل الدخول دون كلمة مرور، لذا لا يستطيع الأشخاص تسجيل الدخول إلا بعد أن تتمكّن النسخة من إرسال البريد الإلكتروني — وجّهها إلى خادم SMTP لديك (أو إلى Resend أو Mailjet):
export EF_MAIL_FROM="entityflow@acme.com"
export EF_SMTP_HOST="smtp.acme.com"
export EF_SMTP_USER="entityflow"
export EF_SMTP_PASSWORD="<smtp-password>"
راجع مرجع الإعداد ← البريد الإلكتروني للاطّلاع على جميع متغيرات البريد الإلكتروني. على نسخة تقييم محلية، يكتب EF_MAIL_PROVIDER=log رموز تسجيل الدخول في سجل الخادم بدلًا من إرسالها — لا تستخدمه أبدًا في الإنتاج.
للاطّلاع على القائمة الكاملة للمعاملات القابلة للضبط — الشبكات والمصادقة والبريد الإلكتروني والوقت الفعلي والمراقبة وغير ذلك — راجع مرجع الإعداد.