⏱️ وقت القراءة المقدر: 15 دقيقة

مقدمة

Carbon هو نظام ثوري مفتوح المصدر لـ ERP (تخطيط موارد المؤسسة) و MES (نظام تنفيذ التصنيع) و QMS (نظام إدارة الجودة) مصمم خصيصاً لبيئات التصنيع الحديثة. مبني بـ TypeScript ومدعوم بـ Supabase، يتفوق Carbon في عمليات التجميع المعقدة وتصنيع الخليط العالي ذو الحجم المنخفض (HMLV) وسيناريوهات التصنيع حسب الطلب.

ما هو Carbon ERP/MES؟

يمثل Carbon الجيل القادم من أنظمة إدارة التصنيع، ويقدم:

  • حزمة تصنيع كاملة: يجمع ERP و MES و QMS في منصة واحدة
  • مميزات المصدر المفتوح: شفافية كاملة وإمكانيات التخصيص
  • هندسة معمارية حديثة: مبني بـ TypeScript و React و Supabase
  • تصميم قابل للتوسع: مثالي للشركات الصناعية النامية
  • تركيز صناعي: محسن للتجميع المعقد وعمليات التصنيع حسب الطلب

الميزات الرئيسية

  1. تخطيط موارد المؤسسة (ERP)
    • إدارة المخزون
    • معالجة الطلبات
    • تتبع مالي
    • إدارة علاقات العملاء
  2. نظام تنفيذ التصنيع (MES)
    • جدولة الإنتاج
    • إدارة أوامر العمل
    • مراقبة أرضية المصنع في الوقت الفعلي
    • تكامل مراقبة الجودة
  3. نظام إدارة الجودة (QMS)
    • سير عمل مراقبة الجودة
    • تتبع الامتثال
    • إدارة المستندات
    • مسارات التدقيق

المتطلبات المسبقة

قبل البدء مع Carbon، تأكد من توفر ما يلي:

  • Node.js v20 (باستخدام nvm)
  • Docker مثبت وقيد التشغيل
  • Git لإدارة المستودع
  • معرفة أساسية بـ TypeScript/JavaScript
  • فهم عمليات التصنيع

الخدمات الخارجية المطلوبة

يتكامل Carbon مع عدة خدمات سحابية للحصول على الأداء الأمثل:

الخدمة الغرض خطة مجانية متاحة
Upstash Redis بدون خادم ✅ نعم
Trigger.dev منفذ المهام ✅ نعم
PostHog التحليلات ✅ نعم

التثبيت والإعداد

الخطوة 1: إعداد المستودع

استنسخ مستودع Carbon وانتقل إلى دليل المشروع:

# استنساخ المستودع
git clone https://github.com/crbnos/carbon.git
cd carbon

# استخدام Node.js v20
nvm use

# تثبيت التبعيات
npm install

الخطوة 2: تهيئة قاعدة البيانات

ابدأ حاويات Docker لخدمات قاعدة البيانات:

# سحب وتشغيل حاويات قاعدة البيانات
npm run db:start

هذا الأمر سيبدأ:

  • قاعدة بيانات PostgreSQL
  • مثيل Supabase المحلي
  • تخزين Redis المؤقت
  • Mailpit لاختبار البريد الإلكتروني

الخطوة 3: تكوين البيئة

إنشاء ملف تكوين البيئة:

# نسخ قالب البيئة
cp ./.env.example ./.env

قم بتكوين متغيرات البيئة التالية في ملف .env:

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

# تكوين Supabase (من مخرجات db:start)
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
SUPABASE_ANON_KEY=your_anon_key
SUPABASE_URL=http://localhost:54321

تكوين Redis

إنشاء قاعدة بيانات Redis في Upstash وإضافة:

UPSTASH_REDIS_REST_URL=your_upstash_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_token

تكوين منفذ المهام

إعداد Trigger.dev للمهام الخلفية:

TRIGGER_PUBLIC_API_KEY=pk_dev_your_public_key
TRIGGER_API_KEY=tr_dev_your_server_key
TRIGGER_PROJECT_ID=proj_your_project_id

تكوين التحليلات

تكوين PostHog لتحليلات المنتج:

POSTHOG_API_HOST=https://[region].posthog.com
POSTHOG_PROJECT_PUBLIC_KEY=phc_your_project_key

معالجة الدفع

إضافة تكوين Stripe لمعالجة الدفع:

STRIPE_SECRET_KEY=sk_test_your_stripe_key

تسجيل webhooks Stripe:

npm run -w @carbon/stripe register:stripe

إعداد المصادقة

اختر إحدى طرق المصادقة التالية:

الخيار 1: مصادقة البريد الإلكتروني (Resend)

RESEND_API_KEY=re_your_resend_key
RESEND_DOMAIN=carbon.ms

