SSD Nodes Learn 🎉 VPS از $5.50/ماه
راهنماها Matt Connorتوسط Matt Connor · به‌روزرسانی شده 2026-08-13

تفاوت Vaultwarden و Bitwarden برای میزبانی شخصی

نسخه رسمی Bitwarden به 12 کانتینر و 2 GB رم نیاز دارد اما Vaultwarden با زبان Rust و یک کانتینر اجرا می‌شود. در این مطلب بررسی می‌کنیم کدام گزینه برای VPS شما مناسب‌تر است.

تفاوت واقعی Vaultwarden و Bitwarden در حالت self-hosted

انتخاب بین Vaultwarden و نسخه self-hosted از Bitwarden، در واقع انتخاب بین دو سرور است که از API کلاینت یکسانی استفاده می‌کنند، نه انتخاب بین دو مدیر رمز عبور متفاوت. پشته نرم‌افزاری رسمی Bitwarden شامل حدود 12 کانتینر است که پشت یک Nginx اجرا می‌شوند، داده‌ها را در Microsoft SQL Server ذخیره می‌کند و به یک شناسه نصب (installation ID) وابسته است که باید با یک آدرس ایمیل ثبت شود. در مقابل، Vaultwarden یک پیاده‌سازی غیررسمی از API کلاینت Bitwarden است که با زبان Rust نوشته شده و به صورت یک کانتینر واحد در کنار یک فایل SQLite اجرا می‌شود. افزونه مرورگر و اپلیکیشن موبایل شما تفاوتی بین این دو قائل نمی‌شوند، زیرا هر دو به endpointهای یکسانی پاسخ می‌دهند.

رمزنگاری در هر دو حالت کاملاً یکسان است. کلاینت‌های Bitwarden پیش از خروج هرگونه داده از دستگاه، vault را رمزنگاری می‌کنند؛ بنابراین سرور تنها داده‌های رمزنگاری‌شده‌ای (blobs) را ذخیره می‌کند که قادر به خواندن آن‌ها نیست و فرمت vault در هر دو حالت متعلق به Bitwarden است. تفاوت اصلی در میزان منابع سخت‌افزاری مورد نیاز، مسئول نگهداری کد، ویژگی‌های پولی و نحوه پشتیبان‌گیری از داده‌هاست.

فایل README پروژه Vaultwarden به صراحت وضعیت آن را بیان می‌کند: «این پروژه با Bitwarden یا شرکت Bitwarden, Inc. مرتبط نیست.» این یک پروژه داوطلبانه است که هیچ میز پشتیبانی یا ضمانتی ندارد. یکی از توسعه‌دهندگان فعال این پروژه در شرکت Bitwarden مشغول به کار است و در زمان شخصی خود به این پروژه کمک می‌کند که این موضوع یک لطف شخصی محسوب می‌شود و نه تأیید رسمی پروژه توسط شرکت.

سه پشته‌ای که می‌توانید نصب کنید

بیشتر مقایسه‌ها این نکته را نادیده می‌گیرند که Bitwarden دو محصول متفاوت برای self-hosting عرضه می‌کند.

Bitwarden standard. استقرار رسمی (vendor deployment) که توسط یک اسکریپت shell هدایت می‌شود.

curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" \
  && chmod 700 bitwarden.sh
./bitwarden.sh install

نصب‌کننده از شما دامنه، درخواست گواهی Let's Encrypt، نام دیتابیس، و یک شناسه و کلید نصب را می‌خواهد که با وارد کردن آدرس ایمیل از https://bitwarden.com/host دریافت می‌کنید. سپس ./bitwarden.sh start ایمیج‌ها را دریافت کرده و پشته را بالا می‌آورد. Bitwarden حداقل 2 گیگابایت رم و 12 گیگابایت فضای ذخیره‌سازی، و به صورت پیشنهادی 4 گیگابایت رم و 25 گیگابایت فضا را به همراه Docker Engine نسخه 26 یا جدیدتر با افزونه Compose توصیه می‌کند. دیتابیس یک ایمیج MSSQL Express است و این نسخه، دیتابیس رابطه‌ای را به 10 گیگابایت محدود می‌کند، مگر اینکه استقرار را به یک دیتابیس خارجی متصل کنید.

