كيفية تثبيت Vaultwarden باستخدام Docker: دليل شامل لاستضافة كلمات المرور الخاصة بك

آخر تحديث: 31/08/2026

  • Vaultwarden هو خادم غير رسمي متوافق مع عملاء Bitwarden.
  • يجب حفظ مجلد /data باستخدام وحدة تخزين دائمة.
  • يتطلب الوصول من الأجهزة الأخرى عنوان HTTPS مُهيأ بشكل صحيح.
  • قم بتعطيل السجلات المفتوحة بعد إنشاء الحسابات اللازمة.
كيفية تثبيت Vaultwarden باستخدام Docker Compose

يُمكّنك Vaultwarden من استضافة مدير كلمات مرور متوافق مع عملاء Bitwarden على خادمك الخاص. وبهذه الطريقة، يمكنك تحديد مكان تخزين المعلومات، ومن يمكنه الوصول إلى الخدمة، وكيفية إجراء النسخ الاحتياطية.

من المهم توضيح ذلك منذ البداية. Vaultwarden ليس خادم Bitwarden الرسميهو تطبيق مستقل، مدعوم من المجتمع، مكتوب بلغة Rust، يحاكي الكثير من واجهة برمجة تطبيقات Bitwarden. ولهذا السبب، يمكن استخدامه مع تطبيقات Bitwarden الرسمية للهواتف المحمولة، وبرامج سطح المكتب، والإضافات.

توفر استضافة الخدمة ذاتيًا مزيدًا من التحكم، ولكن لا يضمن ذلك بالضرورة أمانًا أكبرمن تلك اللحظة فصاعدًا، ستكون مسؤولاً عن تثبيت التحديثات، وتأمين الوصول، ومراجعة السجلات، والحفاظ على بروتوكول HTTPS، والتأكد من إمكانية استعادة النسخ الاحتياطية.

مقال ذو صلة:
أفضل برامج إدارة كلمات المرور

ما تحتاجه لتثبيت Vaultwarden باستخدام Docker

ما تحتاجه لتثبيت Vaultwarden باستخدام Docker

قبل البدء، ستحتاج إلى نظام متوافق مع Docker ويبقى قيد التشغيل عند رغبتك في مزامنة كلمات المرور. يمكن أن يكون هذا النظام خادم Linux، أو جهاز تخزين متصل بالشبكة (NAS)، أو جهاز كمبيوتر صغير، أو Raspberry Pi ببنية تدعمها الصورة.

ستحتاج أيضًا إلى:

  • محرك Docker تم التثبيت ويعمل بشكل سليم.
  • الإضافة الحالية لـ Docker Compose.
  • مجلد يمكن فيه تخزين البيانات بشكل دائم.
  • الوصول إلى طرفية مع صلاحيات لإدارة Docker.
  • طريقة وصول آمنة إذا كنت ستستخدم الخدمة من أجهزة أخرى.

لا توجد متطلبات ذاكرة أو مساحة تخزين موحدة لجميع عمليات التثبيت. يعتمد الاستهلاك على عدد المستخدمين، والملحقات، وحجم التخزين، والخدمات الأخرى التي تعمل على نفس الكمبيوتر. بالنسبة للاستخدام المنزلي، عادةً ما يكون تطبيقًا خفيفًا، ولكن يجب عليك تخصيص مساحة كافية لـ البيانات ونسخها الاحتياطية.

تحقق من التثبيت باستخدام:

docker --version
docker compose version

إذا أظهر كلا الأمرين إصدارًا، يمكنك المتابعة.

كيفية تثبيت Vaultwarden باستخدام Docker Compose

كيفية تثبيت Vaultwarden باستخدام Docker

أنشئ مجلدًا مخصصًا وادخل إليه:

mkdir vaultwarden
cd vaultwarden

أنشئ ملفًا داخل المجلد باسم compose.yml مع هذا التكوين الأولي:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"

التجمع ./vw-data:/data إنه أمر ضروري. المجلد /data يحتوي هذا المجلد على قاعدة البيانات، والمرفقات، والإعدادات، والمفاتيح التي يستخدمها الخادم. إذا حذفت الحاوية دون الاحتفاظ بهذا المجلد، فستفقد المعلومات المخزنة.

