Tropic Host

Vaultwarden: ما هو وكيفية تثبيته على خادم VPS

2 دقيقة للقراءة
Tropic
Vaultwarden: ما هو وكيفية تثبيته على خادم VPS

Vaultwarden: تثبيت مدير كلمات المرور الخاص بك على خادم VPS

يتيح لك Vaultwarden تخزين كلمات المرور على خادمك الخاص ومزامنتها بين الكمبيوتر والهاتف والمتصفح. وهو يعمل مع تطبيقات Bitwarden الرسمية وملحقاته، حيث تحدد عنوان خادمك الخاص.

سنوضح فيما يلي متطلبات خادم VPS لتشغيل Vaultwarden، وطريقة تشغيله على Ubuntu باستخدام Docker Compose، وتعطيل التسجيل المفتوح، وتفعيل HTTPS، وإعداد النسخ الاحتياطية.

تشغيل Vaultwarden في خمس خطوات

خطة التشغيل الأساسية:

  1. أنشئ خادم VPS يعمل بنظام Ubuntu واربط نطاقًا فرعيًا به، مثل vault.example.com.
  2. ثبّت Docker وDocker Compose.
  3. شغّل Vaultwarden مع Caddy للحصول على HTTPS تلقائيًا.
  4. أنشئ الحساب الأول وعطّل التسجيل المفتوح.
  5. فعّل المصادقة الثنائية والتحديثات والنسخ الاحتياطية.

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

ما هو Vaultwarden؟

Vaultwarden هو تطبيق خادم غير رسمي لواجهة برمجة تطبيقات Bitwarden، مكتوب بلغة Rust ومصمم للنشر على بنية تحتية تديرها بنفسك. وهو متوافق مع عملاء Bitwarden الرسميين، بما في ذلك واجهة الويب، وتطبيقات الهاتف والكمبيوتر، وملحقات المتصفح، وواجهة سطر الأوامر CLI.

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

Vaultwarden ليس منتجًا رسميًا من Bitwarden. ويتحمل مالك الخادم مسؤولية التحديثات والتوافر وHTTPS والنسخ الاحتياطية وأمان خادم VPS.

Vaultwarden وBitwarden: ما الفرق؟

المعاملBitwarden CloudVaultwarden
الخادمبنية Bitwarden التحتيةخادم VPS الخاص بك أو خادم منزلي
التطبيقاتعملاء Bitwardenالعملاء أنفسهم في وضع Self-hosted
الصيانةيتولاها مزود الخدمةيتولاها المالك
التحكم في النسخ الاحتياطيةمحدود وفقًا للخدمةكامل
الإعدادتسجيل حسابإعداد النطاق وDocker وخادم VPS

يناسب Vaultwarden من يريد التحكم في جانب الخادم ومستعدًا لتحديث Linux والتحقق من النسخ الاحتياطية. أما الخدمة السحابية فهي أكثر عملية إذا كنت لا تريد التعامل مع الإدارة. لا يجعل الاستضافة الذاتية النظام آمنًا تلقائيًا، بل ينقل المسؤولية إلى المالك.

متطلبات خادم Vaultwarden

للاستخدام الشخصي، تُعد المواصفات التالية نقطة بداية مناسبة:

  • وحدة معالجة افتراضية واحدة (1 vCPU)؛
  • ذاكرة RAM بسعة 1–2 جيجابايت؛
  • مساحة تخزين SSD أو NVMe بسعة 10–20 جيجابايت؛
  • Ubuntu 24.04 LTS؛
  • عنوان IP عام ونطاق؛
  • المنفذان 80 و443 مفتوحان.

هذا تقدير عملي لتوفير مساحة كافية لنظام Ubuntu وDocker وCaddy والتحديثات، وليس حدًا أدنى صارمًا للمشروع. وإذا كان لديك عشرات المستخدمين أو عدد كبير من المرفقات أو عدة حاويات، فمن الأفضل اختيار ذاكرة RAM بسعة لا تقل عن 2 جيجابايت.

كيفية تثبيت Vaultwarden على خادم VPS

يستخدم هذا المثال Ubuntu 24.04 والنطاق الفرعي vault.example.com. استبدله بعنوانك الخاص في جميع الملفات.

1. إعداد DNS وتجهيز Ubuntu

أنشئ سجل DNS من النوع A يشير إلى عنوان IPv4 الخاص بخادم VPS. ثم اتصل عبر SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

لا تغلق جلسة SSH الحالية قبل التحقق من أن اتصالًا جديدًا يعمل بشكل صحيح.

2. تثبيت Docker وDocker Compose

أضف مستودع Docker الرسمي:

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. إنشاء الإعدادات

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

أنشئ الملف compose.yaml:

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

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

أنشئ ملف Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80
}

يتم كشف Caddy فقط من الخارج. ويمكن الوصول إلى حاوية Vaultwarden داخل شبكة Docker، بينما تُخزّن البيانات في /opt/vaultwarden/vw-data. ولا يلزم فتح منفذ WebSocket منفصل في الإعداد الحالي.

4. تشغيل Vaultwarden

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

افتح https://vault.example.com. سيحصل Caddy تلقائيًا على شهادة TLS إذا كان DNS يشير مسبقًا إلى خادم VPS وكان المنفذان 80 و443 متاحين. إذا لم يفتح الموقع، فتحقق من DNS وجدار الحماية ومن عدم استخدام خادم ويب آخر لهذين المنفذين.

