عن المشروع
أداة Create Go App CLI (cgapp) هي أداة سطر أوامر لإنشاء مشاريع جديدة تجمع بين خلفية Go، وواجهة أمامية بلغة JavaScript أو TypeScript، وأتمتة للنشر. تهدف الأداة إلى تمكين المطورين من التركيز على كود التطبيق ومنطق العمل من خلال تولي عملية بناء هيكل المشروع وإعدادات النشر.
خيارات التثبيت تشمل:
- go install github.com/create-go-app/cli/v4/cmd/cgapp@latest (يتطلب Go 1.21 أو أعلى)
- Homebrew (brew tap create-go-app/tap; brew install create-go-app/tap/cgapp)
- حزم deb، rpm، apk، أو Arch Linux مسبقة البناء من صفحة الإصدارات
- صورة Docker للاستخدام المعزول (أمر deploy غير متاح في هذه الصورة)
الأوامر الرئيسية:
- cgapp create [OPTION]: ينشئ مشروعاً جديداً من خلال واجهة مستخدم تفاعلية في وحدة التحكم. يتيح الخيار -t استخدام قوالب مخصصة للخلفية والواجهة الأمامية.
- cgapp deploy [OPTION]: ينشر حاويات Docker إلى خادم بعيد عبر Ansible. يتطلب Python 3.8+ و Ansible 2.9+ على الجهاز المحلي. يطلب الخيار -k كلمة مرور sudo للمستخدم البعيد.
قوالب الخلفية (Backend):
- net/http: واجهة REST API بسيطة مع CRUD ومصادقة JWT
- Fiber: واجهة REST API معقدة مع CRUD، ومصادقة JWT مع تجديد الرمز، وقاعدة بيانات وذاكرة تخزين مؤقت
- go-chi: تطبيق أساسي مع فحص الحالة (health check)
قوالب الواجهة الأمامية (Frontend):
يتم إنشاء الواجهة الأمامية باستخدام Vite.js، لذا يمكنها استخدام الإصدارات الحالية من React، Preact، Vue، Svelte، Solid، Lit، Qwik، أو JavaScript/TypeScript الصرفة. يتم إنشاء Next.js و Nuxt باستخدام create-next-app و nuxi. تتوفر متغيرات JavaScript و TypeScript لمعظم الخيارات، بما في ذلك react، react-swc، preact، vue، svelte، solid، lit، qwik، vanilla، next، nuxt، و sveltekit. يتطلب إنشاء الواجهة الأمامية إصدار npm 7 أو أعلى.
أدوار Ansible المهيأة مسبقاً:
- خادم الويب/الوكيل: Traefik (traefik, traefik-acme-dns) و Nginx (nginx). يوصى بـ Traefik منذ الإصدار v2.0.0 للحصول على شهادات SSL تلقائية من Let's Encrypt وواجهة مستخدم ويب.
- قاعدة البيانات: PostgreSQL (postgres) مع تطبيق عمليات ترحيل الخلفية (backend migrations).
- ذاكرة التخزين المؤقت: Redis (redis) لاستخدام الخلفية.
تتوفر وثائق المشروع، والأسئلة الشائعة، والمناقشات، والمشكلات عبر wiki GitHub والمستودع. المشروع مرخص بموجب Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.