Bitwarden lite. این همان استقراری است که قبلاً Bitwarden Unified نامیده می‌شد. این محصول در دسامبر 2025 از حالت بتا خارج و تغییر نام یافت. شامل یک کانتینر برنامه به همراه دیتابیس انتخابی شماست:

services:
  bitwarden:
    depends_on:
      - db
    env_file:
      - settings.env
    image: ghcr.io/bitwarden/lite
    restart: always
    ports:
      - "80:8080"
    volumes:
      - bitwarden:/etc/bitwarden
  db:
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "super_strong_password"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
    image: mariadb:10
    restart: always
    volumes:
      - data:/var/lib/mysql
volumes:
  bitwarden:
  data:

این نسخه از MariaDB یا MySQL، PostgreSQL، SQLite و MSSQL پشتیبانی می‌کند و به 200 مگابایت رم و 1 گیگابایت فضای ذخیره‌سازی نیاز دارد. دو نکته در مستندات خود Bitwarden ذکر شده است: این نسخه برای استفاده شخصی و آزمایشگاه‌های خانگی (home labs) مستند شده است، نه برای استفاده تجاری، و هیچ پشتیبان‌گیری خودکاری از دیتابیس انجام نمی‌دهد، بنابراین این وظیفه کاملاً بر عهده شماست.

Vaultwarden. یک کانتینر، مستقیماً از فایل README پروژه:

docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 127.0.0.1:8000:80 \
  vaultwarden/server:latest

خط publish پورت 8000 را فقط به loopback متصل می‌کند و این کار عمدی است. Vaultwarden پروتکل HTTP ساده را ارائه می‌دهد و انتظار دارد یک reverse proxy در مقابل آن، TLS (امنیت لایه انتقال) را terminate کند. TLS در اینجا اختیاری نیست: web vault رمزنگاری خود را با WebCrypto API مرورگر انجام می‌دهد که مرورگرها آن را فقط در یک بستر امن (secure context) ارائه می‌دهند؛ بنابراین روی http ساده، صفحه ورود پیش از آنکه درخواستی به سرور شما برسد، در مرورگر با خطا مواجه می‌شود. راهنمای کامل نصب Vaultwarden به بررسی پروکسی و گواهی می‌پردازد.

میزان مصرف رم Vaultwarden در مقایسه با نسخه self-hosted بیت‌واردن چقدر است؟

حداقل‌های اعلام‌شده توسط فروشنده، نشان‌دهنده شرایطی است که نصب‌کننده تحت آن اجرا نمی‌شود، نه وزن واقعی نرم‌افزار. ردیف‌های زیر از docker stats --no-stream در نصب‌های بدون فعالیت (idle)، با یک کاربر، یک vault کوچک و بدون پیوست، روی یک سیستم Ubuntu 24.04 با 4 GB رم استخراج شده‌اند. دیسک شامل ایمیج‌ها به علاوه دایرکتوری داده پس از اولین اجرای موفق است.

ChartIdle memory, container count and disk, measured on one Ubuntu 24.04 box
The data behind this chart
[
  {
    "label": "Vaultwarden (SQLite)",
    "idle_ram_mb": 58,
    "containers": 1,
    "disk_gb": 0.4
  },
  {
    "label": "Bitwarden lite + MariaDB",
    "idle_ram_mb": 470,
    "containers": 2,
    "disk_gb": 1.6
  },
  {
    "label": "Bitwarden standard (MSSQL)",
    "idle_ram_mb": "2,400",
    "containers": 12,
    "disk_gb": 6.5
  }
]

میزان مصرف رم Vaultwarden در حالت بدون فعالیت در یک کانتینر تکی برابر با 58 مگابایت بود. پشته استاندارد بیت‌واردن در حالت بدون فعالیت نزدیک به 2,400 مگابایت در 12 کانتینر مصرف داشت که بخش عمده آن مربوط به کانتینر MSSQL است. نسخه Bitwarden lite با کانتینر MariaDB خود، در میانه این دو و در حدود 470 مگابایت قرار گرفت. پیش از اعتماد به این ارقام، همان دستور را روی سیستم خود اجرا کنید، زیرا این اعداد با تعداد کاربران، پیوست‌ها و ترافیک همگام‌سازی تغییر می‌کنند و MSSQL با گذشت زمان، فضای کاری (working set) خود را افزایش می‌دهد.

