[{"data":1,"prerenderedAt":194},["ShallowReactive",2],{"seo-verification":3,"blog-انشر-تطبيقاتك-باستخدام-kamal-على-خادم-vps-ma-ar":6,"promo-bar-likely":193},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-انشر-تطبيقاتك-باستخدام-kamal-على-خادم-vps-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":136,"ctaBody":137,"ctaButton":138,"ctaUrl":139,"relatedPosts":140},40,"انشر-تطبيقاتك-باستخدام-kamal-على-خادم-vps",{"fr":12,"en":13,"ar":10,"es":14},"deployer-avec-kamal","deploy-your-applications-with-kamal-on-a-vps","desplegar-con-kamal","نشر تطبيقات الويب باستخدام Kamal على خادم VPS","دليل شامل لـ Kamal v2: التثبيت، إعداد deploy.yml، وكيل kamal-proxy، الأسرار، النشر متعدد الخوادم، CI\u002FCD وحل المشكلات.",12,1,false,"2026-05-11T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"النشر","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-avec-kamal-poster.svg","‏Kamal (المعروف سابقاً بـ MRSK)، الذي طوّرته شركة 37signals، ينشر التطبيقات المعبّأة في حاويات على خادم VPS أو أكثر مباشرةً من جهازك المحلي، دون الحاجة إلى منظّم ثقيل. منذ الإصدار الثاني الذي صدر في سبتمبر 2024 (مُدرَج افتراضياً في Rails 8 الصادر في نوفمبر 2024)، حلّ ‎kamal-proxy‎ محل ‎Traefik‎ كوكيل عكسي مخصص، وباتت الأسرار مركزيةً في ‎`.kamal\u002Fsecrets`‎. تنسّق أمر ‎`kamal deploy`‎ بناء صورة Docker ورفعها إلى السجل والتبديل دون توقف في تمريرة واحدة.",[34,38,50,53,56,84,87,90,93,96,99,102,133],{"type":35,"title":36,"body":37},"h2","لماذا تختار Kamal بدلاً من Kubernetes لنشر تطبيقاتك على VPS؟","‏Kubernetes مصمم لحل مشكلات التنسيق على نطاق واسع — اكتشاف الخدمات، التوسع الأفقي التلقائي، مساحات الأسماء لفرق متعددة — وهي مشكلات لا وجود لها على خادم VPS واحد أو مجموعة صغيرة. ولتثبيته فقط عبر ‎kubeadm‎ تطلب الوثائق الرسمية 2 غيغابايت من الذاكرة العشوائية لكل جهاز و2 CPU لبنية التحكم، قبل تشغيل أي تطبيق. ‏Kamal يستهدف نطاقاً مختلفاً: يأخذ ملف ‎Dockerfile‎ الخاص بك، يبني الصورة، يرفعها إلى السجل، يشغّلها على خوادمك عبر SSH، ويحوّل حركة المرور بلا انقطاع بفضل ‎kamal-proxy‎. كل الإعداد يتضمن ملف ‎`config\u002Fdeploy.yml`‎ واحداً يُحفظ مع الكود. لا بنية تحكم لصيانتها، لا شهادات API للتجديد، لا YAML موزعة على عشرة موارد. تحتفظ ببساطة تشغيل VPS — وصول SSH مباشر، ‎`docker ps`‎ مقروء، سجلات في ملف — مع الحصول على سير عمل نشر احترافي مع تراجع فوري وفحوصات صحة وHTTPS تلقائي.",{"type":39,"title":40,"items":41},"ul","ما يقدمه لك Kamal v2",[42,43,44,45,46,47,48,49],"‏**نشر بدون توقف** — ينتظر ‎kamal-proxy‎ نجاح فحوصات الصحة على الحاوية الجديدة قبل تحويل حركة المرور، مع إتمام الطلبات الجارية على الحاوية القديمة","‏**أمر واحد** — ينفذ ‎`kamal deploy`‎ البناء والرفع إلى السجل والنشر عبر SSH والتحقق دون تدخل يدوي","‏**HTTPS تلقائي من Let's Encrypt** — يتولى ‎kamal-proxy‎ تجديد شهادات TLS؛ لا حاجة لإعداد Certbot منفصل","‏**تراجع فوري** — يُعيد ‎`kamal rollback [VERSION]`‎ توجيه الوكيل إلى صورة موجودة مسبقاً على الخادم في ثوانٍ","‏**إدارة أسرار منظمة** — يدعم ‎`.kamal\u002Fsecrets`‎ القراءة من 1Password وBitwarden أو متغيرات البيئة دون تخزين قيم نصية في المستودع","‏**دعم متعدد الخوادم والأدوار** — خوادم الويب وعمال Sidekiq وملحقات Postgres وRedis في ملف واحد، تُنشر بالتوازي","‏**تطبيقات متعددة على VPS واحد** — منذ Kamal 2، تتشارك عدة تطبيقات في ‎kamal-proxy‎ واحد دون تعارض","‏**متوافق مع أي تقنية** — Rails وDjango وNode.js وGo وPHP: يتطلب Kamal فقط ملف ‎Dockerfile‎ وسجل حاويات",{"type":35,"title":51,"body":52},"المتطلبات المسبقة قبل النشر باستخدام Kamal","‏على جانب VPS، يحتاج Kamal إلى خادم Linux يمكن الوصول إليه عبر SSH بمفتاح (لا كلمة مرور)؛ لا تفرض وثائقه توزيعة ولا حجمًا معينًا، لكن خصّص 2 vCPU و2 غيغابايت من ذاكرة الوصول العشوائي على الأقل لتطبيق ويب قياسي مع قاعدة بياناته. يمكن لـ Kamal تثبيت Docker بنفسه خلال أول ‎`kamal setup`‎ (سكربت ‎get.docker.com‎)، لكن ذلك يتطلب وصولًا بصلاحيات root عبر SSH — إذ يتصل Kamal بحساب root افتراضيًا. يلزم فتح المنفذَين 80 و443 ووجود سجل DNS من النوع A يشير إلى IP الخادم قبل تفعيل SSL. على جهازك المحلي، ثمة خياران: تثبيت الحزمة ‎`gem install kamal`‎ (يتطلب بيئة Ruby) أو استخدام صورة Docker الرسمية. الإصدار الحالي هو ‏2.12.0 (يونيو 2026). احضر أيضاً سجل حاويات — ‏Docker Hub أو ‏GitHub Container Registry أو سجلاً خاصاً — مع بيانات اعتماده.",{"type":35,"title":54,"body":55},"‏Kamal v1 مقابل Kamal v2: ما الذي تغيّر","‏صدر Kamal 2 في سبتمبر 2024 (مُدرَج افتراضياً في Rails 8 الصادر في نوفمبر 2024)، ليستبدل Traefik بـ ‎kamal-proxy‎، وكيل عكسي داخلي طوّرته 37signals. التغيير جوهري: Traefik تصريحي (ترسل إليه إعداداً وينسجم معه)، بينما Kamal أمري. كانت النسخة 1 تستطلع واجهة Traefik API باستمرار لمعرفة ما إذا اكتمل النشر — وهو مصدر لسباقات الظروف. مع ‎kamal-proxy‎، الأوامر مباشرة ومتزامنة. على صعيد الإعداد، يختفي قسم ‎`traefik:`‎ من ‎`deploy.yml`‎ ليحلّ محله قسم ‎`proxy:`‎ بمفاتيح ‎`host`‎ و‎`ssl`‎ و‎`app_port`‎. تنتقل الأسرار من ‎`.env`‎ إلى ‎`.kamal\u002Fsecrets`‎، وهو ملف shell يمكنه استدعاء أدوات خارجية. يُحوَّل الإعداد يدويًا، ثم يُرحّل ‎`kamal upgrade`‎ الخوادم: يزيل Traefik ويشغّل ‎kamal-proxy‎ ثم يعيد تشغيل التطبيق والملحقات على الشبكة الجديدة. ويضيف Kamal 2 تشغيل تطبيقات متعددة على وكيل واحد، ووضع الصيانة ‎`kamal app maintenance`‎ ثم ‎`kamal app live`‎ للعودة إلى الخدمة.",{"type":57,"title":58,"steps":59},"steps","التثبيت والنشر الأول مع Kamal v2",[60,63,66,69,72,75,78,81],{"title":61,"body":62},"تثبيت Kamal على جهازك المحلي","نفّذ ‎`gem install kamal`‎ (يتطلب بيئة Ruby)، أو إذا كنت تفضل تجنب Ruby استخدم اختصار Docker: ‎alias kamal='docker run -it --rm -v \"${PWD}:\u002Fworkdir\" ...'‎. تحقق من التثبيت بـ ‎kamal version‎ — الإصدار الحالي هو 2.12.0.",{"title":64,"body":65},"تهيئة الإعداد في مشروعك","في المجلد الجذر للمشروع نفّذ ‎`kamal init`‎. سيُنشئ Kamal ملفَّي ‎`config\u002Fdeploy.yml`‎ و‎`.kamal\u002Fsecrets`‎. أدخل في ‎`deploy.yml`‎: اسم الخدمة وعنوان الصورة وقائمة الخوادم وإعدادات السجل.",{"title":67,"body":68},"إعداد الأسرار ومتغيرات البيئة","أضف ‎`.kamal\u002Fsecrets`‎ إلى ‎`.gitignore`‎. في هذا الملف أعلن الأسرار كمتغيرات shell: ‎`KAMAL_REGISTRY_PASSWORD=$KAMAL_REGISTRY_PASSWORD`‎ أو بقراءتها من 1Password. في ‎`config\u002Fdeploy.yml`‎ أشر إليها ضمن ‎`env.secret:`‎ للقيم الحساسة و‎`env.clear:`‎ للمتغيرات العادية.",{"title":70,"body":71},"إعداد الوكيل وشهادة SSL","في ‎`config\u002Fdeploy.yml`‎ أضف قسم ‎`proxy:`‎ مع ‎host: app.votre-domaine.com‎ و‎`ssl: true`‎ و‎app_port: 3000‎. سيحصل ‎kamal-proxy‎ تلقائياً على شهادة Let's Encrypt. تأكد من أن سجل DNS يشير إلى IP الخادم قبل هذه الخطوة.",{"title":73,"body":74},"تجهيز الخادم (مرة واحدة فقط)","نفّذ ‎`kamal setup`‎. يتصل Kamal عبر SSH، يثبّت Docker إن لزم، يتحقق من السجل، يُشغّل ‎kamal-proxy‎ وينشر النسخة الأولى من التطبيق. هذا الأمر هو خطوة التهيئة الوحيدة.",{"title":76,"body":77},"نشر التحديثات اللاحقة","عند كل تحديث نفّذ ‎`kamal deploy`‎. يبني Kamal الصورة ويرفعها ويشغّل حاوية جديدة بجانب القديمة، ينتظر نجاح فحص الصحة، يحوّل الوكيل إلى الحاوية الجديدة ويوقف القديمة. العملية مرئية في الوقت الفعلي.",{"title":79,"body":80},"التحقق من الحالة وعرض السجلات","‏بعد النشر: ‎`kamal app details`‎ يعرض الإصدار الجاري على كل خادم، ‎`kamal app logs -f`‎ يتابع السجلات، ‎`kamal app exec -i 'bin\u002Frails console'`‎ يفتح وحدة تحكم داخل الحاوية في الإنتاج.",{"title":82,"body":83},"إدارة الملحقات (قاعدة البيانات، الذاكرة التخزينية المؤقتة)","‏أعلن Postgres ضمن مفتاح ‎`accessories:`‎ في ‎`deploy.yml`‎، مع ربط المنفذ بالمضيف المحلي ‎`port: \"127.0.0.1:5432:5432\"`‎ وعدم نشره على كل الواجهات. ‎`kamal accessory boot db`‎ يشغّل الخدمة على الخادم الصحيح. لا تمر الملحقات عبر ‎kamal-proxy‎ بل تتصل بالتطبيق مباشرة عبر متغيرات البيئة.",{"type":35,"title":85,"body":86},"الإعداد متعدد الخوادم والنشر المتوازي","‏يُوزّع Kamal النشر على جميع خوادم الدور بالتوازي بشكل افتراضي. لتنظيم نشر تدريجي أضف ‎`boot: limit: 2 wait: 10`‎ — سيُنشر Kamal على خادمَين في كل مرة مع فاصل 10 ثوانٍ. تتيح الأدوار تمييز الخوادم: ‎`web:`‎ لخوادم HTTP و‎`workers:`‎ بأمر مختلف كـ ‎`bundle exec sidekiq`‎. لكل دور خوادمه وأسراره ومتغيراته. يعمل ‎kamal-proxy‎ على كل خادم من الدور الرئيسي (‎`web`‎ افتراضيًا)، ولا تشغّله الأدوار الأخرى مثل ‎`workers`‎. مع عدة خوادم ويب ضع موزّع أحمال أمامها: فـ HTTPS التلقائي في ‎kamal-proxy‎ يفترض النشر على خادم واحد.",{"type":35,"title":88,"body":89},"متغيرات البيئة والأسرار — أفضل الممارسات","‏الفصل بين المتغيرات الواضحة والأسرار صريح في Kamal 2. في ‎`deploy.yml`‎، تذهب المتغيرات غير الحساسة ضمن ‎`env: clear:`‎، والأسرار ضمن ‎`env: secret:`‎ — تُقرأ قيمها من ‎`.kamal\u002Fsecrets`‎ وقت النشر وتُكتب في ملف بيئة على الخادم بدل تمريرها نصًا واضحًا في أمر ‎`docker run`‎. لا يُحقن سر من ‎`.kamal\u002Fsecrets`‎ إلا إذا أُدرج ضمن ‎`env: secret:`‎، في الجذر لكل الأدوار أو في الدور أو الملحق الذي يستخدمه. يعرض ‎`kamal secrets print`‎ القيم المحلولة للتحقق من قراءة مدير كلمات المرور قبل النشر.",{"type":91,"body":92},"tip","‏إذا أدخل نشر ما انحداراً، لا تنتظر دورة البناء التالية: نفّذ ‎`kamal rollback [VERSION]`‎ لإعادة توجيه ‎kamal-proxy‎ فوراً إلى صورة موجودة مسبقاً على الـ VPS. استعرض الإصدارات المتاحة بـ ‎`kamal app images`‎. لا يعيد التراجع البناء — يُعيد توجيه الوكيل في ثوانٍ.",{"type":35,"title":94,"body":95},"‏HTTPS التلقائي مع kamal-proxy وLet's Encrypt","‏يتولى ‎kamal-proxy‎ دورة حياة TLS الكاملة: يستمع على المنفذين 80 و443، يستجيب لتحديات ACME من Let's Encrypt، يحصل على الشهادة، يخزّنها على الخادم ويجدّدها تلقائياً قبل انتهاء صلاحيتها. الشرط الوحيد أن يحلّ اسم المضيف المُعلن في ‎`proxy: host:`‎ إلى IP الخادم وأن يكون المنفذان 80 و443 مفتوحين — تُطلب الشهادة عند أول اتصال HTTPS، ويفشل تحدي ACME ما لم ينتشر DNS بعد. على خادم يستضيف عدة تطبيقات، يوجّه الوكيل حسب اسم المضيف ويُدير شهادة منفصلة لكل نطاق. ويفترض هذا HTTPS التلقائي النشر على خادم واحد؛ وما زاد على ذلك فأنهِ TLS على موزّع أحمال.",{"type":35,"title":97,"body":98},"استكشاف الأخطاء — مشاكل شائعة عند النشر باستخدام Kamal","‏**انتهاء مهلة SSH**: تحقق من إمكانية الوصول إلى IP الخادم وفتح المنفذ 22، وتشغيل وكيل SSH. **فشل فحص الصحة**: فحص الصحة الافتراضي يطرق ‎`GET \u002Fup`‎ — أعلن مساراً مختلفاً بـ ‎`proxy: healthcheck: path: \u002Fhealth`‎ إذا لم يستجب تطبيقك على هذا المسار. تحقق أيضاً من تطابق ‎`app_port:`‎ مع المنفذ الفعلي. **خطأ في مصادقة السجل**: نفّذ ‎`kamal registry login`‎ ثم أعد المحاولة. **تعارض المنافذ**: إذا شغل عملية خارجية المنفذَين 80 أو 443، لن يبدأ ‎kamal-proxy‎؛ حدّدها بـ ‎`ss -tlnp | grep -E '80|443'`‎. **فشل kamal setup عند تثبيت Docker**: يتطلب التثبيت التلقائي وصولًا بصلاحيات root عبر SSH، أو ثبّت Docker يدويًا مسبقًا.",{"type":35,"title":100,"body":101},"دمج Kamal في خط أنابيب CI\u002FCD مع GitHub Actions","‏يتضمن سير عمل GitHub Actions النموذجي لـ Kamal 2 مهمتَين: مهمة اختبار (تُشغَّل عند كل push) ومهمة نشر مشروطة (تُفعَّل عند الدفع إلى ‎`main`‎ أو نشر إصدار). في مهمة النشر: ثبّت Ruby وحزمة Kamal، ثم نفّذ ‎`kamal deploy`‎ مع حقن الأسرار من GitHub Secrets. العناصر الأساسية في ‎`.github\u002Fworkflows\u002Fdeploy.yml`‎: مهمة النشر تعتمد على مهمة الاختبار (‎`needs: test`‎)، وتهيّئ متغير ‎`KAMAL_REGISTRY_PASSWORD: ${{ secrets.KAMAL_REGISTRY_PASSWORD }}`‎، وتثبّت Kamal بإصدار محدد، ثم تنفّذ ‎`kamal deploy`‎. يُعدّ وكيل SSH عبر ‎`webfactory\u002Fssh-agent@v0.10.0`‎ مع مفتاح خاص محفوظ في GitHub Secrets.",{"type":103,"title":104,"rows":105,"headers":130},"comparison","‏Kamal v1 مقابل Kamal v2 — ملخص الفروق",[106,110,114,118,122,126],[107,108,109],"الوكيل العكسي","‏Traefik (تصريحي، يستطلع API)","‏kamal-proxy (أمري، أوامر مباشرة)",[111,112,113],"الأسرار","‏‎.env في جذر المشروع","‏‎.kamal\u002Fsecrets (shell مُقيَّم، يدعم مديري كلمات المرور)",[115,116,117],"SSL","‏يُدار عبر Traefik وACME","‏يُدار عبر kamal-proxy (Let's Encrypt مدمج)",[119,120,121],"تطبيقات متعددة","غير مدعوم بشكل أصلي","أصلي: عدة تطبيقات بوكيل واحد",[123,124,125],"الترقية","—","‏kamal upgrade يُرحّل الخوادم (الإعداد يُحوَّل يدويًا)",[127,128,129],"إعداد الوكيل في deploy.yml","‏قسم traefik:","‏قسم proxy: مع host وssl وapp_port",[5,131,132],"Kamal v1","Kamal v2",{"type":35,"title":134,"body":135},"‏Kamal على VPS ServOrbit — من الأمر إلى النطاق المُشغَّل","‏يستوفي VPS Cloud من ServOrbit بنظام Ubuntu 24.04 جميع متطلبات Kamal منذ التسليم: وصول SSH بمفتاح، شبكة 1 Gbit\u002Fs وعنوان IP مخصص. مسار العمل النموذجي: أنشئ سجل DNS من النوع A يشير إلى ‎`app.votre-domaine.com`‎ ثم نفّذ ‎`kamal setup`‎ — يثبّت Kamal Docker ويُشغّل ‎kamal-proxy‎ ويحصل على شهادة Let's Encrypt وينشر تطبيقك في تمريرة واحدة. من تلك اللحظة، كل ‎`kamal deploy`‎ من طرفيتك أو خط أنابيب CI يُطبّق التحديث دون توقف. لاستضافة مشاريع متعددة على نفس الـ VPS بنطاقات وشهادات مستقلة، أضف تطبيقاً في ملف ‎`deploy.yml`‎ ثانٍ يشير إلى نفس الخادم — يوجّه ‎kamal-proxy‎ حسب اسم المضيف دون إعادة إعداد.","قُد عمليات نشر Kamal الخاصة بك على خادم VPS Cloud من ServOrbit","هيّئ خادم VPS Cloud مع قالب النشر ووصول SSH بالمفتاح: يثبّت Kamal عليه Docker وينشر تطبيقك بلا توقف منذ الأمر الأول.","اطّلع على خوادم VPS Cloud","\u002Fvps-cloud",[141,161,177],{"id":142,"slug":143,"slugs":144,"title":148,"excerpt":149,"readTime":150,"views":151,"isPinned":19,"noindex":19,"publishedAt":152,"updatedAt":153,"category":154,"categories":155,"featuredImage":29,"bgImage":30,"posterImage":157,"relatedSolution":158},33,"انشر-تطبيقاتك-باستخدام-caprover-على-خادم-vps",{"fr":145,"en":146,"ar":143,"es":147},"deployer-avec-caprover","deploy-your-applications-with-caprover-on-a-vps","desplegar-aplicaciones-con-caprover-en-un-vps","انشر تطبيقاتك باستخدام CapRover على خادم VPS","دليل CapRover الشامل: التثبيت، captain-definition، CI\u002FCD مع GitHub Actions، الكتلة متعددة العقد، النسخ الاحتياطية وإصلاح أخطاء 502 وBuild Failed وDocker API.",10,2,"2026-05-18T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[156],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caprover-poster.svg",{"categorySlug":159,"appSlug":160},"نشر-التطبيقات-وdevops","caprover",{"id":162,"slug":163,"slugs":164,"title":168,"excerpt":169,"readTime":170,"views":18,"isPinned":19,"noindex":19,"publishedAt":171,"updatedAt":172,"category":173,"categories":174,"featuredImage":29,"bgImage":30,"posterImage":176,"relatedSolution":29},34,"انشر-تطبيقاتك-باستخدام-dokku-على-خادم-vps",{"fr":165,"en":166,"ar":163,"es":167},"deployer-avec-dokku","deploy-your-applications-with-dokku-on-a-vps","desplegar-aplicaciones-con-dokku-en-un-vps","انشر تطبيقاتك باستخدام Dokku على خادم VPS","دليل ‏Dokku‏ v0.35 الشامل: التثبيت، buildpacks، المتغيرات البيئية، الرجوع للإصدار السابق، إضافات postgres\u002Fredis\u002Fletsencrypt، وحلول المشكلات الشائعة.",11,"2026-05-17T00:00:00+00:00","2026-10-18T21:57:59+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[175],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-dokku-poster.svg",{"id":178,"slug":179,"slugs":180,"title":184,"excerpt":185,"readTime":150,"views":18,"isPinned":19,"noindex":19,"publishedAt":186,"updatedAt":153,"category":187,"categories":188,"featuredImage":29,"bgImage":30,"posterImage":190,"relatedSolution":191},35,"انشر-تطبيقاتك-باستخدام-portainer-على-خادم-vps",{"fr":181,"en":182,"ar":179,"es":183},"deployer-avec-portainer","deploy-your-applications-with-portainer-on-a-vps","desplegar-aplicaciones-con-portainer-en-un-vps","انشر تطبيقاتك باستخدام Portainer على خادم VPS","أدِر Docker بصريًا باستخدام Portainer على خادم VPS الخاص بك: حاويات، وstacks، وأحجام (volumes)، وشبكات تُدار من واجهة ويب واضحة.","2026-05-16T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[189],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-portainer-poster.svg",{"categorySlug":159,"appSlug":192},"portainer",true,1794270257972]