العنوان 127.0.0.1 هذا التثبيت الأولي يستجيب فقط على الخادم نفسه. إنه تكوين مناسب لاختبار Vaultwarden دون تعريض المنفذ للشبكة بعد.

ابدأ تشغيل الحاوية:

docker compose up -d

تحقق من حالته:

docker compose ps
docker compose logs --tail=100 vaultwarden

يمكنك فتح ما يلي من نفس الجهاز:

http://localhost:8080

الوصول عبر localhost يُستخدم هذا لإتمام الإعداد الأولي. للاتصال من جهاز كمبيوتر آخر، أو تطبيق جوال، أو رقم داخلي، ستحتاج إلى إعداد عنوان آمن باستخدام بروتوكول HTTPS.

كيفية إنشاء حسابك الأول وإتمام عملية التسجيل

افتح واجهة الويب، أنشئ حسابك الأول، وتأكد من إمكانية تسجيل الدخول. استخدم كلمة مرور رئيسية طويلة وفريدة وسهلة التذكرلأنه يحمي الوصول إلى المستودع بأكمله.

بعد إنشاء الحسابات اللازمة، قم بالتعديل compose.yml والتغييرات:

SIGNUPS_ALLOWED: "true"

بواسطة:

SIGNUPS_ALLOWED: "false"

قم بتطبيق التغيير عن طريق إعادة إنشاء الحاوية:

docker compose up -d

يُتيح Vaultwarden للمستخدمين المجهولين إنشاء حسابات افتراضيًا. إن إبقاء التسجيل مفتوحًا دون داعٍ يُسهّل على جهات خارجية استغلال مساحة خادمك أو استخدامه دون إذن.

محتوى حصري - اضغط هنا  أمن المعلومات

إذا قمت لاحقًا بتمكين لوحة الإدارة، فستتمكن من إرسال الدعوات حتى مع تعطيل التسجيل العام.

لماذا يحتاج Vaultwarden إلى HTTPS

يستخدم المتجر الإلكتروني واجهة برمجة تطبيقات التشفير الخاصة بالمتصفح. عادةً ما تتوفر ميزات التشفير هذه فقط في السياقات الآمنة، مثل HTTPS أو localhost.

ولهذا السبب، فإن الافتتاح http://192.168.1.50:8080 قد تظهر الأخطاء من جهاز كمبيوتر آخر حتى لو كان الحاوية قيد التشغيل. نشر المنفذ على الشبكة لا يغني عن إعداد HTTPS.

هناك ثلاث طرق شائعة لاستخدام Vaultwarden:

  • للخادم فقط: الوصول عبر localhostمفيد للاختبار.
  • على شبكة خاصة أو شبكة افتراضية خاصة (VPN): الوصول المقيد، مع الحفاظ على شهادة HTTPS صالحة.
  • من الإنترنت: النطاق، والخادم الوكيل العكسي، والشهادة الصالحة، وجدار الحماية المُهيأ بشكل صحيح.

لا يلزمك فتح Vaultwarden علنًا لاستخدامه خارج منزلك. يمكن لشبكة VPN تقييد الوصول إلى أجهزتك المصرح بها، ولكن يجب أن يكون للعنوان الذي يستخدمه العملاء شهادة معترف بها.

كيفية إعداد HTTPS باستخدام Caddy

كيفية إعداد HTTPS باستخدام Caddy

يُعدّ Caddy أحد أبسط الخيارات لأنه يستطيع طلب الشهادات وتجديدها تلقائيًا عبر ACME. لاستخدام شهادة عامة، يجب أن يُشير النطاق إلى خادمك وأن تكون المنافذ اللازمة متاحة.

يمكن استخدام هذا الملف في تكوين مشترك بين Vaultwarden و Caddy. compose.yml:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "false"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

يستبدل vault.example.com لنطاقك الفعلي. ثم أنشئ ملفًا باسم Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
    }
}

تفعيل الخدمات:

docker compose up -d

سيرسل Caddy الطلبات إلى الحاوية عبر الشبكة الداخلية التي أنشأها Compose. كما يمكن للتكوين الحالي معالجة إشعارات WebSocket عبر الوجهة نفسها، لذا لا حاجة لنشر منفذ Vaultwarden إضافي.