برداشت عملی برای یک VPS کوچک: Vaultwarden با SQLite روی یک پلن 1 GB به راحتی اجرا می‌شود، اما پشته استاندارد بیت‌واردن در آن اجرا نخواهد شد. روی یک پلن 2 GB، پشته استاندارد به حداقل‌های مستندشده می‌رسد و فضای بسیار کمی برای سیستم‌عامل باقی می‌گذارد، بنابراین فعال شدن OOM Killer (قاتل کمبود حافظه) هسته لینوکس به یک رویداد محتمل تبدیل می‌شود. هنگامی که این اتفاق می‌افتد، dmesg خطی را چاپ می‌کند که نام فرآیند کشته‌شده را نشان می‌دهد و در این پشته، معمولاً آن فرآیند sqlservr است. برای استقرار استاندارد، 4 GB رم در نظر بگیرید.

کدام ویژگی‌های پولی در Vaultwarden رایگان هستند؟

اجرای سرور Bitwarden هزینه‌ای ندارد، اما ویژگی‌های پولی تا زمانی که فایل مجوز (licence) را بارگذاری نکنید، قفل می‌مانند. حساب‌های کاربری Premium و تمام سطوح سازمانی پولی (Families، Teams، Enterprise) به این فایل نیاز دارند. شما این فایل را از طریق web vault ابری، در بخش Settings و سپس Subscription برای حساب شخصی، یا از طریق Admin Console در بخش Billing و سپس Subscription برای سازمان دریافت کرده و در نمونه (instance) خود بارگذاری می‌کنید. مجوزهای سازمانی بر اساس installation ID ذخیره‌شده در ./bwdata/env/global.override.env صادر می‌شوند. بنابراین، یک سازمان self-hosted همچنان دارای اشتراک پولی است و برای امور مالی با سرویس ابری Bitwarden در ارتباط است.

Vaultwarden همان ویژگی‌ها را بدون نیاز به مجوز و اشتراک فعال می‌کند. ویکی این پروژه آن‌ها را فهرست کرده است:

  • سازمان‌ها، مجموعه‌ها (collections) و گروه‌ها
  • پیوست فایل
  • ورود دومرحله‌ای با ایمیل، Duo، YubiKey و FIDO2
  • دسترسی اضطراری (Emergency Access)
  • سرویس Bitwarden Send
  • کلیدهای API شخصی
  • احراز هویت SSO از طریق OpenID Connect

SSO جدیدترین مورد در این فهرست است و با SSO_ENABLED، SSO_AUTHORITY، SSO_CLIENT_ID و SSO_CLIENT_SECRET پیکربندی می‌شود. این قابلیت فقط ورود به سیستم را احراز هویت می‌کند. ویکی به‌صراحت بیان می‌کند که همچنان به master password نیاز است و این رمز عبور توسط identity provider شما کنترل نمی‌شود، زیرا آن رمز عبور، کلیدی را تولید می‌کند که vault را رمزگشایی می‌کند. مقدار SSO_AUTHORITY را روی discovery issuer مربوط به یک identity provider خودمیزبان Authentik تنظیم کنید؛ کاربران در آنجا وارد می‌شوند و سپس با master password خود قفل vault را باز می‌کنند. این مقدار باید با فیلد issuer که توسط discovery endpoint بازگردانده می‌شود، بدون پسوند /.well-known/openid-configuration در انتها، مطابقت داشته باشد.

آنچه با Vaultwarden دریافت نمی‌کنید، یک شرکت پشتیبان (vendor) است. Bitwarden دارای گواهینامه‌های SOC 2 Type 2 و ISO 27001 است، گزارش‌های حسابرسی شخص ثالث را منتشر می‌کند و یک برنامه bug bounty خصوصی در HackerOne اجرا می‌نماید. این موارد کد و سرویس Bitwarden را پوشش می‌دهند، نه سروری که شما نصب کرده‌اید؛ اما اگر یک حسابرس به دنبال یک تأمین‌کننده رسمی برای مدیریت رمز عبور شما باشد، توجیه استفاده از یک پیاده‌سازی داوطلبانه دشوار خواهد بود.

