دليل النشر

كيفية استضافة Infisical ذاتيًا على خادم VPS

انشر على VPS Cloud ←

دليل عملي

الاستضافة الذاتية

كيفية استضافة Infisical ذاتيًا على خادم VPS

إن ترميز الأسرار مباشرةً في ملفات ‎.env‎ وتدويرها يدويًا عبر البيئات حادثةٌ أمنية تنتظر الوقوع. ‎Infisical‎ مدير أسرار مفتوح المصدر (رخصة MIT‏، 27,600 نجمة على GitHub في أكتوبر 2026) يجمّع كل مفتاح API وكلمة مرور قاعدة بيانات وشهادة في خزنة واحدة مستضافة ذاتيًا — تُزامَن تلقائيًا مع تطبيقاتك وخطوط CI وفريقك. إليك كيفية نشره على خادم VPS في أقل من 20 دقيقة، مع RBAC والتدوير التلقائي وتكاملات CI/CD.

9 دقائق للقراءةعدد الخطوات: 6
المحتويات· لماذا تستضيف مدير الأسرار ذاتيًا1/10
  1. 01لماذا تستضيف مدير الأسرار ذاتيًا
  2. 02ما يمنحك إياه Infisical المستضاف ذاتيًا
  3. 03‎Infisical‎ مقابل ‎Vault‎ مقابل ‎Doppler‎ مقابل ‎Bitwarden Secrets‎
  4. 04المتطلبات
  5. 05نشر Infisical باستخدام Docker Compose
  6. 06الإعداد المتقدم: RBAC وسياسات الأسرار والتدوير التلقائي
  7. 07تكامل CI/CD: GitHub Actions وGitLab CI وDocker Compose
  8. 08استكشاف الأخطاء: أبرز الأخطاء الشائعة
  9. 09النسخ الاحتياطي والتحديثات
  10. 10أحكم إغلاق نسخة Infisical لديك فور الإعداد

لماذا تستضيف مدير الأسرار ذاتيًا

يعني تخزين الأسرار في خزنة SaaS أن أكثر بيانات اعتمادك حساسيةً تعبر خادمًا تابعًا لطرف ثالث. أما استضافة ‎Infisical‎ ذاتيًا فتُبقي كل سرّ على بنيتك التحتية، تحت ضوابط وصولك وسجلّات تدقيقك الخاصة. كما تُلغي اشتراك SaaS متكرّرًا: فـ‎Infisical‎ مرخّص بـ‎MIT‎، ومجاني للاستضافة الذاتية، وبديل مباشر عن أدوات مدفوعة مثل ‎Doppler‎ ($6/dev/month) أو تعقيد ‎HashiCorp Vault‎. وبخادم VPS واحد واسم نطاق، يستطيع فريقك بأكمله وكل خط CI جلب الأسرار برمجيًا — دون ملفات ‎.env‎ تُرفع بالخطأ بعد اليوم.

ما يمنحك إياه Infisical المستضاف ذاتيًا

  • خزنة مركزية لكل بيئة (dev، staging، prod) مع سياسات وصول لكل بيئة.
  • حزم SDK أصيلة لـ‎Node.js‎ و‎Python‎ و‎Go‎ و‎Java‎ و‎Ruby‎ وغيرها — احقن الأسرار وقت التشغيل، لا عبر ملفات ‎.env‎.
  • تكاملات مع ‎GitHub Actions‎ و‎GitLab CI‎ و‎CircleCI‎ و‎Jenkins‎: تُزامَن الأسرار تلقائيًا مع خطوطك.
  • تحكّم في الوصول قائم على الأدوار، ورموز خدمة، وهويّات آلية — دون بيانات اعتماد جذر مشتركة.
  • سجلّ تدقيق كامل: تُسجَّل كل عملية قراءة وكتابة وتدوير مع المستخدم وعنوان IP والطابع الزمني.
  • تدوير الأسرار وإدارة إصداراتها — تراجَع عن سرّ بنقرة واحدة إذا اختُرق أحد بيانات الاعتماد.

‎Infisical‎ مقابل ‎Vault‎ مقابل ‎Doppler‎ مقابل ‎Bitwarden Secrets‎

مرّر الجدول أفقيًا

