مرحبا،
لقد قمت بتثبيت n8n باستخدام npm وديناميكيات قاعدة بيانات postgresql (بخطة الأعمال) على جهاز افتراضي Windows 10. الآن نخطط لترحيله إلى خادم Windows مع تثبيت قائم على Docker.
هل لديكم أي دليل لهذا أو لترحيل مماثل؟
مرحبا،
لقد قمت بتثبيت n8n باستخدام npm وديناميكيات قاعدة بيانات postgresql (بخطة الأعمال) على جهاز افتراضي Windows 10. الآن نخطط لترحيله إلى خادم Windows مع تثبيت قائم على Docker.
هل لديكم أي دليل لهذا أو لترحيل مماثل؟
مرحباً @Aqeel، بينما تنتظر الرد، إليك بعض الأشياء التي قد تساعدك:
تم المطابقة تلقائياً مع سؤالك.
المستندات:
المنتدى:
@mdmiko, @Afonso_Campos, @randoum - لقد ساعدتم في حل مشاكل مماثلة من قبل، هل يمكنكم إلقاء نظرة؟
تم الاقتراح تلقائياً من قبل روبوت مجتمع n8n. إنه مشروع تجريبي - يرجى مشاركة تعليقاتك هنا.
مرحبا @Aqeel
نعم، هذا ممكن. أنت تستخدم بالفعل PostgreSQL، يجب أن يكون الترحيل بسيطًا لأنك لا تحتاج إلى تحويل نوع قاعدة البيانات.
أولاً، قم بعمل نسخة احتياطية كاملة من قاعدة بيانات PostgreSQL وإعداد n8n الحالي. من المهم الحفاظ على مفتاح التشفير نفسه على المثيل الجديد، وإلا فقد لا تعمل بيانات اعتمادك الموجودة بعد الترحيل.
ثم قم بإعداد n8n باستخدام Docker على خادم Windows الجديد، ثم قم بتكوينه لاستخدام PostgreSQL، وانسخ إعدادات البيئة نفسها التي تستخدمها وحاول تشغيل نفس إصدار n8n بدلاً من الترحيل والترقية في نفس الوقت. بمجرد أن يعمل كل شيء، يمكنك الترقية بشكل منفصل.
تحقق أيضًا من العقد المجتمعية والملفات المحلية حيث قد تحتاج إلى تكوينها بشكل منفصل في Docker. Install with Docker | Deploy | n8n Docs
تجنب إنشاء مثيل جديد تمامًا واستيراد سير العمل فقط. إذا كنت تريد الاحتفاظ بيانات اعتمادك والمستخدمين والمشاريع وسجل التنفيذ، فإن نقل قاعدة البيانات الموجودة باستخدام مفتاح التشفير نفسه سيكون الطريقة الأفضل.
مرحبا @Aqeel
على Windows، المسار المدعوم لـ Docker هو WSL، إما Docker Desktop على WSL2 backend أو Docker Engine مثبت داخل توزيعة WSL. احتفظ بمجلد مشروع compose داخل نظام الملفات WSL، شيء مثل ~/n8n، وليس تحت /mnt/c/...، لأن bind mounts عبر هذا الحد بطيئة وتسبب أخطاء الأذونات.
امنح الحاوية الجديدة أيضا volume على /home/node/.n8n. هذا المجلد لا يزال يحتفظ بسجلات النسخة وأصول ميزة التحكم في الإصدار حتى عند استخدام قاعدة بيانات Postgres، وعلى Business ستريد أن تأتي جانب التحكم في الإصدار بشكل سليم.
مرحباً @Anshul_Namdev @Lopez @Shubham_S @n8n
لدينا حاوية OpenShift، هل يمكننا استخدام هذه بدلاً من Docker لنشر n8n؟
تلك الصفحة لن تساعد هنا، فهي تقوم بتشغيل مكدس Docker Compose منفصل جديد على SQLite وتتحقق من وجود خدمة Docker قيد التشغيل قبل أن تفعل أي شيء، لذا فهي لا تناسب OpenShift ولا Postgres الذي تمتلكه بالفعل.
OpenShift هو Kubernetes، لذا ابدأ من manifests Kubernetes الخاصة بـ n8n:
git clone https://github.com/n8n-io/n8n-hosting.git
cd n8n-hosting/kubernetes
ـ restricted SCC يتجاهل مستخدم node المعلن في الصورة ويعين UID عشوائياً مع مجموعة إضافية 0، لذا يجب أن يكون كل مسار يكتب إليه n8n قابلاً للكتابة من قبل المجموعة 0. امنح حساب الخدمة في المشروع SCC anyuid حتى تعمل الصورة كمستخدم متوقع:
oc adm policy add-scc-to-user anyuid -z default -n <your-namespace>
إضافة anyuid تتطلب امتيازات cluster-admin، لكن العديد من مجموعات OpenShift في المؤسسات لن تمنحها لأنها تتجاوز SCC المقيد. إذا كان لديك واحدة منها، فهناك طريقة لا تتطلب امتيازات خاصة: اضبط N8N_USER_FOLDER على مسار مدعوم بـ Persistent Volume Claim (PVC)، مثل /data، وثبّت المطالبة هناك. مع ضبط fsGroup على الـ pod، يصبح الحجم قابلاً للكتابة من قبل المجموعة، مما يعني أن UID العشوائي يمكنه الكتابة إليه. هذا يرضي متطلب group-0 بدلاً من تجاوزه.
من المفيد أيضاً معرفة أن البيانات الأولية (manifests) في تلك المستودع توزع قاعدة بيانات PostgreSQL خاصة بها مع PVC. نظراً لأن بيانات لديك موجودة بالفعل في قاعدة بيانات PostgreSQL موجودة، احذف نشر PostgreSQL مما تطبقه وأشر DB_POSTGRESDB_HOST إلى قاعدة البيانات الموجودة لديك؛ وإلا، ستنتهي بك الحال إلى وجود قاعدة بيانات إضافية فارغة.
هذا الرابط ينص على أنه من الإصدار v3 سيتم تشغيل n8n على docker
هل تقوم حالياً بتثبيت n8n عبر npm؟ من الإصدار v3، يتم توزيع n8n فقط من خلال Docker. يستمر تثبيت npm الحالي لديك في العمل في الوقت الحالي، لكن التثبيتات الجديدة (والترقيات المستقبلية) يجب أن تستخدم هذه الطريقة بدلاً من ذلك. سيتم توفير دليل الترحيل خطوة بخطوة قريباً.
هذا هو السبب في أنني كنت أخطط لنقل إعدادي الحالي من win10VM إلى خادم Windows 25 مع إعداد قائم على docker+postgree.
ومع ذلك، الفريق الذي ينشئ ويوفر VM و docker عرض أنه يمكنهم توفير حاوية openshift مع توفر عالي (High availability) وبما أننا نستخدم n8n في الإنتاج فهذا يبدو وكأنه خيار جيد.
إذن سؤالي والقلق لدي هو: هل يمكنني نشر n8n على حاوية Red Hat OpenShift؟ هل يمكنني استخدام قاعدة بيانات postgresql الموجودة لدي ومفتاح التشفير في حاوية openshift؟ هل سيعمل n8n في حاوية openshift بعد أن أقوم بتحديثها إلى الإصدار 3 في المستقبل؟
@Shubham_S @Lopez @Anshul_Namdev شكراً لوقتكم ودعمكم.
نعم على الجميع. v3 يزيل توزيع npm و npx، وهو لا يغير طريقة تشغيل الحاوية نفسها، لذا فإن نشر OpenShift مدعوم بالفعل.
لا يقوم OpenShift 4 بتشغيل خيط Docker على الإطلاق، بل يقوم بتشغيل صور OCI عبر CRI-O، و n8n يتم شحنه كصورة OCI قياسية في docker.n8n.io/n8nio/n8n. “نشر قائم على Docker” في هذه الملاحظة يعني الصورة، وليس الخيط، وهذا هو السبب في أن نفس الصورة تعمل على Compose و Kubernetes و OpenShift معاً.
تثبيت npm على Windows 10 VM هو الجزء الوحيد الذي يحمل موعد أكتوبر 2026، لذا فإن الانتقال إلى OpenShift الآن يحل حركة v3 في نفس الوقت.