آیا برنامه‌های رسمی Bitwarden با Vaultwarden کار می‌کنند؟

بله. Vaultwarden رابط برنامه‌نویسی (API) کلاینت را پیاده‌سازی می‌کند، بنابراین افزونه‌های مرورگر، برنامه‌های دسکتاپ، برنامه‌های موبایل و web vault همراه آن، همگی با آن سازگار هستند. در هر کلاینت، باید پیش از ورود به سیستم، آدرس URL سرور self-hosted خود را در صفحه تنظیمات محیط (environment screen) وارد کنید، نه پس از آن.

یک قابلیت نیاز به پیکربندی اضافی دارد: اعلان‌های فشاری (push notifications) برای برنامه‌های موبایل. بدون این قابلیت، برنامه تنها زمانی که آن را باز می‌کنید یا طبق زمان‌بندی داخلی خود همگام‌سازی می‌شود؛ بنابراین رمز عبوری که در لپ‌تاپ تغییر داده‌اید، تا زمانی که برنامه را در گوشی باز نکنید، در آنجا ظاهر نخواهد شد. Vaultwarden می‌تواند از سرویس push relay شرکت Bitwarden استفاده کند، که برای این کار به یک installation ID و کلید از همان صفحه‌ای که در https://bitwarden.com/host برای نصب‌کننده رسمی استفاده می‌شود، نیاز دارد.

PUSH_ENABLED=true
PUSH_INSTALLATION_ID=<your installation id>
PUSH_INSTALLATION_KEY=<your installation key>

سرورهای واقع در منطقه EU همچنین به PUSH_RELAY_URI=https://api.bitwarden.eu و PUSH_IDENTITY_URI=https://identity.bitwarden.eu نیاز دارند. ویکی پروژه دو نکته مهم را مستند کرده است که پیش از صرف یک ساعت زمان برای عیب‌یابی، باید از آن‌ها آگاه باشید. برنامه‌ای که از F-Droid یا Neo Store نصب شده باشد، فاقد پشتیبانی از Firebase است و هرگز اعلان فشاری دریافت نخواهد کرد، فارغ از اینکه سرور چه تنظیماتی داشته باشد. برنامه‌ای که پیش از نسخه 1.30.2 از Vaultwarden متصل شده باشد، باید داده‌هایش پاک شود تا بتواند یک push token جدید ثبت کند.

امنیت یک پیاده‌سازی مجدد چقدر است؟

تاریخچه حسابرسی Bitwarden طولانی و عمومی است. Cure53 آن را در سال‌های 2018، 2021، 2022 و 2023 بررسی کرده است. IOActive و Mandiant کلاینت‌ها را در سال 2024 ارزیابی کردند، Fracture Labs ارزیابی‌های وب و شبکه را در طول سال‌های 2024 و 2025 پوشش داد، Unit 42 اپلیکیشن‌های موبایل را در سال 2025 ارزیابی کرد و گروه رمزنگاری کاربردی ETH Zurich نیز رمزنگاری آن را در سال 2025 بررسی نمود.

Vaultwarden نیز توسط اشخاص ثالث مورد بررسی قرار گرفته است، که این موضوع برای کسانی که تصور می‌کنند هیچ‌کس آن را بررسی نمی‌کند، تعجب‌آور است. اداره فدرال امنیت اطلاعات آلمان (BSI) از شرکت mgm security partners خواست تا آن را بین فوریه و مه 2024 تحت پروژه تحلیل کد Caos 3.0 آزمایش کنند؛ این بررسی دو یافته را در سطح بالا رتبه‌بندی کرد. به‌طور جداگانه، ERNW یک آسیب‌پذیری دور زدن احراز هویت را گزارش کرد که نسخه‌های پایین‌تر از 1.32.5 را تحت تأثیر قرار می‌داد (CVE-2024-55225) و در نوامبر 2024 برطرف شد. نسخه 1.37.0 در ژوئیه 2026، اصلاحاتی را برای SSRF (جعل درخواست سمت سرور) از طریق endpoint آیکون، دسترسی متقاطع به رمزنگاری سازمان‌ها و دور زدن سیاست‌های سازمانی در واردات دایرکتوری ارائه کرد.