الخيار 2: Google OAuth

SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID=your_client_id.apps.googleusercontent.com
SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_SECRET=GOCSPX-your_client_secret
SUPABASE_AUTH_EXTERNAL_GOOGLE_REDIRECT_URI=http://127.0.0.1:54321/auth/v1/callback

الخطوة 4: إعداد قاعدة البيانات والبناء

تهيئة قاعدة البيانات وبناء التطبيق:

# تشغيل ترحيل قاعدة البيانات وبيانات البذر
npm run db:build

# بناء جميع الحزم
npm run build

الخطوة 5: بدء بيئة التطوير

تشغيل جميع تطبيقات Carbon:

# بدء جميع التطبيقات
npm run dev

# أو بدء تطبيقات محددة
npm run dev:mes  # نظام تنفيذ التصنيع فقط

نظرة عامة على التطبيقات

بعد التثبيت الناجح، ستحصل على الوصول إلى عدة تطبيقات:

التطبيق الرابط الغرض
ERP http://localhost:3000 تخطيط موارد المؤسسة
MES http://localhost:3001 نظام تنفيذ التصنيع
الأكاديمية http://localhost:4111 التدريب والتوثيق
البداية http://localhost:4000 دليل البداية

أدوات التطوير

الأداة الرابط الغرض
Postgres postgresql://postgres:postgres@localhost:54322/postgres الوصول لقاعدة البيانات
Supabase Studio http://localhost:54323/project/default إدارة قاعدة البيانات
Mailpit http://localhost:54324 اختبار البريد الإلكتروني
Edge Functions http://localhost:54321/functions/v1/ الوظائف بدون خادم

استخدام Carbon ERP/MES

1. الإعداد الأولي والتكوين

  1. الوصول لتطبيق ERP: انتقل إلى http://localhost:3000
  2. إكمال الإعداد الأولي: اتبع معالج الإعداد لتكوين منظمتك
  3. إدارة المستخدمين: إنشاء حسابات المستخدمين وتعيين الأدوار
  4. التكوين الأساسي: إعداد المواقع والأقسام والإعدادات الأساسية

2. إدارة المخزون

تكوين نظام المخزون:

  • رئيسي العناصر: تعريف المنتجات والمواد الخام والمكونات
  • المواقع: إعداد المستودعات ومواقع التخزين
  • مستويات المخزون: تكوين مستويات المخزون الدنيا والعليا
  • الموردون: إدارة معلومات البائعين والتسعير

3. إعداد التصنيع

تكوين عمليات التصنيع:

  • قائمة المواد (BOM): تعريف هياكل المنتج
  • التوجيه: إعداد عمليات التصنيع
  • مراكز العمل: تكوين موارد الإنتاج
  • معايير الجودة: تعريف معاملات مراقبة الجودة

4. تخطيط الإنتاج

تنفيذ سير عمل الإنتاج:

  • أوامر الإنتاج: إنشاء وإدارة أوامر العمل
  • الجدولة: تخطيط أنشطة الإنتاج
  • تخصيص الموارد: تعيين العمال والمعدات
  • تتبع التقدم: مراقبة حالة الإنتاج

تكامل API

يوفر Carbon وصولاً شاملاً لـ API للتكامل مع الأنظمة الخارجية.

مصادقة API

إنشاء مفتاح API من إعدادات ERP والتكوين:

import { Database } from "@carbon/database";
import { createClient } from "@supabase/supabase-js";

const apiKey = process.env.CARBON_API_KEY;
const apiUrl = process.env.CARBON_API_URL;
const publicKey = process.env.CARBON_PUBLIC_KEY;

const carbon = createClient<Database>(apiUrl, publicKey, {
  global: {
    headers: {
      "carbon-key": apiKey,
    },
  },
});

// جلب عناصر المخزون
const { data, error } = await carbon.from("item").select("*");

استخدام API الداخلي

لتطوير monorepo:

import { getCarbonServiceRole } from "@carbon/auth";

const carbon = getCarbonServiceRole();

// الوصول للبيانات الخاصة بالشركة
const companyId = "your-company-id";
const { data, error } = await carbon
  .from("item")
  .select("*")
  .eq("companyId", companyId);

تحليل عميق للمعمارية

تتكون معمارية Carbon من عدة حزم رئيسية:

الحزم الأساسية

  • @carbon/database: المخطط والترحيل وتعريفات النوع
  • @carbon/documents: إنشاء PDF وقوالب البريد الإلكتروني
  • @carbon/jobs: معالجة المهام الخلفية
  • @carbon/react: مكونات UI المشتركة
  • @carbon/utils: وظائف المرافق المشتركة

