جميع الأنظمة تعمل بشكل طبيعي 21 العملات المشفرة المقبولة · Monero مرحّب بها سياسة بدون KYC
ChainVPS

كلمات المرور · بدون KYC

استضف Vaultwarden على VPS خارجي

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

ما هو

Vaultwarden هو خادم Bitwarden غير رسمي وخفيف الوزن مكتوب بلغة Rust، يتحدث بنفس واجهة برمجة التطبيقات (API) الخاصة بـ Bitwarden، لذا تتزامن معه جميع عملاء Bitwarden الرسميين (إضافات المتصفح، تطبيق سطح المكتب، iOS/Android، وواجهة سطر الأوامر CLI). يخزّن خزائن مشفّرة لكلمات المرور، ومفاتيح المرور (Passkeys)، وبذور TOTP، والبطاقات، والملاحظات الآمنة، مع دعم المؤسسات (Organizations) والمرفقات وأدوات التحكم الإدارية، مع استهلاك جزء يسير فقط من ذاكرة RAM التي تحتاجها الحزمة الرسمية.

لماذا تستضيفه خارجيًا

خزنة كلمات المرور الخاصة بك هي أكثر ما تملكه حساسية على الإطلاق، لذا فإن مسألة من يستضيف الخادم وتحت أي قانون لا تقل أهمية عن التشفير نفسه. خادم افتراضي خاص (VPS) بلا KYC، يُدفع بالعملات المشفرة، ومستضاف في موقع ذي مستوى خصوصية عالٍ (NL/CH/RO/IS)، يعني أن الجهاز الذي يخزّن خزائنك المشفّرة غير مرتبط بهويتك القانونية، وغير خاضع لأمر استدعاء قضائي أمريكي أو بريطاني، ولا يمكن تجميده من قبل مزود دفع يقرر إيقاف خدمتك.

النشر

إعداد مرجعي عملي

انسخ هذا إلى نسخة ChainVPS جديدة. استبدل العناصر النائبة، ثم قم بتشغيله.

docker-compose.yml
# 1) DNS: point vault.example.com -> your ChainVPS IP (A/AAAA record)
# 2) Generate an Argon2 ADMIN_TOKEN (do NOT use a plain string):
#    docker run --rm -it vaultwarden/server /vaultwarden hash
#    paste the resulting '$argon2id$...' string as ADMIN_TOKEN below (single-quote it in .env)
# 3) Save as docker-compose.yml, create the Caddyfile shown, then: docker compose up -d

services:
  vaultwarden:
    image: vaultwarden/server:1.32.7
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"      # must match the public URL exactly
      SIGNUPS_ALLOWED: "false"                  # create your account, then keep this false
      INVITATIONS_ALLOWED: "true"
      ADMIN_TOKEN: "${ADMIN_TOKEN}"             # Argon2 hash from step 2, kept in .env
      WEBSOCKET_ENABLED: "true"                 # live sync (served on the main port)
      SENDS_ALLOWED: "true"
      ROCKET_PORT: "80"
    volumes:
      - ./vw-data:/data                         # vaults, attachments, sqlite db, keys
    networks: [vw]
    # no host port published: only Caddy talks to it over the internal network

  caddy:
    image: caddy:2
    container_name: vaultwarden-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"                           # HTTP/3
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config
    networks: [vw]
    depends_on: [vaultwarden]

networks:
  vw:

# ---- Caddyfile (same directory) ----
# vault.example.com {
#     encode gzip
#     reverse_proxy vaultwarden:80
# }
# Caddy fetches and renews a Let's Encrypt cert automatically; HTTPS is mandatory
# because Bitwarden clients use WebCrypto, which only runs on a secure origin.

جدار الحماية

المنافذ المطلوب فتحها

المنفذالبروتوكولالغرض
443TCPخزنة HTTPS + مزامنة العملاء + WebSocket (عبر Caddy)؛ المنفذ الوحيد الذي يجب أن يكون عامًا
80TCPإعادة توجيه HTTP إلى HTTPS وإصدار شهادات ACME/Let's Encrypt
443UDPدعم اختياري لـ HTTP/3 (QUIC) لمزامنة أسرع مع العملاء