این تاریخچه نشان‌دهنده پروژه‌ای با یک فرآیند افشای کارآمد است. همچنین به سطحی اشاره دارد که دائماً در آن ظاهر می‌شود: صفحه مدیریت. بنابراین با آن صفحه به‌عنوان یک بخش حساس رفتار کنید. این صفحه تا زمانی که ADMIN_TOKEN تنظیم نشده باشد غیرفعال می‌ماند و شما باید به‌جای توکن متنی ساده، یک هش ذخیره کنید.

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

این دستور یک رشته Argon2 PHC (فرمت مسابقه هش کردن رمز عبور) چاپ می‌کند تا آن را در ADMIN_TOKEN جای‌گذاری کنید. پیش از فعال‌سازی صفحه مدیریت، HTTPS را فعال کنید، زیرا توکن در درخواست ارسال می‌شود و یک توکن متنی ساده در یک اتصال HTTP معمولی توسط هر چیزی در مسیر قابل خواندن است. تا حد امکان /admin را از اینترنت عمومی دور نگه دارید و آن را با سخت‌سازی‌های معمول میزبان مانند محدود کردن دسترسی SSH روی سرور همراه کنید.

چه چیزی با تغییر API رسمی از کار می‌افتد

این ریسکی است که افراد آن را دست‌کم می‌گیرند. Bitwarden کلاینت‌ها را عرضه می‌کند و این کلاینت‌ها شبانه از طریق فروشگاه‌های اپلیکیشن به‌روزرسانی می‌شوند. Vaultwarden باید خود را با این تغییرات هماهنگ کند. هنگامی که یک نسخه از کلاینت قرارداد API را تغییر می‌دهد، یک Vaultwarden به‌روزرسانی‌نشده با کلاینتی مواجه می‌شود که تغییر کرده است؛ در نتیجه، ورود به سیستم یا همگام‌سازی در دستگاه‌هایی که حتی به آن‌ها دست نزده‌اید، با خطا مواجه می‌شود.

یادداشت‌های انتشار (release notes) حاوی یک مثال عینی هستند. در Vaultwarden 1.37.0 آمده است: «این به‌روزرسانی برای پشتیبانی از کلاینت‌های نسخه 2026.7.0 و بالاتر الزامی است؛ لطفاً پیش از گزارش هرگونه مشکل با این نسخه‌ها، ابتدا سرور خود را به‌روزرسانی کنید.» تا اوت 2026، نسخه فعلی 1.37.1 است که در 29 ژوئیه 2026 منتشر شده است.

دو عادت باعث می‌شود این فرآیند بدون دردسر باقی بماند. یک تگ ایمیج خاص را به جای latest پین کنید تا یک pull خودکار نتواند سرور شما را ساعت 3 بامداد تغییر دهد. سپس فید انتشار را زیر نظر داشته باشید و به‌روزرسانی را به‌صورت آگاهانه انجام دهید؛ ابتدا یادداشت‌ها را بخوانید، زیرا تغییرات ساختارشکن (breaking changes) فقط در آنجا ذکر می‌شوند و نه جای دیگر. برای مثال، نسخه 1.35.5 تمامی توکن‌های «مرا به خاطر بسپار» (remember token) مربوط به احراز هویت دو مرحله‌ای را هنگام ارتقا باطل کرد که باعث شد کاربران از مرحله‌ای که تصور می‌کردند ذخیره شده است، خارج (log out) شوند.

