تثبيت Vaultwarden: مدير كلمات المرور المستضاف ذاتياً
تثبيت Vaultwarden (متوافق مع Bitwarden) عبر Docker، تكوين HTTPS، لوحة الإدارة، إدارة المنظمات والمجموعات، الاستخدام مع عملاء Bitwarden.
جدول المحتويات
تثبيت Vaultwarden: مدير كلمات المرور المستضاف ذاتياً
Vaultwarden هو بديل خفيف الوزن ومدعوم من المجتمع للخادم الرسمي لـ Bitwarden، مكتوب بلغة Rust. مقارنةً بالخادم الرسمي لـ Bitwarden، يستهلك موارد أقل بكثير وهو متوافق تماماً مع جميع عملاء Bitwarden (الويب، سطح المكتب، الجوال، إضافة المتصفح). من خلال استضافته على خادمك الخاص، تحتفظ بالتحكم الكامل في كلمات مرورك.
ما هو Vaultwarden؟
Vaultwarden (المعروف سابقاً بـ bitwarden_rs) هو مشروع مفتوح المصدر يعيد تطبيق واجهة برمجة تطبيقات Bitwarden بلغة Rust. الميزات الرئيسية:
- استهلاك منخفض للموارد: يعمل بسهولة بـ 512 ميغابايت من الذاكرة العشوائية
- توافق مع Bitwarden: جميع عملاء Bitwarden الرسميين مدعومون
- دعم المنظمات: إنشاء مجاني للمنظمات والمجموعات
- دعم TOTP: المصادقة الثنائية
- Web Vault: واجهة ويب يمكن الوصول إليها عبر المتصفح
- ميزة Send: مشاركة آمنة للملفات والنصوص
متطلبات النظام
- خادم مثبت عليه Docker وDocker Compose
- 512 ميغابايت من الذاكرة العشوائية كحد أدنى
- اسم نطاق صالح (مطلوب لـ HTTPS)
- شهادة SSL (يُنصح بـ Let's Encrypt)
التثبيت باستخدام Docker
إنشاء docker-compose.yml
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true"
ADMIN_TOKEN: "رمز-مشرف-قوي-هنا"
WEBSOCKET_ENABLED: "true"
LOG_LEVEL: "warn"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
- "127.0.0.1:3012:3012"
# تشغيل الحاوية
docker compose up -d
# فحص السجلات
docker logs vaultwarden -f
استخدم قيمة قوية وعشوائية لـ ADMIN_TOKEN. يمكنك إنشاء رمز آمن باستخدام openssl rand -base64 48.
إنشاء رمز المشرف
# إنشاء رمز مشرف آمن
openssl rand -base64 48
# رمز أكثر أماناً مع تجزئة Argon2 (موصى به)
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp
تكوين Nginx Reverse Proxy وSSL
نظراً لأن Vaultwarden يتطلب HTTPS، فإن إعداد وكيل عكسي Nginx إلزامي.
تكوين Nginx
server {
listen 80;
server_name vault.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name vault.example.com;
ssl_certificate /etc/letsencrypt/live/vault.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vault.example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 128M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8080;
}
}
شهادة SSL من Let's Encrypt
# تثبيت Certbot
apt install certbot python3-certbot-nginx -y
# الحصول على شهادة SSL
certbot --nginx -d vault.example.com
# اختبار التجديد التلقائي
certbot renew --dry-run
تكوين لوحة الإدارة
الوصول إلى لوحة الإدارة على https://vault.example.com/admin.
إعدادات المشرف المهمة
# تعطيل التسجيل بعد الإعداد
SIGNUPS_ALLOWED=false
# السماح بالتسجيل فقط لنطاقات محددة
SIGNUPS_DOMAINS_WHITELIST=example.com,company.org
# نظام الدعوات
INVITATIONS_ALLOWED=true
# التحقق من البريد الإلكتروني
SIGNUPS_VERIFY=true
تكوين SMTP للبريد الإلكتروني
environment:
SMTP_HOST: "smtp.gmail.com"
SMTP_FROM: "vault@example.com"
SMTP_PORT: "587"
SMTP_SECURITY: "starttls"
SMTP_USERNAME: "vault@example.com"
SMTP_PASSWORD: "كلمة-مرور-التطبيق"
إدارة المستخدمين
دعوة المستخدمين
من لوحة الإدارة، انتقل إلى Users → Invite User لإرسال دعوات بالبريد الإلكتروني.
# دعوة مستخدم عبر CLI
docker exec vaultwarden /vaultwarden invite --email user@example.com
إنشاء المنظمات والمجموعات
المنظمات مجانية في Vaultwarden (مدفوعة في Bitwarden الرسمي):
- سجّل الدخول إلى Web Vault
- المنظمات → منظمة جديدة
- أدخل اسم المنظمة وبريد الفوترة الإلكتروني
- استخدم المجموعات لتصنيف كلمات المرور
- ادعُ الأعضاء وعيّن الأدوار (Admin, Manager, User, Custom)
الاتصال بعملاء Bitwarden
إضافة المتصفح
- ثبّت إضافة Bitwarden (Chrome, Firefox, Edge)
- انقر على URL الخادم في شاشة تسجيل الدخول
- أدخل
https://vault.example.com - سجّل الدخول بحسابك
تطبيق الجوال
1. افتح تطبيق Bitwarden
2. انقر على محدد المنطقة في شاشة تسجيل الدخول
3. اختر "Self-hosted"
4. URL الخادم: https://vault.example.com
5. احفظ وسجّل الدخول
النسخ الاحتياطي
# نسخ احتياطي لبيانات Vaultwarden
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data/
# سكريبت النسخ الاحتياطي التلقائي
cat > /etc/cron.daily/vaultwarden-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/vaultwarden"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz /opt/vaultwarden/vw-data/
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/vaultwarden-backup
يعمل Vaultwarden بشكل ممتاز على خوادم REXE VPS. 1 غيغابايت من الذاكرة العشوائية و1 vCPU كافيان للفرق الصغيرة.
مقالات ذات صلة
تثبيت Coolify: نشر التطبيقات مع PaaS المستضاف ذاتياً
تثبيت Coolify، تكامل Docker وGit، نشر التطبيقات، إدارة قواعد البيانات، شهادات SSL، متغيرات البيئة وبديل PaaS المستضاف ذاتياً لـ Heroku/Netlify.
تثبيت Nextcloud: التخزين السحابي المستضاف ذاتياً والتعاون
تثبيت Nextcloud مع Docker، تهيئة Apache/Nginx، إعداد قاعدة البيانات، شهادة SSL، مزامنة الملفات، متجر التطبيقات وتحسين الأداء.
إدارة Docker مع Portainer: التحكم في الحاويات عبر واجهة الويب
تثبيت Portainer CE، إدارة Docker وKubernetes، نشر الـ stacks، إدارة الأحجام/الشبكات، تفويض المستخدمين، Webhooks وتكامل GitOps.