الحجم الأمثل

الباقة التي تحتاجها

خفيف (1-5 مستخدمين، شخصي/عائلي)

VPS Nano/Small (1 vCPU, 1-2 GB RAM)

يستهلك Vaultwarden نحو 15-30 MB من ذاكرة RAM أثناء الخمول عند استخدام SQLite، لذا تكون خطة Nano مريحة تمامًا. مساحة التخزين ضئيلة جدًا ما لم تقم بتخزين مرفقات كبيرة الحجم.

متوسط (فريق صغير / 10-40 مستخدمًا، مؤسسات)

VPS Pro (2 vCPU, 4 GB RAM)

هامش أداء إضافي للمزامنة المتزامنة والمرفقات، مع تشغيل Caddy إضافةً إلى fail2ban/النسخ الاحتياطي على نفس الخادم.

ثقيل (أكثر من 50 مستخدمًا، مؤسسات متعددة، مرفقات كبيرة، قاعدة بيانات MySQL/Postgres)

VPS Pro (الفئة العليا) أو خادم Dedicated من الفئة الأساسية

انتقل من SQLite إلى Postgres/MySQL وضع المرفقات على خطة Storage أو قرص أكبر؛ تضمن وحدة معالجة مركزية (CPU) مخصصة ثبات زمن استجابة المزامنة تحت الحمل.

أفضل المواقع: اختر موقعًا من مواقع ChainVPS ذات مستوى الخصوصية العالي لاستضافة الخزنة: سويسرا (CH) وآيسلندا (IS) لديهما تقاليد قوية في حماية البيانات والخصوصية، وهولندا (NL) توفر اتصالاً ممتازًا مع قوانين الخصوصية الأوروبية، بينما تقع رومانيا (RO) أو مولدوفا (MD) خارج أكثر تكتلات تبادل المراقبة صرامة. اختر الموقع الأقرب جغرافيًا إلى مكان تواجدك أنت ومستخدميك للمزامنة لتقليل زمن الاستجابة، لأن الخزنة مشفّرة من جهة العميل (client-side) في جميع الأحوال.

أحكِم تأمينه

قائمة تحقق التحصين

  • أبقِ SIGNUPS_ALLOWED=false بعد إنشاء حسابك، واستخدم الدعوات (INVITATIONS) لإضافة المستخدمين؛ فوجود نقطة تسجيل مفتوحة على خزنة عامة يجذب إساءة الاستخدام.
  • اضبط ADMIN_TOKEN دائمًا على قيمة تجزئة (hash) من نوع Argon2 يتم توليدها عبر 'vaultwarden hash' (ولا تستخدم أبدًا نصًا صريحًا)، أو عطّل لوحة /admin بالكامل بترك ADMIN_TOKEN بدون قيمة بعد الإعداد. يُستحسن أيضًا تقييد الوصول إلى /admin عبر جدار الحماية بحيث يقتصر على عنوان IP الخاص بك.
  • افرض استخدام HTTPS فقط ودَع Caddy يتولى إدارة شهادات Let's Encrypt؛ فعملاء Bitwarden يرفضون تشغيل التشفير عبر HTTP العادي، وشهادة صالحة تمنع هجمات الإنزال بالمستوى (downgrade) أو الوسيط (MITM) أثناء المزامنة.
  • احرص على أخذ نسخ احتياطية دورية لمجلد ./vw-data (وخاصة rsa_key.pem وconfig.json وdb.sqlite3 والمرفقات) إلى موقع خارج الخادم، مثل خطة ChainVPS Storage؛ فقدان rsa_key.pem يُبطل جميع الجلسات والرموز (tokens) الحالية.
  • شغّل fail2ban على سجل Vaultwarden (عبر LOG_FILE وLOG_LEVEL) لحظر محاولات تسجيل الدخول بالقوة الغاشمة (brute-force)، واشترط على كل مستخدم تفعيل المصادقة الثنائية (2FA)؛ واكشف فقط المنفذين 80/443 عبر ufw/nftables مع إسقاط كل ما عداهما.