الأداةالنموذجالاستضافة الذاتيةالسعر التقريبيالميزة المميزة
**Infisical**مفتوح المصدر (MIT)نعم — Docker Compose، 4 GB RAMمجاني (self-hosted)RBAC أصيل، تدوير تلقائي، SDK متعدد اللغات
HashiCorp VaultBSL (مصدر متاح)نعم — تشغيل معقدمجاني (community)محركات أسرار متقدمة، PKI، تشفير العبور
DopplerSaaS مملوكةلا$6/dev/monthواجهة مصقولة، مزامنة CI/CD بلا خادم
Bitwarden Secretsمفتوح المصدر (AGPL)نعم — خادم Bitwardenمجاني (self-hosted)متكامل مع خزنة كلمات مرور Bitwarden

المتطلبات

خادم VPS بـ2 vCPU و4 غيغابايت من RAM على الأقل يشغّل Ubuntu 22.04 — فـ‎PostgreSQL‎ و‎Node.js‎ نهِمان للذاكرة تحت الطلبات المتزامنة؛ أقل من 4 غيغابايت يُعيد تشغيل ‎Infisical‎ تحت الحمل. قرص 20 غيغابايت على الأقل لسجلات التدقيق طويلة الأمد. مع ‎Docker‎ و‎Docker Compose‎ مثبّتين (docker compose version يجب أن يُرجع v2.x). واسم نطاق يشير إلى خادم VPS الخاص بك — إذ يتطلّب ‎Infisical‎ رابطًا عامًا لإعادات توجيه OAuth وروابط الدعوة عبر البريد ونموذج أمان المتصفح (SITE_URL ليس اختياريًا). مع تسجيل DNS A أو CNAME منتشر قبل بدء ‎Caddy‎ أو ‎nginx‎.

