Skip to content

أوامر البنية التحتية

تدير أوامر البنية التحتية شهادات SSL وإدخالات DNS المحلية وحاويات Docker. تضمن هذه الأدوات أن بيئة التطوير المحلية تُطابق الإنتاج قدر الإمكان.

أوامر SSL

يستخدم FORGE mkcert لتوليد شهادات SSL موثوقة محلياً، مما يُمكّن HTTPS أثناء التطوير بدون تحذيرات المتصفح.

forge ssl:install

تثبيت mkcert وسلطة الشهادات المحلية (CA) الخاصة به.

bash
forge ssl:install

يُثبّت هذا الأمر mkcert عبر Homebrew (macOS) أو Chocolatey (Windows) أو مدير الحزم الخاص بنظامك (Linux)، ثم يُشغّل mkcert -install لتسجيل CA المحلية في مخزن الثقة الخاص بك.

نصيحة

تحتاج لتشغيل ssl:install مرة واحدة فقط لكل جهاز. سيُذكّرك FORGE إذا كان mkcert مفقوداً عند تشغيل forge new.

forge ssl:generate

توليد شهادات SSL لنطاق واحد أو أكثر.

bash
forge ssl:generate [OPTIONS]
الخيارالنوعالافتراضيالوصف
--domainsstringنطاقات المشروعقائمة نطاقات مفصولة بفواصل لتضمينها في الشهادة.

مثال

bash
forge ssl:generate --domains="myapp.local,api.myapp.local,admin.myapp.local"

تُوضع الملفات المُولّدة في مجلد certs/ الخاص بالمشروع:

certs/
  myapp.local.pem
  myapp.local-key.pem

forge ssl:trust

إعادة تسجيل CA المحلية في مخزن ثقة نظامك. مفيد بعد ترقيات نظام التشغيل أو إعادة تعيين مخزن الثقة.

bash
forge ssl:trust

أوامر Hosts

يمكن لـ FORGE إدارة إدخالات /etc/hosts حتى تُحوّل النطاقات المحلية إلى 127.0.0.1 بدون DNS خارجي.

forge hosts:add

إضافة إدخال نطاق إلى /etc/hosts.

bash
forge hosts:add [OPTIONS]
الخيارالنوعالافتراضيالوصف
--domainstringالنطاق للإضافة، مثل myapp.local.

تحذير

يتطلب هذا الأمر صلاحيات مرتفعة. سيطلب FORGE وصول sudo على macOS/Linux أو حقوق Administrator على Windows.

مثال

bash
forge hosts:add --domain=myapp.local
forge hosts:add --domain=api.myapp.local
forge hosts:add --domain=admin.myapp.local

forge hosts:list

سرد جميع الإدخالات المُدارة من FORGE حالياً في /etc/hosts.

bash
forge hosts:list

مثال على المخرجات

إدخالات hosts لـ FORGE:
  127.0.0.1   myapp.local
  127.0.0.1   api.myapp.local
  127.0.0.1   admin.myapp.local

forge hosts:remove

إزالة نطاق مُضاف سابقاً من /etc/hosts.

bash
forge hosts:remove --domain=myapp.local

أوامر Docker

يُولّد FORGE إعدادات Docker Compose بـ profiles لمجموعات خدمات مختلفة. أوامر Docker تُغلّف docker compose بافتراضيات واعية بالمشروع.

Docker Profiles

يُنظّم FORGE الخدمات في profiles Docker Compose:

Profileالخدمات المتضمنة
dbPostgreSQL، Redis
apiخادم Rust API
webواجهة Next.js الأمامية
adminواجهة Next.js الإدارية
allكل خدمة

تسمح لك Profiles ببدء الخدمات التي تحتاجها فقط. على سبيل المثال، قد تُشغّل db في Docker بينما تُطوّر API محلياً.

forge docker:up

بدء حاويات Docker.

bash
forge docker:up [OPTIONS]
الخيارالنوعالافتراضيالوصف
-dflagfalseتشغيل الحاويات في وضع منفصل (الخلفية).
--buildflagfalseإعادة بناء الصور قبل البدء.
--sslflagfalseتفعيل وكيل Nginx SSL العكسي.
--appsstringallprofiles مفصولة بفواصل للبدء، مثل db,api.

أمثلة

bash
# Start everything in the background
forge docker:up -d

# Start database only
forge docker:up -d --apps=db

# Rebuild and start with SSL
forge docker:up -d --build --ssl

forge docker:down

إيقاف وإزالة حاويات Docker.

bash
forge docker:down [OPTIONS]
الخيارالنوعالافتراضيالوصف
-vflagfalseإزالة الـ volumes المُسماة أيضاً (بيانات قاعدة البيانات، الكاش).

خطر

خيار -v يحذف الـ volumes الدائمة بما في ذلك مجلد بيانات PostgreSQL. ستُفقد جميع بيانات قاعدة البيانات.

forge docker:logs

عرض سجلات الحاويات.

bash
forge docker:logs [OPTIONS] [SERVICE]
الخيارالنوعالافتراضيالوصف
-fflagfalseمتابعة مخرجات السجل في الوقت الحقيقي.
SERVICEstringاسم خدمة اختياري لتصفية السجلات، مثل api، web، postgres.

أمثلة

bash
# Follow API logs
forge docker:logs -f api

# View all logs (last 100 lines)
forge docker:logs

forge docker:shell

فتح shell تفاعلي داخل حاوية عاملة.

bash
forge docker:shell <SERVICE>

مثال

bash
# Open shell in API container
forge docker:shell api

# Open psql session in database container
forge docker:shell postgres

سير العمل الشائع

الإعداد المحلي لأول مرة:

bash
forge ssl:install
forge new --name myapp
# SSL and hosts are configured automatically during project creation
forge docker:up -d

إعادة التشغيل بقاعدة بيانات نظيفة:

bash
forge docker:down -v
forge docker:up -d
forge migrate:fresh --seed

إضافة نطاق محلي جديد:

bash
forge ssl:generate --domains="myapp.local,api.myapp.local,admin.myapp.local,docs.myapp.local"
forge hosts:add --domain=docs.myapp.local
forge docker:up -d --build --ssl

انظر أيضاً

Released under the MIT License.