استقرار استاندارد Bitwarden نیز تصویر آینه‌ای از این مشکل را دارد. ارتقاها از طریق ./bitwarden.sh updateself و ./bitwarden.sh update انجام می‌شوند و به‌روزرسانی، مهاجرت‌های دیتابیس (database migrations) را اعمال می‌کند. بک‌آپی که پیش از مهاجرت گرفته شده است، برای بازگشت به عقب (rollback) طرح‌واره (schema) پس از آن مناسب نیست؛ بنابراین بک‌آپ بگیرید و نسخه‌ای که در آن زمان از آن بک‌آپ گرفته‌اید را یادداشت کنید.

پشتیبان‌گیری، جایی که کاربران واقعاً vaultهای خود را از دست می‌دهند

دایرکتوری داده‌های Vaultwarden همان سرور شماست. این موارد را حفظ کنید:

  • db.sqlite3
  • تمام فایل‌های rsa_key*، شامل rsa_key.pem و rsa_key.der
  • attachments/
  • config.json
  • sends/

هنگامی که کانتینر در حال اجراست، db.sqlite3 را با cp کپی نکنید. ممکن است SQLite در میانه عملیات نوشتن باشد؛ در نتیجه کپی حاصل ممکن است یک دیتابیس خراب باشد که تا زمان بازیابی، سالم به نظر می‌رسد. به‌جای آن از API پشتیبان‌گیری آنلاین استفاده کنید:

sqlite3 data/db.sqlite3 ".backup '/path/to/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"

از نسخه 1.32.1 به بعد، یک دستور داخلی /vaultwarden backup نیز در ایمیج وجود دارد. در هر صورت، تا زمانی که snapshot را منتقل نکرده‌اید، روی همان دیسکی قرار دارد که داده‌های اصلی قرار دارند؛ بنابراین با استفاده از restic snapshots to off-site storage آن را طبق یک زمان‌بندی مشخص به خارج از سرور منتقل کنید. فایل‌های rsa_key به اندازه دیتابیس اهمیت دارند: سرور توکن‌های نشست (session tokens) خود را با آن کلید امضا می‌کند. بنابراین اگر دیتابیس را در کنار یک کلید تازه تولید شده بازیابی کنید، نشست همه کاربران منقضی شده و دعوت‌نامه‌های سازمانی که در جریان بوده‌اند، از کار می‌افتند.

نسخه استاندارد Bitwarden پشتیبان‌های بیشتری از خود تهیه می‌کند. کانتینر mssql هر شب از دیتابیس در مسیر ./bwdata/mssql/backups پشتیبان می‌گیرد و تا زمانی که کانتینر در حال اجرا باشد، آن‌ها را برای 30 روز نگه می‌دارد. شما همچنین می‌توانید یک پشتیبان‌گیری دستی را اجرا کنید:

docker exec -i bitwarden-mssql /backup-db.sh

دایرکتوری‌هایی که باید حفظ شوند عبارتند از ./bwdata/env (متغیرهای محیطی، شامل رمزهای عبور دیتابیس و گواهی‌ها)، ./bwdata/core/attachments، ./bwdata/mssql/data و ./bwdata/core/aspnet-dataprotection. مورد آخر همان چیزی است که افراد فراموش می‌کنند. این دایرکتوری حاوی اطلاعات محافظت از داده‌ها در سطح فریم‌ورک، شامل توکن‌های احراز هویت و برخی ستون‌های دیتابیس است؛ بنابراین بازیابی دیتابیس بدون آن، باعث می‌شود ستون‌های محافظت‌شده غیرقابل خواندن شوند. نسخه Bitwarden lite هیچ پشتیبان‌گیری خودکاری انجام نمی‌دهد، بنابراین انتخاب نسخه lite به این معناست که باید دقیقاً مانند Vaultwarden، مسئولیت زمان‌بندی تهیه dump را بر عهده بگیرید.

مهاجرت در هر دو جهت

عملیات مهاجرت از طریق کلاینت‌ها انجام می‌شود، نه سرورها؛ زیرا قابلیت‌های export و import جزو ویژگی‌های کلاینت هستند. این موضوع باعث می‌شود که هر دو جهت مهاجرت، رویه یکسانی داشته باشند.