حزم التكامل

  • @carbon/ee: تكاملات المؤسسة
  • @carbon/stripe: معالجة الدفع
  • @carbon/lib: عملاء خدمات الطرف الثالث
  • @carbon/kv: طبقة التخزين المؤقت Redis

استكشاف الأخطاء وإصلاحها

المشاكل الشائعة والحلول

مشاكل اتصال قاعدة البيانات

# إعادة تعيين حاويات قاعدة البيانات
npm run db:kill
npm run db:build

تعارض المنافذ

  • تحقق من توفر المنافذ 3000، 3001، 54321-54324
  • أوقف الخدمات المتعارضة أو عدل تكوينات المنفذ

مشاكل المصادقة

  • تحقق من جميع متغيرات بيئة المصادقة
  • فحص تكوين Supabase
  • تأكد من مطابقة URLs الإعادة التوجيه للإعداد

فشل البناء

# تنظيف وإعادة البناء
npm run clean
npm install
npm run build

أفضل الممارسات

سير عمل التطوير

  1. إدارة البيئة: استخدم تكوينات منفصلة للتطوير والاختبار والإنتاج
  2. نسخ احتياطي للبيانات: نسخ احتياطي منتظم لقاعدة البيانات أثناء التطوير
  3. التحكم في الإصدار: استخدم سير عمل Git المناسب للتعاون
  4. الاختبار: تنفيذ اختبار شامل للتعديلات المخصصة

نشر الإنتاج

  1. تكوين الأمان: تحديث كلمات المرور الافتراضية ومفاتيح API
  2. SSL/TLS: تنفيذ HTTPS لبيئات الإنتاج
  3. تحسين قاعدة البيانات: تكوين إعدادات قاعدة البيانات المناسبة
  4. المراقبة: إعداد أنظمة المراقبة والتنبيه

تحسين الأداء

  1. فهرسة قاعدة البيانات: تحسين استعلامات قاعدة البيانات بالفهرسة المناسبة
  2. استراتيجية التخزين المؤقت: تنفيذ تخزين مؤقت فعال مع Redis
  3. تحسين الأصول: تصغير وضغط أصول الواجهة الأمامية
  4. المهام الخلفية: استخدام المعالجة الخلفية للعمليات الثقيلة

التكوين المتقدم

التكاملات المخصصة

المعمارية المعيارية لـ Carbon تسمح بالتكامل السهل مع الأنظمة الخارجية:

  • أنظمة ERP: الاتصال بمنصات ERP الموجودة
  • أجهزة إنترنت الأشياء: تكامل أجهزة استشعار ومعدات أرضية المصنع
  • أنظمة الجودة: ربط معدات الفحص والاختبار
  • أدوات التقارير: التكامل مع منصات ذكاء الأعمال

اعتبارات التوسع

للنشر واسع النطاق:

  • تجميع قاعدة البيانات: تنفيذ تجميع PostgreSQL
  • توزيع الحمولة: استخدام البروكسيات العكسية لتوزيع الحركة
  • الخدمات الصغيرة: النظر في التقسيم لخدمات أصغر
  • النشر السحابي: الاستفادة من ميزات التوسع السحابية الأصلية

الخلاصة

يمثل Carbon ERP/MES حلاً قوياً لبيئات التصنيع الحديثة. طبيعته مفتوحة المصدر، مجتمعة مع مجموعة التقنيات الحديثة ومجموعة الميزات الشاملة، تجعله خياراً ممتازاً للمنظمات التي تتطلع إلى تنفيذ أو ترقية أنظمة إدارة التصنيع.

مرونة النظام تسمح بالتخصيص لتلبية متطلبات الصناعة المحددة، بينما نهج API الأول يضمن التكامل السلس مع أنظمة الأعمال الموجودة. سواء كنت تدير عمليات التجميع المعقدة، أو تنفذ عمليات تصنيع HMLV، أو تتعامل مع سيناريوهات التصنيع حسب الطلب، فإن Carbon يوفر الأدوات والقدرات اللازمة للنجاح.

الخطوات التالية

  1. استكشف التطبيقات: تعرف على كل تطبيق Carbon
  2. كوّن بيئتك: خصص الإعدادات لحالة الاستخدام المحددة
  3. استورد بياناتك: هاجر البيانات الموجودة إلى Carbon
  4. درب فريقك: استخدم تطبيق الأكاديمية لتدريب المستخدمين
  5. خصص ووسع: عدل Carbon لتلبية متطلباتك الفريدة

للموارد الإضافية ودعم المجتمع، قم بزيارة مستودع Carbon GitHub واستكشف الوثائق الشاملة المتوفرة في تطبيق الأكاديمية.


مستعد لثورة عمليات التصنيع مع Carbon؟ ابدأ رحلتك اليوم واختبر قوة إدارة التصنيع مفتوحة المصدر.