يتيح لك piku
، المستوحى من dokku
، إجراء عمليات نشر git push
على خوادمك الخاصة، بغض النظر عن صغر حجمها.
ليرة تركية؛دكتور:
curl https://piku.github.io/get | sh
هناك أيضًا طرق تثبيت أخرى متاحة، بما في ذلك cloud-init
والتثبيت اليدوي.
يعتبر piku
مستقرا . تتم صيانته بشكل نشط، ولكن كلمة "نشط" هنا تعني أن مجموعة الميزات قد تم إنجازها إلى حد كبير، لذلك يتم تحديثها فقط عند إضافة أوقات تشغيل لغة جديدة أو ظهور أخطاء قابلة للتكرار.
يتطلب حاليًا Python 3.7 أو أعلى، لأنه على الرغم من أن 3.8+ هو الآن إصدار Python 3 الأساسي في Ubuntu LTS 20.04 وقد انتقل Debian 11 بالفعل إلى 3.9، فلا توجد اختلافات جوهرية بين تلك الإصدارات.
أردنا طريقة تشبه Heroku/CloudFoundry لنشر الأشياء على عدد قليل من لوحات ARM
، ولكن نظرًا لأن dokku
لم تعمل على ARM
في ذلك الوقت وحتى docker
يمكن أن يكون مبالغًا فيه في بعض الأحيان، فقد كانت هناك حاجة إلى حل أبسط.
piku
قادر حاليًا على نشر وإدارة وتوسيع نطاق تطبيقات متعددة بشكل مستقل لكل مضيف على كل من معماريات ARM وIntel، ويعمل على أي مزود سحابي (بالإضافة إلى المعدن العاري) يمكنه تشغيل Python و nginx
و uwsgi
.
يدعم piku
سير عمل يشبه Heroku:
git
SSH يشير إلى خادم piku
الخاص بك باستخدام اسم التطبيق كاسم الريبو: git remote add piku piku@yourserver:appname
.git push piku master
(أو إذا كنت تريد دفع فرع مختلف عن الفرع الحالي، فاستخدم git push piku release-branch-name
).piku
وقت التشغيل ويقوم بتثبيت التبعيات لتطبيقك (بناء كل ما هو مطلوب).virtualenv
.GOPATH
منفصل لكل تطبيق.package.json
في node_modules
.pom.xml
أو ملف build.gradle
.leiningen
أو Clojure CLI وملف deps.edn
.bundle install
الأحجار الكريمة الخاصة بك في مجلد معزول.Procfile
ويبدأ العمال المعنيين باستخدام uwsgi
كمدير عام للعمليات.release
الذي يتم تشغيله مرة واحدة عند نشر التطبيق.config:set
) أو توسيع نطاق العمليات المنفذة لأعلى/لأسفل ( ps:scale
).nginx
في ملف ENV
. يمكنك أيضًا نشر موقع ثابت بنمط gh-pages
باستخدام نوع عامل static
، مع المسار الجذر كوسيطة، وتشغيل مهمة release
لإجراء بعض المعالجة على الخادم بعد git push
. يتمتع piku
بدعم كامل للمضيف الظاهري - أي أنه يمكنك استضافة تطبيقات متعددة على نفس VPS واستخدام أسماء DNS المستعارة للوصول إليها عبر أسماء مضيفين مختلفة.
سيقوم piku
أيضًا بإعداد شهادة خاصة أو الحصول على واحدة عبر Let's Encrypt لتمكين SSL.
إذا كنت تستخدم شبكة محلية (LAN) وتقوم بالوصول إلى piku
من عملاء macOS/iOS/Linux، فيمكنك تجربة استخدام piku/avahi-aliases
للإعلان عن مضيفين مختلفين لنفس عنوان IP عبر Avahi/mDNS/Bonjour.
إلى جانب المواقع الثابتة، يدعم piku
أيضًا التعيين المباشر لبادئات URL المحددة لمسارات نظام الملفات (لخدمة الأصول الثابتة) أو تخزين الاستجابات الخلفية مؤقتًا (لإزالة التحميل من التطبيقات).
يتم تكوين هذه الميزات عن طريق تعيين القيم المناسبة في ملف ENV
.
تم تصميم piku
للعمل في أي بيئة تشبه POSIX حيث يكون لديك Python و nginx
و uwsgi
وSSH: وقد تم نشره على Linux وFreeBSD وCygwin ونظام Windows الفرعي لنظام التشغيل Linux.
كخط أساسي، بدأ تطويره على نموذج Raspberry Pi Model B الأصلي بسعة 256 ميجابايت، ولا يزال يعمل عليه بشكل موثوق.
لكن استخدامه الرئيسي هو بمثابة micro-PaaS لتشغيل التطبيقات على الخوادم السحابية مع كل من وحدات المعالجة المركزية Intel وARM، مع Debian وUbuntu Linux كمنصتين مستهدفتين.
يدعم piku
حاليًا التطبيقات المكتوبة بلغات Python وNode وClojure وJava وبعض اللغات الأخرى (مثل Go) قيد التشغيل.
لكن كقاعدة عامة، إذا كان من الممكن استدعاؤه من الصدفة، فيمكن تشغيله داخل piku
.
git
، ssh
، uwsgi
، nginx
).