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

قبل البدء، ستحتاج إلى نظام متوافق مع Docker ويبقى قيد التشغيل عند رغبتك في مزامنة كلمات المرور. يمكن أن يكون هذا النظام خادم Linux، أو جهاز تخزين متصل بالشبكة (NAS)، أو جهاز كمبيوتر صغير، أو Raspberry Pi ببنية تدعمها الصورة.
ستحتاج أيضًا إلى:
- محرك Docker تم التثبيت ويعمل بشكل سليم.
- الإضافة الحالية لـ Docker Compose.
- مجلد يمكن فيه تخزين البيانات بشكل دائم.
- الوصول إلى طرفية مع صلاحيات لإدارة Docker.
- طريقة وصول آمنة إذا كنت ستستخدم الخدمة من أجهزة أخرى.
لا توجد متطلبات ذاكرة أو مساحة تخزين موحدة لجميع عمليات التثبيت. يعتمد الاستهلاك على عدد المستخدمين، والملحقات، وحجم التخزين، والخدمات الأخرى التي تعمل على نفس الكمبيوتر. بالنسبة للاستخدام المنزلي، عادةً ما يكون تطبيقًا خفيفًا، ولكن يجب عليك تخصيص مساحة كافية لـ البيانات ونسخها الاحتياطية.
تحقق من التثبيت باستخدام:
docker --version
docker compose version
إذا أظهر كلا الأمرين إصدارًا، يمكنك المتابعة.
كيفية تثبيت Vaultwarden باستخدام Docker Compose

أنشئ مجلدًا مخصصًا وادخل إليه:
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

يُعدّ 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

تعمل الواجهة على الجهاز المحلي، ولكنها لا تعمل من جهاز كمبيوتر آخر.
يقتصر الميناء على 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 والمصادقة الثنائية والنسخ الاحتياطية تعمل بشكل صحيح.
يمكن أن ينتج عن ذلك مدير كلمات مرور سريع وخاص وقابل للتخصيص، لكن أمانه يعتمد على الصيانة. ولا تكون السيطرة على الخادم مفيدة إلا إذا اقترنت بالتحديثات، وتقييد الوصول، واستراتيجية استعادة مثبتة.
أنا من عشاق التكنولوجيا وقد حول اهتماماته "المهووسة" إلى مهنة. لقد أمضيت أكثر من 10 سنوات من حياتي في استخدام التكنولوجيا المتطورة والتعديل على جميع أنواع البرامج بدافع الفضول الخالص. الآن تخصصت في تكنولوجيا الكمبيوتر وألعاب الفيديو. وذلك لأنني منذ أكثر من 5 سنوات أكتب لمواقع مختلفة حول التكنولوجيا وألعاب الفيديو، وأقوم بإنشاء مقالات تسعى إلى تزويدك بالمعلومات التي تحتاجها بلغة مفهومة للجميع.
إذا كان لديك أي أسئلة، فإن معرفتي تتراوح بين كل ما يتعلق بنظام التشغيل Windows وكذلك Android للهواتف المحمولة. والتزامي تجاهك هو أنني على استعداد دائمًا لقضاء بضع دقائق ومساعدتك في حل أي أسئلة قد تكون لديكم في عالم الإنترنت هذا.