5. إنشاء حساب وتعطيل التسجيل

سجّل الحساب الأول. استخدم كلمة مرور رئيسية طويلة وفريدة، واحتفظ بنسخة طوارئ خارج Vaultwarden: إذ لا يستطيع مدير الخادم إعادة تعيين كلمة المرور الرئيسية أو استعادتها.

بعد التسجيل، غيّر القيمة التالية في compose.yaml:

SIGNUPS_ALLOWED: "false"

طبّق الإعداد:

docker compose up -d

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

كيفية ربط تطبيق Bitwarden

لا تحتاج إلى تثبيت عميل Vaultwarden منفصل. في شاشة تسجيل الدخول إلى تطبيق Bitwarden أو ملحقه، اختر Self-hosted وأدخل:

https://vault.example.com

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

إعداد Vaultwarden بشكل آمن

بعد التشغيل، اتخذ عدة خطوات:

  • فعّل TOTP أو WebAuthn وخزّن رموز الاسترداد في مكان منفصل؛
  • أبقِ SIGNUPS_ALLOWED معطّلًا؛
  • استخدم مفاتيح SSH وحدّث Ubuntu بانتظام؛
  • لا تكشف المنفذ الداخلي لحاوية Vaultwarden؛
  • لا تشغّل حاويات غير موثوقة على خادم VPS نفسه؛
  • تحقق من إمكانية استعادة النسخ الاحتياطية.

عادةً لا تكون لوحة /admin ضرورية لخزنة شخصية. وإذا فعّلتها، فاستخدم رمزًا طويلًا على شكل تجزئة Argon2، وقيّد الوصول إليها بعنوان IP أو عبر VPN كلما أمكن. ويُفضّل عدم تخزين ADMIN_TOKEN كنص صريح.

أنشئ نسخة احتياطية قبل التحديث، ثم نفّذ:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

يجب تحديث الخادم بانتظام؛ إذ تُصدر عملاء Bitwarden بشكل مستقل، وقد يفقد إصدار Vaultwarden القديم جدًا توافقه معها.

النسخ الاحتياطي لـ Vaultwarden

توجد قاعدة بيانات SQLite الرئيسية في vw-data/db.sqlite3، بينما تُخزّن المرفقات في ملفات منفصلة. لا تنسخ قاعدة بيانات قيد التشغيل باستخدام الأمر cp العادي، فقد تؤدي عملية كتابة في تلك اللحظة إلى جعل النسخة غير متسقة.

أنشئ لقطة آمنة باستخدام الأمر المدمج:

docker exec vaultwarden /vaultwarden backup

سيظهر ملف منفصل باسم db_.sqlite3 في مجلد البيانات. احفظ معه مجلدات attachments وsends وملف config.json إذا تم إنشاؤه، بالإضافة إلى ملفات rsa_key.

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

اختيار خادم VPS لـ Vaultwarden

يكفي خادم Linux VPS أساسي بذاكرة RAM سعتها 2 جيجابايت لخزنة شخصية أو عائلية. ويوفر ذلك مساحة إضافية لنظام Ubuntu وDocker وCaddy والتحديثات والنسخ الاحتياطية الآلية.

يمكنك تشغيل Vaultwarden على خادم VPS للمبتدئين من tropic.host ثم زيادة الموارد لاحقًا إذا أضفت خدمات أخرى مستضافة ذاتيًا إلى الخادم. وبالنسبة إلى مدير كلمات المرور، تهم استمرارية الشبكة والعنوان العام الدائم والقرص الموثوق أكثر من زيادة عدد أنوية المعالج.

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

الخلاصة

Vaultwarden مدير كلمات مرور عملي مستضاف ذاتيًا لمن يريد استخدام عملاء Bitwarden مع إبقاء جانب الخادم على بنيته التحتية الخاصة. ويكفي للبدء خادم VPS صغير ونطاق وDocker Compose وCaddy.

تبدأ المسؤولية الأساسية بعد التثبيت: عطّل التسجيل، وفعّل المصادقة الثنائية، وحدّث الحاويات، واحتفظ بنسخ احتياطية مجرّبة خارج الخادم.

الأسئلة الشائعة

هل يمكن تثبيت Vaultwarden من دون نطاق؟

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

ما مقدار ذاكرة RAM التي يحتاج إليها Vaultwarden؟

تكون ذاكرة RAM بسعة 1 جيجابايت كافية عادةً لمستخدم واحد أو عدة مستخدمين. ويوفر خادم VPS بذاكرة 2 جيجابايت مساحة أكثر راحة للنظام وDocker وCaddy والتحديثات.

هل يعمل Vaultwarden مع تطبيق Bitwarden للهاتف؟

نعم. في شاشة تسجيل الدخول، اختر خادمًا مستضافًا ذاتيًا وأدخل عنوان HTTPS الكامل لنسخة Vaultwarden لديك.

ماذا يحدث إذا أصبح خادم VPS غير متاح مؤقتًا؟

تبقى البيانات التي تمت مزامنتها سابقًا عادةً في ذاكرة التخزين المؤقت المحلية المشفرة للعميل. لكن المزامنة وتسجيل الدخول على جهاز جديد واستقبال التغييرات لن تعمل حتى تتم استعادة الخادم.

هل يمكن استعادة كلمة المرور الرئيسية المنسية من خلال /admin؟

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