هر کاربر داده‌ها را از web vault یا اپلیکیشن دسکتاپ export می‌کند، در سرور جدید یک حساب کاربری می‌سازد و سپس داده‌ها را import می‌کند. فرمت‌های موجود عبارتند از متن ساده .json، متن ساده .csv، رمزنگاری‌شده .json و یک .zip که شامل JSON به همراه فایل‌های پیوست برای vaultهای شخصی است. کارت‌ها، هویت‌ها، passkeyهای ذخیره‌شده و کلیدهای SSH فقط در فرمت‌های JSON حفظ می‌شوند، بنابراین مهاجرت با CSV باعث حذف بی‌سروصدای آن‌ها می‌شود. هیچ‌کدام از فرمت‌های export شامل آیتم‌های سطل زباله (trash) یا Sends نیستند و داده‌های متعلق به سازمان نیز بخشی از export شخصی محسوب نمی‌شوند.

با یک export متن ساده مانند یک راز زنده رفتار کنید، زیرا دقیقاً همین است: کل vault شما به صورت متن آشکار روی دیسک. آن را export کنید، import کنید و در همان نشست حذفش کنید. هرگز آن را از طریق ایمیل یا چت ارسال نکنید.

یک دام رایج در حین مهاجرت وجود دارد. یک export رمزنگاری‌شده که به حساب کاربری شما متصل است، قابل import به یک حساب دیگر نیست و جابه‌جایی بین سرورها به معنای تغییر حساب کاربری است. به جای آن، گزینه export محافظت‌شده با رمز عبور (password protected) را انتخاب کنید که قابل انتقال است.

مهاجرت از Vaultwarden به نسخه استاندارد Bitwarden جهت دشوارتری است، زیرا ساختار سازمانی در یک فایل export منتقل نمی‌شود. شما باید سازمان را در سرور جدید دوباره ایجاد کنید، کاربران را مجدداً دعوت کنید و هر کاربر باید vault شخصی خود را import کند. برای این کار یک بازه زمانی نگهداری (maintenance window) در نظر بگیرید تا در روز انجام کار با مشکل مواجه نشوید.

کدام یک را باید اجرا کنید؟

اگر یک کاربر هستید، یا برای خانواده یا یک home lab روی یک VPS با 1 GB یا 2 GB رم، Vaultwarden را اجرا کنید. قابلیت‌های Organisations، Emergency Access و Send در آن رایگان هستند، مصرف حافظه در حالت idle تقریباً معادل یک تب مرورگر است و پشتیبان‌گیری از آن شامل یک فایل SQLite به همراه یک دایرکتوری کوچک می‌شود. همین ترکیب باعث شده است که این سرویس در مدیریت رمز عبور به صورت self-hosted بی‌رقیب باشد.

زمانی که افراد دیگری به صورت حرفه‌ای به آن وابسته هستند، سرور رسمی Bitwarden را اجرا کنید: برای شرکتی که به قرارداد پشتیبانی نیاز دارد، الزامات انطباقی (compliance) که نام فروشنده در آن‌ها ذکر شده، یا ویژگی‌های سازمانی که از قبل بابت آن‌ها هزینه پرداخت کرده‌اید. برای استقرار استاندارد، 4 GB رم اختصاص دهید و فایل لایسنس و installation ID را به عنوان بخشی از فرآیند استقرار در نظر بگیرید، نه صرفاً کاغذبازی اداری.

نسخه Bitwarden lite در یک وضعیت میانی و نامناسب قرار دارد. این نسخه کد رسمی فروشنده با حجم بسیار کمتر است که جذابیت واقعی دارد، اما Bitwarden آن را برای استفاده شخصی و home lab مستند کرده و فاقد پشتیبان‌گیری خودکار است. در این حالت، شما بار عملیاتی Vaultwarden را به دوش می‌کشید بدون اینکه از مجموعه ویژگی‌های رایگان آن بهره‌مند شوید. زمانی این گزینه را انتخاب کنید که کد فروشنده برایتان از ویژگی‌ها مهم‌تر است و مشکلی با مدیریت دستی پایگاه داده ندارید.

اگر هنوز در حال تصمیم‌گیری برای سایر سرویس‌هایی هستید که قرار است روی این سرور میزبانی شوند، لیست کوتاه‌شدهٔ سرویس‌های self-hosting این انتخاب را در کنار سایر سرویس‌هایی قرار می‌دهد که برای استفاده از همان مقدار رم با یکدیگر رقابت می‌کنند.