المتغير DOMAIN يجب أن يحتوي على عنوان URL الخارجي الدقيق، بما في ذلك https://قد يتسبب العنوان غير الصحيح في حدوث مشاكل في المرفقات أو الروابط أو المصادقة أو العملاء.

كيفية ربط تطبيقات Bitwarden الرسمية

في شاشة تسجيل الدخول الخاصة بالإضافة، أو تطبيق الهاتف المحمول، أو برنامج سطح المكتب، افتح مُحدد الخادم واختر الخيار الاستضافة الذاتية.

أدخل العنوان الكامل:

https://vault.example.com

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

إذا كنت تستخدم شهادة صادرة عن جهة خاصة، فستحتاج إلى تثبيت تلك الجهة بشكل صحيح ومنحها الثقة على جميع الأجهزة. ولتجنب مشاكل التوافق، يُفضّل استخدام شهادة عامة صالحة أو حل خاص يمكنك التحكم في سلسلة الثقة الخاصة به بشكل كامل.

بمجرد اتصال العميل، يمكنك استورد كلمات مرور Chrome إلى Vaultwarden وتأكد من ظهورها على جميع أجهزتك.

كيفية حماية لوحة التحكم الإدارية

توفر شركة Vaultwarden لوحة اختيارية في /adminومن هناك يمكنك مراجعة المستخدمين والمؤسسات والتشخيصات وخيارات الخادم المحددة.

إذا لم تكن بحاجة إلى اللوحة، فإن أسلم شيء تفعله هو اتركه معطلاًلتفعيله، يجب عليك ضبط الإعدادات ADMIN_TOKENبدلاً من تخزين كلمة المرور كنص عادي، يقوم البرنامج بإنشاء تجزئة Argon2id:

docker run --rm -it vaultwarden/server /vaultwarden hash

سيطلب الأمر كلمة المرور مرتين وسيعيد سلسلة تبدأ بـ $argon2id$.

إحدى الطرق المريحة لتجنب مشاكل علامات الدولار هي حفظها في ملف .env يقع بجوار compose.yml:

VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'

ثم أضف إلى الخدمة:

environment:
  ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"

إذا كتبت التجزئة مباشرة في الداخل compose.ymlيجب عليك مضاعفة كل علامة دولار كما يلي: $$ لمنع Docker Compose من محاولة تفسيره كمتغير.

محتوى حصري - اضغط هنا  كيفية معرفة كلمات مرور فيسبوك

تحقق من التكوين المُعالَج باستخدام:

docker compose config

يجب الوصول إلى اللوحة عبر بروتوكول HTTPS فقط. وإذا أمكن، قيّد مسارها إلى الشبكة المحلية أو شبكة VPN أو عناوين IP محددة.

يرجى ملاحظة أنه بعد حفظ الخيارات من /adminيقوم حارس القبو بإنشاء config.jsonتُعطى قيمها الأولوية على متغيرات البيئة المكافئة. وتفسر هذه الأولوية العديد من الحالات التي لا يبدو فيها أن تعديل Compose يُحدث أي تغيير.

تدابير أساسية لحماية حارس القبو

لا تنتهي إجراءات الأمان بتفعيل بروتوكول HTTPS. على الأقل، يجب تطبيق هذه التدابير:

  • قم بتعطيل سجل النظام المفتوح باستخدام SIGNUPS_ALLOWED=false.
  • استخدم كلمة مرور رئيسية فريدة وقوية.
  • نشيط المصادقة بخطوتين لجميع الحسابات.
  • احفظ رمز استعادة المصادقة في مكان آمن آخر.
  • قم بتحديث الصورة ونظام الاستضافة بانتظام.
  • لا تقم بتثبيت مجلدات غير ضرورية أو مقبس Docker داخل الحاوية.
  • قم بتقييد المنافذ الضرورية فقط باستخدام جدار الحماية.
  • لا تعرض قاعدة البيانات أو المجلد علنًا vw-data.

يستطيع Fail2ban حظر العناوين التي تتراكم عليها محاولات تسجيل الدخول الفاشلة، ولكن يجب ضبط إعداداته بعناية عند استخدام خادم وكيل عكسي. يجب أن يُرسل Caddy أو Nginx عنوان IP الحقيقي؛ وإلا فقد يحظر Fail2ban عنوان الوكيل نفسه.