الأسئلة

الاستضافة Vaultwarden — الأسئلة الشائعة

هل Vaultwarden هو نفسه Bitwarden؟

لا، إنه تطبيق خادم منفصل وخفيف الوزن لواجهة برمجة تطبيقات (API) الخاصة بـ Bitwarden. لم تصنعه شركة Bitwarden Inc.، لكن تطبيقات وإضافات Bitwarden الرسمية تعمل معه بشكل كامل، وهو يدعم الخزائن والمؤسسات (Organizations) والمرفقات وخاصية Sends ومفاتيح المرور (Passkeys). يُعد خيارًا مثاليًا للأفراد والفرق الصغيرة الراغبين في الاستضافة الذاتية دون استهلاك الموارد الذي تتطلبه الحزمة الرسمية.

هل بياناتي آمنة في حال حجز الخادم أو اختراق مزود الاستضافة؟

يتم تشفير وفك تشفير الخزائن من جهة العميل (client-side) باستخدام مفتاح مشتق من كلمة المرور الرئيسية الخاصة بك، بحيث لا يخزّن الخادم سوى نص مشفّر. استضافة الخزنة على خادم بلا KYC وضمن ولاية قضائية صديقة للخصوصية تقلل من الجهات القادرة على إجبارك على منح الوصول، لكن يبقى عليك استخدام كلمة مرور رئيسية قوية، وتفعيل المصادقة الثنائية (2FA)، والحفاظ على DOMAIN عبر HTTPS لحماية عملية تسجيل الدخول نفسها.

هل أحتاج إلى HTTPS، أم يمكنني استخدام عنوان IP مجرّد؟

نعم، تحتاج إلى HTTPS مع شهادة صالحة واسم نطاق (domain). تعتمد عملاء Bitwarden على واجهة WebCrypto الخاصة بالمتصفح، التي لا تعمل إلا على مصدر آمن (secure origin)، لذا فإن الإعداد عبر http:// عادي أو عنوان IP مجرّد سيفشل في المزامنة. تتولى خدمة Caddy المُضمّنة إصدار وتجديد شهادة Let's Encrypt المجانية تلقائيًا.

SQLite أم MySQL/Postgres؟

قاعدة SQLite (الافتراضية) مناسبة تمامًا وأسرع خيار للاستخدام الشخصي والفرق الصغيرة التي تصل إلى بضع عشرات من المستخدمين. انتقل إلى MySQL أو PostgreSQL فقط في حالات النشر الكبيرة متعددة المؤسسات، أو عندما ترغب في نسخ احتياطي مركزي للقاعدة وتكرار (replication) للبيانات؛ اضبط DATABASE_URL وفقًا لذلك.

كيف أضيف مستخدمين دون فتح باب التسجيل العام؟

أبقِ SIGNUPS_ALLOWED=false وINVITATIONS_ALLOWED=true، ثم ادعُ المستخدمين من داخل مؤسسة (Organization) أو عبر لوحة /admin. يتلقى المستخدمون المدعوون دعوة ويمكنهم التسجيل حتى مع إغلاق التسجيل العام، مما يمنع إساءة استخدام نقطة النهاية هذه.

هل يمكنني دفع ثمن الـ VPS دون تقديم إثبات هوية؟

نعم. ChainVPS بلا KYC ويقبل الدفع بالعملات المشفرة، لذا فإن الخادم الذي يحتفظ بخزائنك المشفّرة غير مرتبط بهويتك القانونية ولا بمعالج بطاقات قد يجمّد الحساب.

أطلق فورًا Vaultwarden
خلال الـ60 ثانية القادمة.

نطاق غير محدود · حماية DDoS مشمولة · 21 عملة رقمية · بدون KYC.