FAQ

آیا Vaultwarden برای استفاده به عنوان یک مدیر رمز عبور واقعی به اندازه کافی امن است؟

برای استفاده شخصی و خانوادگی، بله، با رعایت شرایط. کلاینت‌ها قبل از رسیدن داده‌ها به سرور، vault را رمزنگاری می‌کنند، بنابراین Vaultwarden هرگز رمز عبور اصلی یا هیچ متن ساده‌ای (plaintext) را مشاهده نمی‌کند. این نرم‌افزار توسط نهادهای خارجی بررسی شده است: BSI بین فوریه و مه 2024 توسط mgm security partners آن را تست کرد و ERNW یک حفره دور زدن احراز هویت را گزارش کرد که در نسخه 1.32.5 رفع شد. نسخه را به‌روز نگه دارید، صفحه مدیریت را غیرفعال کنید یا آن را پشت یک ADMIN_TOKEN با هش Argon2 قرار دهید و سرویس را فقط از طریق HTTPS ارائه دهید. کسب‌وکارهایی که به پشتیبانی فروشنده یا مستندات حسابرسی نیاز دارند، باید سرور رسمی Bitwarden را اجرا کنند.

Vaultwarden در مقایسه با Bitwarden خودمیزبان (self-hosted) به چه مقدار RAM نیاز دارد؟

در نصب‌های بدون بار کاری که با docker stats --no-stream اندازه‌گیری شده‌اند، Vaultwarden با SQLite حدود 58 مگابایت در یک کانتینر مصرف کرد، در حالی که استقرار استاندارد Bitwarden نزدیک به 2,400 مگابایت در 12 کانتینر بود که بخش عمده آن مربوط به دیتابیس MSSQL است. Bitwarden مقدار 2 گیگابایت را به عنوان حداقل و 4 گیگابایت را به عنوان مقدار پیشنهادی برای پشته استاندارد، و 200 مگابایت را برای نسخه Bitwarden lite مستند کرده است. Vaultwarden روی یک VPS با 1 گیگابایت رم با فضای خالی اجرا می‌شود.

آیا برای خودمیزبانی (self-hosting) به لایسنس Bitwarden نیاز دارم؟

برای یک vault فردی رایگان، خیر. اجرای سرور رایگان است. برای باز کردن ویژگی‌های پریمیوم فردی و هرگونه طرح سازمانی پولی که شامل خانواده‌ها، تیم‌ها و سازمان‌های بزرگ می‌شود، به یک فایل لایسنس نیاز است. شما آن را از web vault ابری دانلود کرده و در نمونه (instance) خود بارگذاری می‌کنید؛ لایسنس‌های سازمانی بر اساس installation ID ذخیره‌شده در ./bwdata/env/global.override.env صادر می‌شوند. Vaultwarden به هیچ لایسنسی نیاز ندارد و ویژگی‌های سازمانی را به‌صورت پیش‌فرض فعال می‌کند.

آیا می‌توانم بعداً از Vaultwarden به Bitwarden یا برعکس مهاجرت کنم؟

بله، در هر دو جهت و از طریق کلاینت‌ها امکان‌پذیر است. هر کاربر vault خود را از طریق web vault یا اپلیکیشن دسکتاپ اکسپورت کرده و پس از ایجاد حساب کاربری در سرور جدید، آن را ایمپورت می‌کند. خروجی .zip شامل فایل‌های پیوست برای vaultهای فردی است و فرمت JSON شامل کارت‌ها، هویت‌ها، passkeyها و کلیدهای SSH می‌باشد. آیتم‌های موجود در سطل زباله و قابلیت Sends در هیچ فرمت اکسپورتی وجود ندارند و آیتم‌های متعلق به سازمان باید به‌طور جداگانه توسط یک مالک اکسپورت شوند؛ بنابراین برای بازسازی سازمان و دعوت مجدد کاربران در سرور جدید برنامه‌ریزی کنید.

#vaultwarden#bitwarden#password-manager#self-hosting#docker