يمكنك أيضًا تعطيل عرض تلميحات كلمة المرور. قد تُسهّل هذه التلميحات هجمات التخمين عندما يكون الخادم متاحًا للعامة.

لمعرفة المزيد عن هذه الممارسات، يمكنك الرجوع إلى كيفية استخدم برامج إدارة كلمات المرور بشكل آمن.

كيفية إعداد إشعارات البريد الإلكتروني

يُمكّنك إعداد SMTP من إرسال الدعوات والتحققات والإشعارات. ستحتاج إلى تحديد الخادم والمرسل والمنفذ وطريقة الأمان وبيانات الاعتماد التي يوفرها لك مزود خدمة البريد الإلكتروني.

لا تخلط بين رسائل البريد الإلكتروني SMTP ونسخة احتياطية من الخزنة. ولا تعتمد عليها كوسيلة وحيدة لاستعادة حسابك. إذا نسيت كلمة مرورك الرئيسية ولم تقم بإعداد طريقة استعادة أخرى، فقد تفقد الوصول إلى بياناتك المشفرة.

بعد حفظ الإعدادات، أرسل رسالة اختبارية وتحقق من سجلات النظام إذا لم تصل. تحقق أيضًا من مجلدات البريد العشوائي وقيود مزود خدمة البريد الإلكتروني.

كيفية عمل نسخة احتياطية كاملة من Vaultwarden

تخزن قاعدة بيانات SQLite المستخدمين والعناصر والأجهزة والمؤسسات، ولكن لا يحتوي على جميع الملفاتيتم تخزين المرفقات وبعض الطلبات في مجلدات منفصلة.

يجب أن تتضمن النسخة الكاملة ما يلي:

  • db.sqlite3 أو نسخة متسقة من قاعدة البيانات.
  • المجلد attachments.
  • المجلد sends، إذا كنت ترغب في الاحتفاظ بتلك الملفات.
  • الملف config.json، إذا كنت تستخدم اللوحة.
  • الملفات rsa_key*.
  • ملفات Compose و Caddy ومتغيراتها.

للحصول على نسخة احتياطية بسيطة ومتسقة، يمكنك إيقاف Vaultwarden مؤقتًا وأرشفة المجلد:

docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden

قد يحتوي الملف على رمز الإدارة وبيانات اعتماد SMTP. قم بتشفيره قبل نسخه إلى جهاز كمبيوتر آخر أو وحدة تخزين بعيدة.

إذا كنت لا ترغب في إيقاف الخدمة، فإن Vaultwarden يتضمن أمرًا يستخدم آلية نسخ SQLite:

docker exec vaultwarden /vaultwarden backup

يحمي هذا الأمر قاعدة البيانات، ولكن يُنصح مع ذلك بعمل نسخ احتياطية للمرفقات وملفات التكوين والمفاتيح. فعّل خاصية النسخ الاحتياطي التلقائي، واحتفظ بنسخة احتياطية واحدة على الأقل خارج الخادم، واختبر عملية الاستعادة دوريًا.

محتوى حصري - اضغط هنا  يطلب نظام ويندوز إعادة التشغيل ولكنه لا يكمل التحديث أبدًا: الأسباب والحلول

كيفية تحديث Vaultwarden باستخدام Docker

أنشئ نسخة موثقة قبل التحديث. ثم قم بتشغيل:

docker compose pull
docker compose up -d

تحقق من الحالة وأحدث الرسائل:

docker compose ps
docker compose logs --tail=100 vaultwarden

سيقوم Docker بتنزيل الصورة وإعادة إنشاء الحاوية، مع الحفاظ على vw-dataلا تستخدم أوامر التنظيف العامة دون التحقق أولاً من الحاويات والصور والشبكات التي ستتم إزالتها.

في عمليات التثبيت التي يكون فيها الاستقرار أمرًا بالغ الأهمية، يمكنك إصلاح إصدار معين من الصورة بدلاً من استخدام الإصدار الافتراضي دائمًا. latestبهذه الطريقة يمكنك مراجعة ملاحظات الإصدار وتحديد وقت تطبيق كل تحديث.

أخطاء شائعة عند تثبيت Vaultwarden باستخدام Docker