نشر Infisical باستخدام Docker Compose

  1. توليد الأسرار

    يحتاج ‎Infisical‎ إلى سرّين مستقلّين: ENCRYPTION_KEY (سداسي عشري بـ16 بايت: openssl rand -hex 16) لتشفير بيانات الخزنة في حالة السكون، وAUTH_SECRET (سلسلة عشوائية: openssl rand -base64 32) لتوقيع رموز JWT. خزّن كليهما في ملف .env بجوار ملف ‎Compose‎ الخاص بك — ولا ترفع هذا الملف أبدًا إلى نظام التحكّم بالإصدارات.

  2. كتابة ملف Compose

    تضمّ المنظومة ثلاث خدمات: postgres:14-alpine (مخزن الأسرار)، وredis:alpine (المهام الخلفية وذاكرة الجلسات المؤقتة)، وinfisical/infisical:latest (التطبيق، المنفذ 8080). اضبط DB_CONNECTION_URI وREDIS_URL وSITE_URL (نطاقك، https://secrets.yourdomain.com) والسرّين. شغّل المنظومة عبر docker compose up -d.

    لتثبيت إصدار مستقر بدلًا من latest، راجع صفحة الإصدارات على GitHub واستخدم infisical/infisical:v0.91.1 (الإصدار الحالي في أكتوبر 2026).

  3. إعداد وكيل عكسي مع nginx أو Caddy

    يتطلّب ‎Infisical‎ تفعيل HTTPS — فبدون شهادة TLS صالحة يحجب المتصفّح تدفقات OAuth.

    ‎Caddy‎ (موصى به): أنشئ /etc/caddy/Caddyfile بالمحتوى secrets.yourdomain.com { reverse_proxy localhost:8080 }. يوفّر ‎Caddy‎ شهادة ‎Let's Encrypt‎ تلقائيًا. أعد التشغيل بـsystemctl reload caddy.

    ‎nginx‎: أنشئ vhost بـproxy_pass http://127.0.0.1:8080;، ثم أصدر الشهادة عبر ‎Certbot‎ (certbot --nginx -d secrets.yourdomain.com). أضف proxy_set_header Host $host; وproxy_set_header X-Real-IP $remote_addr; لكي تسجّل سجلات التدقيق عنوان IP الحقيقي للعميل، لا 127.0.0.1.

  4. إنشاء أول حساب مسؤول

    افتح نطاقك في متصفّح وانتقل إلى /admin/signup — فهو المعالج الذي يُستخدم مرة واحدة لإنشاء حساب Super Admin ثم مؤسستك. وأول من يصل إلى هذه الشاشة يصبح مسؤول النسخة. ثم أنشئ أول مشروع لك (فضاء أسماء منطقي للأسرار المترابطة)، وأضف البيئات (dev، staging، prod) وادعُ أعضاء فريقك.

  5. التكامل مع تطبيقاتك وCI

    ثبّت واجهة سطر أوامر ‎Infisical‎ (npm install -g @infisical/cli) أو حزمة SDK في مشروعك. نفّذ infisical run -- node server.js لحقن الأسرار وقت التشغيل — يقرأ تطبيقك process.env.MY_SECRET كأنه من ملف ‎.env‎ محلي، لكن القيمة تأتي من الخزنة. أما لـ‎GitHub Actions‎، فثبّت إجراء ‎Infisical‎ الرسمي وأضف رمز خدمة كسرّ مستودع.

  6. أول تسجيل دخول

    افتحوا دون تأخير عنوان نسختكم على المسار: /admin/signup — فهو المعالج الذي يُستخدَم مرة واحدة لإنشاء حساب Super Admin ثم مؤسستكم. وأول من يصل إلى هذه الشاشة يصبح مسؤول النسخة.

الإعداد المتقدم: RBAC وسياسات الأسرار والتدوير التلقائي

بمجرد تشغيل النسخة، تعزّز ثلاث وظائف متقدمة الأمان التشغيلي.

RBAC (التحكم في الوصول القائم على الأدوار): يُميّز ‎Infisical‎ أربعة أدوار مدمجة — owner وadmin وdeveloper وviewer. خصّص دور viewer لخطوط CI التي تحتاج فقط إلى القراءة، وdeveloper للمطورين، وadmin لقادة المشاريع. تتيح الهويات الآلية (Machine Identities) ربط دور مباشرةً بتطبيق دون رمز خدمة طويل الأمد: تتحقق عبر AWS IAM أو Azure AD أو رمز Kubernetes.

سياسات الأسرار: في Settings → Project → Secret Protection، فعّل الموافقات قبل الكتابة فوق أسرار الإنتاج. يجب أن يتحقق مسؤول ثانٍ من كل تعديل — مفيد للفرق الخاضعة لـSOC 2 أو ISO 27001.

التدوير التلقائي: يشحن ‎Infisical‎ قوالب تدوير أصيلة لـ‎PostgreSQL‎ و‎MySQL‎ و‎AWS IAM‎ و‎GitHub‎. في تبويب Rotation بمشروعك، أنشئ مهمة تدوير بالتكرار المطلوب (مثلاً كل 30 يومًا لكلمة مرور قاعدة بيانات). يولّد ‎Infisical‎ القيمة الجديدة، ويدفعها إلى الخزنة، ويُخطر التطبيقات عبر webhook — دون تدخل يدوي.

تكامل CI/CD: GitHub Actions وGitLab CI وDocker Compose

‎GitHub Actions‎: أضف الإجراء الرسمي إلى سير عملك ومرّر رمز خدمة كسرّ مستودع (INFISICAL_TOKEN). تُحقن الأسرار كمتغيرات بيئة قبل كل مهمة.

- uses: Infisical/secrets-action@v1
  with:
    token: ${{ secrets.INFISICAL_TOKEN }}
    project-id: "<your-project-id>"
    environment: "prod"

‎GitLab CI‎: استخدم CLI ‎Infisical‎ في before_script. أضف INFISICAL_TOKEN في متغيرات CI/CD للمستودع.

before_script:
  - infisical run --env prod -- env | grep MY_SECRET

‎Docker Compose‎ (وقت التشغيل): تستطيع CLI ‎Infisical‎ توليد ملف .env فوريًا قبل تشغيل ‎Compose‎، أو الحقن مباشرةً عبر infisical run -- docker compose up -d. تجنّب تخزين ملف .env المولَّد داخل صورة — فضّل الحقن وقت التشغيل لعدم تسلسل سرّ في طبقة Docker.

استكشاف الأخطاء: أبرز الأخطاء الشائعة

Error: connect ECONNREFUSED 127.0.0.1:6379 (‎Redis‎) — ‎Redis‎ غير مشغّل أو تبدأ خدمة infisical قبل جهوزية ‎Redis‎. أضف depends_on: redis في docker-compose.yml وتحقق من حالة حاوية ‎Redis‎ بـdocker compose ps. إن كان ‎Redis‎ يعمل والخطأ مستمر، تأكد أن REDIS_URL محدّد بـredis://redis:6379 (اسم الخدمة في Compose، لا localhost).

Error: unable to verify the first certificate (TLS) — لم تُصدر شهادة ‎Let's Encrypt‎ بعد (انتشار DNS غير مكتمل) أو لا يستطيع ‎Caddy‎/‎nginx‎ الوصول إلى نقطة ACME challenge. تحقق من فتح المنفذ 80 في جدار الحماية (ufw allow 80) — يحتاجه ‎Caddy‎ للتحدي ‎HTTP-01‎ عند الإصدار الأول.

فشل docker compose up بـBind for 0.0.0.0:8080 failed: port is already allocated — عملية أخرى تستمع على المنفذ 8080. غيّر ربط المنفذ في Compose (8081:8080) وحدّث إعداد الوكيل العكسي.

صفحة /admin/signup غير متاحة بعد أول تسجيل دخول — هذا مقصود: المعالج يظهر مرة واحدة فقط. إن أردت إعادة تشغيله (نسخة اختبار)، احذف جدول Organization وأعد تشغيل ‎Infisical‎.

الأسرار لا تُحقن في ‎GitHub Actions‎ — تحقق أن environment الممرّر للإجراء يطابق تمامًا اسم البيئة المنشأة في ‎Infisical‎ (حساسية حالة الأحرف: prod ≠ Prod).

النسخ الاحتياطي والتحديثات

نسخ ‎PostgreSQL‎ احتياطيًا: الأسرار المشفّرة تعيش في ‎PostgreSQL‎. جدوِل pg_dump يوميًا بـdocker exec infisical_postgres pg_dump -U infisical infisical > backup-$(date +%Y%m%d).sql. شفّر النسخة الاحتياطية قبل نقلها خارج الموقع — فهي تحتوي على أسرار مشفّرة في حالة السكون، لكن تسرّب قاعدة البيانات مع تسرّب ENCRYPTION_KEY يكشف الخزنة بأكملها.

تحديث ‎Infisical‎: تتحدث صورة infisical/infisical:latest مع كل وسم جديد. للترقية المتحكَّم بها، ثبّت الإصدار (v0.91.1)، راجع سجل التغييرات على ‎GitHub‎ قبل كل تحديث (تتضمن بعض الإصدارات هجرات لقاعدة البيانات)، ثم اتبع هذا الترتيب:
1. docker compose pull لتنزيل الصورة الجديدة.
2. docker compose up -d — يُعيد ‎Docker Compose‎ إنشاء الحاويات التي تغيّرت صورتها فقط.
3. تحقّق من أن صفحة تسجيل الدخول تستجيب وأن السجلات لا تُبلّغ عن أخطاء هجرة.

المراقبة: اكشف نقطة نهاية /healthcheck الخاصة بـ‎Infisical‎ في أداة مراقبتك (‎Uptime Kuma‎، ‎Gatus‎) لتتلقى تنبيهات عند الانقطاع. خزنة أسرار غير متاحة تعطّل كل عمليات النشر التي تعتمد عليها.

أحكم إغلاق نسخة Infisical لديك فور الإعداد

قبل دعوة فريقك، عطّل صفحة التسجيل العامة في Settings → Authentication → Allow signups. عندئذٍ لا يقبل ‎Infisical‎ سوى المستخدمين المدعوّين من مسؤول. فعّل أيضًا التحقّق عبر البريد الإلكتروني، وإذا كان فريقك يستخدم GitHub أو Google OAuth، فاضبط هذين الموفّرين في Settings → SSO — فهما أكثر أمانًا من الدخول بكلمة المرور وحدها.

انشر Infisical على خادم VPS الخاص بك بنقرة واحدة

أوقف تسريب الأسرار عبر ملفات ‎.env ورسائل Slack. توفّر ServOrbit نسخة Infisical جاهزة للاستخدام على خادم VPS — مع PostgreSQL وRedis وHTTPS مُضمّنة.