أخطاء شائعة عند تثبيت Vaultwarden باستخدام Docker

تعمل الواجهة على الجهاز المحلي، ولكنها لا تعمل من جهاز كمبيوتر آخر.

يقتصر الميناء على 127.0.0.1 أو قد يرفض المتصفح وظائف التشفير عند الوصول عبر بروتوكول HTTP. قم بتكوين عنوان HTTPS قبل استخدام الخدمة من أجهزة أخرى.

لا يمكن للعميل الرسمي الاتصال بالخادم

حدد البيئة الاستضافة الذاتية وأدخل العنوان بدقة مع https://تحقق من الشهادة، ونظام أسماء النطاقات (DNS)، والخادم الوكيل، والمتغيرات DOMAIN.

يبدأ تشغيل الحاوية، لكن البيانات تختفي عند إعادة إنشائها.

لم يتم تركيب جهاز التحكم في مستوى الصوت بشكل صحيح. يرجى التحقق من ذلك. ./vw-data:/data يظهر في الإعدادات وأنك تقوم بتشغيل Compose من المجلد المتوقع.

لا أستطيع إنشاء حساب آخر

Si SIGNUPS_ALLOWED هو في falseهذا السلوك صحيح. أرسل دعوة من اللوحة أو فعّل التسجيل مؤقتًا فقط أثناء إنشاء الحساب.

لا يعمل رمز ADMIN_TOKEN

تحقق من استيفاء الإشارات $استخدم ملفًا .env باستخدام علامات اقتباس مفردة أو مضاعفة الرموز إذا قمت بإدراج السلسلة مباشرة في Compose.

يبدو أن المتغيرات البيئية يتم تجاهلها

تحقق مما إذا كان موجودًا vw-data/config.jsonقد تتجاوز الخيارات المحفوظة من اللوحة المتغيرات المحددة في compose.yml.

تعمل الشهادات في المتصفح، ولكن ليس على الجهاز المحمول.

قد لا يثق الجهاز بسلسلة الشهادات بأكملها. استخدم جهة معتمدة معترف بها أو قم بتثبيت جهة الاعتماد الخاصة بك وشهاداتها بشكل صحيح.

فشل المرفقات

تأكد من ذلك DOMAIN تأكد من مطابقة العنوان الخارجي، وأن الخادم الوكيل يسمح بحجم الطلب المطلوب. تحقق أيضًا من المساحة المتاحة والأذونات الخاصة بـ vw-data.

لا يستطيع Vaultwarden الكتابة داخل vw-data

يحتوي مجلد المضيف على أذونات غير متوافقة. تحقق من المالك والأذونات بناءً على الخطأ الموضح في السجلات. لا تستخدم chmod 777 كحل دائم.

يقوم برنامج Fail2ban بحظر عنوان غير صحيح

لا يقوم الخادم الوكيل بإرسال عنوان IP الحقيقي، أو أن برنامج Fail2ban يقرأ الحقل الخاطئ. قم بضبطه بشكل صحيح. X-Real-IP أو العنوان المقابل لخادم الوكيل الخاص بك.

النسخة المستعادة لا تحتوي على المرفقات

تم نسخ قاعدة بيانات SQLite فقط احتياطيًا. يرجى استعادة المجلدات أيضًا. attachments y sendsبالإضافة إلى تكوين RSA والمفاتيح.

يُتيح لك Vaultwarden استخدام المؤسسات والمجموعات لـ مشاركة كلمات مرور العائلة باستخدام عملاء متوافقين. قبل إضافة المزيد من المستخدمين، تأكد من أن بروتوكول HTTPS والمصادقة الثنائية والنسخ الاحتياطية تعمل بشكل صحيح.

يمكن أن ينتج عن ذلك مدير كلمات مرور سريع وخاص وقابل للتخصيص، لكن أمانه يعتمد على الصيانة. ولا تكون السيطرة على الخادم مفيدة إلا إذا اقترنت بالتحديثات، وتقييد الوصول، واستراتيجية استعادة مثبتة.

كيفية مشاركة كلمات المرور مع عائلتك بشكل آمن دون إرسال ملفات
مقال ذو صلة:
كيفية مشاركة كلمات المرور مع عائلتك بشكل آمن دون إرسال ملفات