SSD Nodes Learn Hosting plans →
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-26

Vaultwarden বনাম Bitwarden: কোনটি আপনার সার্ভারের জন্য

Bitwarden-এর জন্য 2 জিবি র‍্যাম ও অনেক কন্টেইনার প্রয়োজন হয়। অন্যদিকে Vaultwarden একটি মাত্র কন্টেইনারে চলে। আপনার VPS-এর জন্য কোনটি উপযুক্ত তা এই নিবন্ধে বিস্তারিত জানুন।

Vaultwarden এবং Bitwarden self-hosted আসলে কী

Vaultwarden বনাম Bitwarden self-hosted-এর মধ্যে নির্বাচন করা মানে দুটি ভিন্ন পাসওয়ার্ড ম্যানেজারের মধ্যে নির্বাচন করা নয়, বরং একই client API ব্যবহারকারী দুটি সার্ভারের মধ্যে একটিকে বেছে নেওয়া। Bitwarden-এর নিজস্ব স্ট্যাক nginx-এর পেছনে প্রায় এক ডজন কন্টেইনার চালায়, সবকিছু Microsoft SQL Server-এ জমা রাখে এবং এটি একটি installation ID-এর সাথে যুক্ত যা আপনাকে ইমেইল ঠিকানার মাধ্যমে রেজিস্টার করতে হয়। Vaultwarden হলো Bitwarden client API-এর একটি অনানুষ্ঠানিক পুনর্নির্মাণ, যা Rust-এ লেখা এবং একটি SQLite ফাইলের বিপরীতে একটি মাত্র কন্টেইনার হিসেবে চলে। আপনার ব্রাউজার এক্সটেনশন বা ফোন এদের মধ্যে পার্থক্য করতে পারে না, কারণ উভয়ই একই endpoint-এ সাড়া দেয়।

উভয় ক্ষেত্রেই এনক্রিপশন অভিন্ন। Bitwarden ক্লায়েন্টরা ডিভাইস থেকে কোনো তথ্য বের হওয়ার আগেই ভল্ট এনক্রিপ্ট করে ফেলে, তাই সার্ভার এমন সব ডেটা জমা রাখে যা সে পড়তে পারে না এবং উভয় ক্ষেত্রেই ভল্ট ফরম্যাটটি Bitwarden-এর মালিকানাধীন। পার্থক্য হলো আপনি কতটা শক্তিশালী মেশিন ভাড়া করছেন, কে কোড রক্ষণাবেক্ষণ করছে, কোন ফিচারের জন্য অর্থ প্রদান করতে হবে এবং আপনাকে কী ব্যাকআপ রাখতে হবে।

Vaultwarden-এর README ফাইলে এর অবস্থা সম্পর্কে সরাসরি বলা হয়েছে: "এই প্রজেক্টটি Bitwarden বা Bitwarden, Inc.-এর সাথে সম্পর্কিত নয়।" এটি একটি স্বেচ্ছাসেবক প্রজেক্ট যার কোনো সাপোর্ট ডেস্ক বা ওয়ারেন্টি নেই। একজন সক্রিয় মেইনটেইনার Bitwarden-এ কাজ করেন এবং ব্যক্তিগত সময়ে অবদান রাখেন, যা একটি সৌজন্যমূলক কাজ, কোনো আনুষ্ঠানিক অনুমোদন নয়।

যে তিনটি স্ট্যাক আপনি ইনস্টল করতে পারেন

অধিকাংশ তুলনামূলক বিশ্লেষণে এটি এড়িয়ে যাওয়া হয় যে Bitwarden দুটি ভিন্ন self-hosted পণ্য রিলিজ করে।

Bitwarden standard. এটি ভেন্ডর-সমর্থিত ডিপ্লয়মেন্ট, যা একটি shell script দ্বারা পরিচালিত হয়।

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 সার্টিফিকেট প্রয়োজন কি না, ডাটাবেসের নাম এবং একটি ইনস্টলেশন আইডি ও কি (key) জানতে চাইবে, যা আপনি একটি ইমেইল অ্যাড্রেস দিয়ে https://bitwarden.com/host থেকে সংগ্রহ করতে পারেন। এরপর ./bitwarden.sh start ইমেজগুলো পুল করে স্ট্যাকটি চালু করে। Bitwarden-এর ডকুমেন্টেশন অনুযায়ী নূন্যতম 2 GB RAM এবং 12 GB স্টোরেজ প্রয়োজন, তবে 4 GB RAM এবং 25 GB স্টোরেজ সুপারিশকৃত। এছাড়া Docker Engine 26 বা তার পরবর্তী সংস্করণ এবং Compose প্লাগইন থাকা আবশ্যক। এর ডাটাবেসটি একটি MSSQL Express ইমেজ, এবং এই সংস্করণে রিলেশনাল ডাটাবেসের সীমা 10 GB পর্যন্ত সীমাবদ্ধ, যদি না আপনি ডিপ্লয়মেন্টটিকে কোনো এক্সটার্নাল ডাটাবেসের দিকে নির্দেশ করেন।

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 MB RAM ও 1 GB স্টোরেজ দাবি করে। Bitwarden-এর নিজস্ব ডকুমেন্টেশনে দুটি সতর্কবার্তা দেওয়া হয়েছে। এটি ব্যবসায়িক ব্যবহারের পরিবর্তে ব্যক্তিগত ব্যবহার এবং হোম ল্যাবের জন্য তৈরি এবং এতে কোনো স্বয়ংক্রিয় ডাটাবেস ব্যাকআপ ব্যবস্থা নেই, তাই এই কাজটি সম্পূর্ণ আপনার দায়িত্ব।

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 (transport layer security) টার্মিনেশন করা হবে। এখানে TLS ঐচ্ছিক নয়: ওয়েব ভল্ট ব্রাউজারের WebCrypto API ব্যবহার করে এনক্রিপশন সম্পন্ন করে, যা ব্রাউজারগুলো শুধুমাত্র নিরাপদ কনটেক্সটেই উন্মুক্ত করে। তাই সাধারণ http সংযোগে ব্রাউজারে লগইন পেজটি লোড হওয়ার আগেই ব্যর্থ হবে, এমনকি আপনার সার্ভারে কোনো অনুরোধ পৌঁছানোর আগেই। সম্পূর্ণ Vaultwarden ইনস্টলেশন নির্দেশিকা-তে প্রক্সি এবং সার্টিফিকেটের বিষয়টি বিস্তারিত আলোচনা করা হয়েছে।

Bitwarden self-hosted-এর তুলনায় Vaultwarden কতটুকু RAM ব্যবহার করে?

ভেন্ডর কর্তৃক নির্ধারিত সর্বনিম্ন প্রয়োজনীয়তা কেবল নির্দেশ করে যে কোন কনফিগারেশনে ইনস্টলারটি চলবে না, কিন্তু এটি সফটওয়্যারটির প্রকৃত মেমোরি ব্যবহারের পরিমাপ নয়। নিচের সারিগুলো docker stats --no-stream থেকে নেওয়া হয়েছে, যেখানে প্রতিটি ইনস্টলেশনে একজন ব্যবহারকারী, একটি ছোট ভল্ট এবং কোনো অ্যাটাচমেন্ট নেই। পরীক্ষাটি 4 GB RAM বিশিষ্ট একটি Ubuntu 24.04 বক্সে চালানো হয়েছে। ডিস্ক ব্যবহারের পরিমাপটি ইমেজ এবং প্রথমবার সফলভাবে স্টার্ট হওয়ার পরবর্তী ডেটা ডিরেক্টরির ওপর ভিত্তি করে দেওয়া হয়েছে।

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 MB RAM ব্যবহার করে অলস অবস্থায় থাকে। স্ট্যান্ডার্ড Bitwarden স্ট্যাকটি 12 টি কন্টেইনার জুড়ে প্রায় 2,400 MB RAM ব্যবহার করে, যার সিংহভাগই MSSQL কন্টেইনারটি দখল করে রাখে। Bitwarden lite তার MariaDB কন্টেইনারসহ 470 MB RAM ব্যবহার করে। এই পরিসংখ্যানগুলোর ওপর আস্থা রাখার আগে আপনার নিজের বক্সে একই কমান্ড চালিয়ে দেখুন, কারণ ব্যবহারকারীর সংখ্যা, অ্যাটাচমেন্ট এবং সিঙ্ক ট্রাফিকের ওপর ভিত্তি করে এই মান পরিবর্তিত হয়। এছাড়া, MSSQL যত বেশি সময় ধরে চলে, তার ওয়ার্কিং সেট তত বাড়তে থাকে।

একটি ছোট VPS-এর জন্য বাস্তবসম্মত হিসাব হলো: SQLite-সহ Vaultwarden 1 GB RAM-এর প্ল্যানে অনায়াসেই চলে, যেখানে স্ট্যান্ডার্ড Bitwarden স্ট্যাকটি সেখানে স্টার্টই হবে না। 2 GB RAM-এর প্ল্যানে স্ট্যান্ডার্ড স্ট্যাকটি নথিবদ্ধ সর্বনিম্ন প্রয়োজনীয়তা পূরণ করলেও অপারেটিং সিস্টেমের জন্য খুব সামান্যই জায়গা অবশিষ্ট থাকে, ফলে কার্নেলের out of memory killer সক্রিয় হওয়ার সম্ভাবনা তৈরি হয়। এটি সক্রিয় হলে dmesg সেই প্রসেসটির নামসহ একটি লাইন প্রিন্ট করে যাকে এটি বন্ধ করেছে, এবং এই স্ট্যাকের ক্ষেত্রে সাধারণত সেটি হয় sqlservr। স্ট্যান্ডার্ড ডিপ্লয়মেন্টের জন্য 4 GB RAM বরাদ্দ করুন। যদি একই VPS-এ ভল্ট ছাড়াও অন্য সার্ভিস চালানোর পরিকল্পনা থাকে, তবে প্ল্যান নির্বাচনের আগে অন্য সার্ভিসগুলোর মেমোরি ব্যবহারের পরিমাণ হিসাব করে নিন। কারণ PhotoPrism বা Immich-এর মতো ফটো সার্ভার Vaultwarden-এর তুলনায় অনেক বেশি মেমোরি ব্যবহার করে। তবে সব সার্ভিসই যে এত বেশি মেমোরি খরচ করে তা নয়: যেমন Halcyon, যা Jellyfin লাইব্রেরিকে 90-এর দশকের রেন্টাল শপের মতো রূপ দেয়, এটি মূলত একটি ব্রাউজার ফ্রন্ট-এন্ড যা নিজস্ব ডেটাবেস ব্যবহারের পরিবর্তে মিডিয়া সার্ভারের ওপর নির্ভর করে। মেমোরিই একমাত্র বিবেচ্য বিষয় নয়, কারণ রিমোট ডেস্কটপ সেশনের জন্য RustDesk relay docker stats-এ খুব সামান্যই জায়গা নেয়, কিন্তু এটি আপনার প্ল্যানের ব্যান্ডউইথ ব্যবহারের সীমা দ্রুত শেষ করে ফেলতে পারে।

Vaultwarden-এ কোন পেইড ফিচারগুলো বিনামূল্যে পাওয়া যায়?

Bitwarden-এর সার্ভার চালানো সম্পূর্ণ বিনামূল্যে, কিন্তু লাইসেন্স ফাইল আপলোড না করা পর্যন্ত পেইড ফিচারগুলো লক করা থাকে। প্রিমিয়াম ইন্ডিভিজুয়াল অ্যাকাউন্ট এবং সব ধরনের পেইড অর্গানাইজেশন টায়ারের (Families, Teams, Enterprise) জন্য একটি লাইসেন্স প্রয়োজন হয়। আপনি ক্লাউড ওয়েব ভল্ট থেকে এটি ডাউনলোড করতে পারেন; ইন্ডিভিজুয়াল অ্যাকাউন্টের ক্ষেত্রে Settings-এর অধীনে Subscription অপশনে এবং অর্গানাইজেশনের ক্ষেত্রে Admin Console-এর অধীনে Billing ও Subscription অপশনে এটি পাওয়া যায়। এরপর সেই ফাইলটি আপনার নিজস্ব ইনস্ট্যান্সে আপলোড করতে হয়। অর্গানাইজেশন লাইসেন্সগুলো ./bwdata/env/global.override.env-এ সংরক্ষিত ইনস্টলেশন আইডি-র বিপরীতে ইস্যু করা হয়। তাই একটি সেলফ-হোস্টেড অর্গানাইজেশনকেও পেইড সাবস্ক্রিপশন বজায় রাখতে হয় এবং বিলিংয়ের জন্য Bitwarden-এর ক্লাউডের সাথে সংযুক্ত থাকতে হয়।

Vaultwarden কোনো লাইসেন্স বা সাবস্ক্রিপশন ছাড়াই এই ফিচারগুলো চালু করে দেয়। প্রজেক্ট উইকিতে এগুলোর তালিকা দেওয়া আছে:

  • অর্গানাইজেশন, কালেকশন এবং গ্রুপ
  • ফাইল অ্যাটাচমেন্ট
  • ইমেইল, Duo, YubiKey এবং FIDO2 ব্যবহার করে টু-স্টেপ লগইন
  • ইমার্জেন্সি অ্যাক্সেস
  • Bitwarden Send
  • পার্সোনাল API কি (keys)
  • OpenID Connect-এর মাধ্যমে SSO

এগুলোর মধ্যে SSO সবচেয়ে নতুন এবং এটি SSO_ENABLED, SSO_AUTHORITY, SSO_CLIENT_ID ও SSO_CLIENT_SECRET দিয়ে কনফিগার করা হয়। এটি শুধুমাত্র লগইন প্রক্রিয়াকে অথেন্টিকেট করে। উইকিতে স্পষ্টভাবে বলা আছে যে, মাস্টার পাসওয়ার্ড এখনও প্রয়োজন এবং এটি আপনার আইডেন্টিটি প্রোভাইডার দ্বারা নিয়ন্ত্রিত হয় না, কারণ এই পাসওয়ার্ড থেকেই সেই কি (key) তৈরি হয় যা ভল্ট ডিক্রিপ্ট করে। SSO_AUTHORITY-কে একটি সেলফ-হোস্টেড Authentik আইডেন্টিটি প্রোভাইডার-এর ডিসকভারি ইস্যুয়ারে পয়েন্ট করুন এবং ব্যবহারকারীরা সেখানে সাইন-ইন করার পর তাদের মাস্টার পাসওয়ার্ড দিয়ে ভল্ট আনলক করবেন। এই ভ্যালুটিকে অবশ্যই ডিসকভারি এন্ডপয়েন্ট থেকে আসা issuer ফিল্ডের সাথে মিলতে হবে, তবে শেষে কোনো /.well-known/openid-configuration সাফিক্স থাকা যাবে না।

Vaultwarden ব্যবহার করলে আপনি যা পাবেন না তা হলো একজন ভেন্ডর। Bitwarden-এর SOC 2 Type 2 এবং ISO 27001 সার্টিফিকেশন রয়েছে, তারা থার্ড-পার্টি অডিট রিপোর্ট প্রকাশ করে এবং একটি প্রাইভেট HackerOne বাগ বাউন্টি প্রোগ্রাম চালায়। এগুলো আপনার ইনস্টল করা সার্ভারের পরিবর্তে Bitwarden-এর কোড এবং সার্ভিসকে কভার করে। তবে যদি কোনো অডিটর আপনার পাসওয়ার্ড ম্যানেজারের পেছনে একজন নির্দিষ্ট সরবরাহকারী বা ভেন্ডর দেখতে চায়, তবে একটি ভলান্টিয়ার রিমপ্লিমেন্টেশন নিয়ে আলোচনা করা বেশ কঠিন হতে পারে।

অফিসিয়াল Bitwarden অ্যাপগুলো কি Vaultwarden-এর সাথে কাজ করে?

হ্যাঁ। Vaultwarden ক্লায়েন্ট API সমর্থন করে, তাই ব্রাউজার এক্সটেনশন, ডেস্কটপ অ্যাপ, মোবাইল অ্যাপ এবং এর সাথে থাকা web vault সবই এর সাথে কাজ করে। প্রতিটি ক্লায়েন্টে লগ ইন করার আগে, এনভায়রনমেন্ট স্ক্রিনে আপনাকে self-hosted সার্ভারের URL সেট করতে হবে, লগ ইন করার পরে নয়।

একটি ফিচারের জন্য অতিরিক্ত কনফিগারেশন প্রয়োজন: মোবাইল অ্যাপে পুশ নোটিফিকেশন। এটি ছাড়া অ্যাপটি খোলার সময় বা নির্দিষ্ট সময় অন্তর নিজে থেকে সিঙ্ক হয়। ফলে ল্যাপটপে পাসওয়ার্ড পরিবর্তন করলে তা ফোনে সাথে সাথে দেখা যাবে না, যতক্ষণ না আপনি অ্যাপটি খুলছেন। Vaultwarden, Bitwarden-এর পুশ রিলে ব্যবহার করতে পারে, তবে এর জন্য অফিসিয়াল ইনস্টলার যে https://bitwarden.com/host পেজ ব্যবহার করে, সেখান থেকে একটি installation ID এবং key প্রয়োজন।

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 সাপোর্ট থাকে না, তাই সার্ভার যাই করুক না কেন, এতে কোনো পুশ নোটিফিকেশন আসবে না। Vaultwarden 1.30.2 ভার্সনের আগে যে অ্যাপগুলো কানেক্ট করা ছিল, সেগুলোর ডেটা মুছে ফেলতে হবে যাতে নতুন করে পুশ টোকেন রেজিস্টার হতে পারে।

একটি reimplementation কতটা নিরাপদ?

Bitwarden-এর অডিট ইতিহাস দীর্ঘ এবং সর্বজনীন। Cure53 2018, 2021, 2022 এবং 2023 সালে এটি পর্যালোচনা করেছে। IOActive এবং Mandiant 2024 সালে ক্লায়েন্টদের পর্যালোচনা করেছে, Fracture Labs 2024 এবং 2025 সাল জুড়ে ওয়েব ও নেটওয়ার্ক মূল্যায়ন করেছে, Unit 42 2025 সালে মোবাইল অ্যাপগুলো মূল্যায়ন করেছে এবং ETH Zurich Applied Cryptography Group 2025 সালে এর ক্রিপ্টোগ্রাফি পর্যালোচনা করেছে।

Vaultwarden-ও বাইরের গবেষকদের দ্বারা পরীক্ষিত হয়েছে, যা অনেককে অবাক করে যারা মনে করেন কেউ এটি পরীক্ষা করে না। জার্মানির Federal Office for Information Security (BSI) 2024 সালের ফেব্রুয়ারি থেকে মে মাসের মধ্যে Caos 3.0 কোড অ্যানালাইসিস প্রজেক্টের অধীনে mgm security partners-কে দিয়ে এটি পরীক্ষা করিয়েছিল এবং সেই পর্যালোচনায় দুটি বিষয়কে উচ্চ ঝুঁকিপূর্ণ হিসেবে চিহ্নিত করা হয়েছিল। এছাড়া, ERNW 1.32.5-এর নিচের সংস্করণগুলোতে একটি authentication bypass-এর কথা জানিয়েছিল (CVE-2024-55225), যা 2024 সালের নভেম্বরে ঠিক করা হয়েছে। 2026 সালের জুলাই মাসে 1.37.0 সংস্করণে icon endpoint-এর মাধ্যমে SSRF (server side request forgery), ক্রস অর্গানাইজেশন সাইফার অ্যাক্সেস এবং ডিরেক্টরি ইমপোর্টে অর্গানাইজেশন পলিসি বাইপাসের সমাধান দেওয়া হয়েছে।

এই ইতিহাস একটি কার্যকর ডিসক্লোজার প্রসেসসহ একটি প্রজেক্টের পরিচয় দেয়। এটি সেই সারফেসটির দিকেও ইঙ্গিত করে যা বারবার সামনে আসে: অ্যাডমিন পেজ। তাই এই পেজটিকে অত্যন্ত সংবেদনশীল হিসেবে বিবেচনা করুন। ADMIN_TOKEN সেট করা না থাকলে এটি বন্ধ রাখুন এবং plain text টোকেনের পরিবর্তে একটি hash সংরক্ষণ করুন।

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

এটি একটি Argon2 PHC স্ট্রিং (password hashing competition format) প্রিন্ট করে যা ADMIN_TOKEN-এ পেস্ট করতে হয়। অ্যাডমিন পেজ চালু করার আগে HTTPS সক্রিয় করুন, কারণ টোকেনটি রিকোয়েস্টের মাধ্যমে পাঠানো হয় এবং plain HTTP কানেকশনে plain text টোকেন নেটওয়ার্কের যেকোনো জায়গা থেকে পড়া সম্ভব। ক্রিপ্টোগ্রাফির চেয়ে এই টোকেন এবং আপনার ব্যাকআপ ফাইলই হলো বাস্তব ঝুঁকির জায়গা, এবং চলমান ইনস্ট্যান্সে হার্ডেনিং প্রয়োগ এই উভয় বিষয় নিয়ে কাজ করে। যেখানে সম্ভব /admin-কে পাবলিক ইন্টারনেট থেকে দূরে রাখুন এবং এর সাথে সাধারণ হোস্ট হার্ডেনিং যেমন সার্ভারে SSH অ্যাক্সেস সীমাবদ্ধ করা যুক্ত করুন।

অফিসিয়াল API পরিবর্তিত হলে যা যা অকেজো হয়ে পড়ে

এটি এমন একটি ঝুঁকি যা মানুষ খুব কম গুরুত্ব দেয়। Bitwarden তাদের ক্লায়েন্ট সফটওয়্যারগুলো রিলিজ করে এবং সেই ক্লায়েন্টগুলো অ্যাপ স্টোর থেকে স্বয়ংক্রিয়ভাবে আপডেট হয়ে যায়। Vaultwarden-কে সেই পরিবর্তনের সাথে তাল মিলিয়ে চলতে হয়। যখন কোনো ক্লায়েন্ট রিলিজ API-এর শর্ত পরিবর্তন করে, তখন পুরনো Vaultwarden এমন একটি ক্লায়েন্টের মুখোমুখি হয় যা ইতিমধ্যে আপডেট হয়ে গেছে। ফলে আপনার স্পর্শ না করা ডিভাইসগুলোতেও লগইন বা সিঙ্ক ব্যর্থ হতে শুরু করে।

রিলিজ নোটগুলোতে এর একটি বাস্তব উদাহরণ রয়েছে। Vaultwarden 1.37.0-এ বলা হয়েছে: "2026.7.0+ ভার্সনের ক্লায়েন্টগুলোর সাথে সামঞ্জস্য বজায় রাখতে এই আপডেটটি আবশ্যক, কোনো সমস্যা রিপোর্ট করার আগে অনুগ্রহ করে আপডেট করুন।" 2026 সালের আগস্ট মাস পর্যন্ত বর্তমান রিলিজটি হলো 1.37.1, যা 29 জুলাই 2026 তারিখে প্রকাশিত হয়েছে।

দুটি অভ্যাস এই প্রক্রিয়াটিকে ঝামেলামুক্ত রাখতে পারে। latest-এর পরিবর্তে একটি নির্দিষ্ট ইমেজ ট্যাগ ব্যবহার করুন, যাতে রাত 3টার সময় স্বয়ংক্রিয়ভাবে সার্ভার আপডেট না হয়ে যায়। এরপর রিলিজ ফিড নিয়মিত পর্যবেক্ষণ করুন এবং সচেতনভাবে আপডেট করুন। আপডেট করার আগে অবশ্যই নোটগুলো পড়ুন, কারণ ব্রেকিং চেঞ্জ বা বড় ধরনের পরিবর্তনগুলো সেখানেই উল্লেখ থাকে। উদাহরণস্বরূপ, 1.35.5 ভার্সনে আপগ্রেড করার সময় বিদ্যমান সকল two factor remember token বাতিল হয়ে গিয়েছিল, যার ফলে ব্যবহারকারীরা তাদের সংরক্ষিত সেশন থেকে লগআউট হয়ে যান।

স্ট্যান্ডার্ড Bitwarden ডেপ্লয়মেন্টেও এই সমস্যার বিপরীত চিত্র দেখা যায়। ./bitwarden.sh updateself এবং ./bitwarden.sh update-এর মাধ্যমে আপগ্রেড সম্পন্ন হয় এবং আপডেটটি ডেটাবেস মাইগ্রেশন কার্যকর করে। মাইগ্রেশনের আগে নেওয়া ব্যাকআপ মাইগ্রেশনের পরবর্তী স্কিমার জন্য রোলব্যাক হিসেবে কাজ করে না। তাই ব্যাকআপ নিন এবং কোন ভার্সনে ব্যাকআপটি নিয়েছেন তা নোট করে রাখুন।

ব্যাকআপ, যেখানে মানুষ আসলে তাদের ভল্ট হারায়

Vaultwarden-এর ডেটা ডিরেক্টরিই হলো সার্ভার। নিচের ফাইল ও ডিরেক্টরিগুলো সংরক্ষণ করুন:

  • db.sqlite3
  • প্রতিটি rsa_key* ফাইল, যার মধ্যে rsa_key.pem এবং rsa_key.der অন্তর্ভুক্ত
  • attachments/
  • config.json
  • sends/

কন্টেইনার চলার সময় cp দিয়ে db.sqlite3 কপি করবেন না। SQLite এই সময়ে ডেটা লিখতে থাকতে পারে, ফলে কপি করা ফাইলটি ত্রুটিপূর্ণ হতে পারে যা রিস্টোর না করা পর্যন্ত ঠিকঠাক মনে হবে। এর পরিবর্তে অনলাইন ব্যাকআপ API ব্যবহার করুন:

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

1.32.1 ভার্সন থেকে ইমেজের ভেতরেই একটি বিল্ট-ইন /vaultwarden backup কমান্ড রয়েছে। যে পদ্ধতিই ব্যবহার করুন না কেন, স্ন্যাপশটটি মূল ডেটার মতোই একই ডিস্কে থাকে যতক্ষণ না আপনি সেটি সরিয়ে নিচ্ছেন। তাই restic snapshots to off-site storage ব্যবহার করে একটি নির্দিষ্ট সময়সূচী অনুযায়ী ডেটা অন্য কোথাও পাঠিয়ে দিন। একটি ব্যাকআপ জব যদি নীরবে কাজ করা বন্ধ করে দেয়, তবে তা এমন দেখাবে যেন সেটি কখনোই ছিল না। তাই টাইমার যেন ব্যর্থতার রিপোর্ট এমন কোথাও পাঠায় যা আপনার নজরে আসবে; এজন্যই a self-hosted ntfy server wired to a systemd OnFailure unit ব্যবহার করা হয়। rsa_key ফাইলগুলো ডেটাবেসের মতোই গুরুত্বপূর্ণ: সার্ভার এই কি (key) দিয়ে তার সেশন টোকেনগুলো সাইন করে। তাই নতুন তৈরি করা কি-এর পাশে পুরনো ডেটাবেস রিস্টোর করলে সবার সেশন লগ-আউট হয়ে যাবে এবং চলমান অর্গানাইজেশন ইনভাইটেশনগুলো অকার্যকর হয়ে পড়বে।

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 লাইট ভার্সন নিজে থেকে কোনো ব্যাকআপ নেয় না, তাই লাইট ভার্সন বেছে নিলে Vaultwarden-এর মতোই আপনাকে নিজস্ব ব্যাকআপ শিডিউল তৈরি করতে হবে।

উভয় দিকে মাইগ্রেশন

মাইগ্রেশন সার্ভারের মাধ্যমে নয়, বরং ক্লায়েন্টের মাধ্যমে সম্পন্ন হয়, কারণ এক্সপোর্ট এবং ইমপোর্ট ক্লায়েন্টের ফিচার। এর ফলে উভয় দিকের প্রক্রিয়া একই।

প্রতিটি ব্যবহারকারী ওয়েব ভল্ট বা ডেস্কটপ অ্যাপ থেকে ডেটা এক্সপোর্ট করেন, নতুন সার্ভারে অ্যাকাউন্ট তৈরি করেন এবং ইমপোর্ট করেন। ফরম্যাটগুলো হলো প্লেইনটেক্সট .json, প্লেইনটেক্সট .csv, এনক্রিপ্টেড .json এবং একটি .zip, যা JSON এবং ব্যক্তিগত ভল্টের ফাইল অ্যাটাচমেন্ট ধারণ করে। কার্ড, আইডেন্টিটি, সংরক্ষিত পাসকি (passkeys) এবং SSH কি শুধুমাত্র JSON ফরম্যাটেই টিকে থাকে, তাই CSV মাইগ্রেশনে এগুলো নীরবে বাদ পড়ে যায়। কোনো এক্সপোর্ট ফরম্যাটেই ট্র্যাশ আইটেম বা Sends অন্তর্ভুক্ত থাকে না এবং অর্গানাইজেশনের মালিকানাধীন ডেটা ব্যক্তিগত এক্সপোর্টের অংশ নয়।

একটি প্লেইনটেক্সট এক্সপোর্টকে সরাসরি গোপন তথ্য হিসেবে গণ্য করুন, কারণ এটি ঠিক তাই: আপনার সম্পূর্ণ ভল্ট ডিস্কে প্লেইন টেক্সট আকারে থাকে। এটি এক্সপোর্ট করুন, ইমপোর্ট করুন এবং একবারে ডিলিট করে ফেলুন। এটি কখনোই ইমেইল বা চ্যাটের মাধ্যমে পাঠাবেন না।

মাইগ্রেশনের সময় একটি সাধারণ ভুল অনেকেই করেন। আপনার অ্যাকাউন্টের সাথে যুক্ত একটি এনক্রিপ্টেড এক্সপোর্ট অন্য কোনো অ্যাকাউন্টে ইমপোর্ট করা যায় না, আর সার্ভার পরিবর্তনের অর্থই হলো নতুন অ্যাকাউন্ট। এর পরিবর্তে পাসওয়ার্ড দিয়ে সুরক্ষিত এক্সপোর্ট অপশনটি বেছে নিন, যা পোর্টেবল।

Vaultwarden থেকে Bitwarden স্ট্যান্ডার্ডে মাইগ্রেশন করা কিছুটা কঠিন, কারণ এক্সপোর্টের মাধ্যমে অর্গানাইজেশন স্ট্রাকচার স্থানান্তরিত হয় না। আপনাকে নতুন সার্ভারে পুনরায় অর্গানাইজেশন তৈরি করতে হবে, ব্যবহারকারীদের পুনরায় আমন্ত্রণ জানাতে হবে এবং প্রতিটি ব্যবহারকারীকে তাদের নিজস্ব ভল্ট ইমপোর্ট করতে হবে। শেষ মুহূর্তে সমস্যা এড়াতে এর জন্য আগে থেকেই একটি মেইনটেন্যান্স উইন্ডো পরিকল্পনা করে রাখুন।

আপনার কোনটি চালানো উচিত?

আপনি যদি একজন ব্যক্তি, একটি পরিবার বা 1 GB বা 2 GB VPS-এ কোনো হোম ল্যাব ব্যবহারকারী হন, তবে Vaultwarden চালান। Organisations, Emergency Access এবং Send এখানে বিনামূল্যে পাওয়া যায়, অলস অবস্থায় এটি একটি ব্রাউজার ট্যাবের সমান মেমরি খরচ করে এবং এর ব্যাকআপ হিসেবে একটি SQLite ফাইল ও একটি ছোট ডিরেক্টরিই যথেষ্ট। এই বৈশিষ্ট্যের কারণেই এটি self-hosted পাসওয়ার্ড ম্যানেজমেন্টে সবচেয়ে জনপ্রিয়।

যখন অন্য কোনো ব্যক্তি পেশাগতভাবে এর ওপর নির্ভরশীল থাকে, তখন Bitwarden-এর নিজস্ব সার্ভার চালান: যেমন কোনো কোম্পানি যাদের সাপোর্ট কন্ট্রাক্ট প্রয়োজন, কোনো কমপ্লায়েন্সের শর্ত যেখানে নির্দিষ্ট ভেন্ডরের নাম উল্লেখ থাকে, অথবা এন্টারপ্রাইজ ফিচার যার জন্য আপনি ইতিমধ্যে অর্থ প্রদান করছেন। স্ট্যান্ডার্ড ডেপ্লয়মেন্টের জন্য 4 GB মেমরি বরাদ্দ করুন এবং লাইসেন্স ফাইল ও ইন্সটলেশন ID-কে কাগজের নথির পরিবর্তে ডেপ্লয়মেন্টের অংশ হিসেবে বিবেচনা করুন।

Bitwarden lite একটি অস্বস্তিকর মধ্যবর্তী অবস্থানে রয়েছে। এটি ভেন্ডরের কোড কিন্তু অনেক হালকা, যা সত্যিই আকর্ষণীয়, তবে Bitwarden এটিকে ব্যক্তিগত এবং হোম ল্যাব ব্যবহারের জন্য নথিবদ্ধ করেছে এবং এতে কোনো স্বয়ংক্রিয় ব্যাকআপ নেই। এখানে আপনি Vaultwarden-এর ফ্রি ফিচার সেট ছাড়াই এর অপারেশনাল লোড বহন করছেন। যখন আপনার কাছে ফিচারের চেয়ে ভেন্ডর কোড বেশি গুরুত্বপূর্ণ এবং আপনি নিজে ডাটাবেস পরিচালনা করতে স্বাচ্ছন্দ্যবোধ করেন, তখনই এটি বেছে নিন।

আপনি যদি এখনও সিদ্ধান্ত না নিয়ে থাকেন যে এই সার্ভারে আর কী কী হোস্ট করবেন, তবে wide self-hosting shortlist এই পছন্দটিকে একই RAM-এর জন্য প্রতিদ্বন্দ্বী অন্যান্য সার্ভিসের পাশাপাশি উপস্থাপন করে।

FAQ

Vaultwarden কি একটি প্রকৃত পাসওয়ার্ড ম্যানেজারের জন্য যথেষ্ট নিরাপদ?

ব্যক্তিগত এবং পারিবারিক ব্যবহারের জন্য, শর্তসাপেক্ষে এটি নিরাপদ। ক্লায়েন্টরা সার্ভারে পৌঁছানোর আগেই ভল্ট এনক্রিপ্ট করে ফেলে, তাই Vaultwarden কখনোই আপনার মাস্টার পাসওয়ার্ড বা কোনো প্লেইনটেক্সট দেখতে পায় না। এটি বাহ্যিকভাবে পরীক্ষিত: BSI-এর নির্দেশে mgm security partners 2024 সালের ফেব্রুয়ারি থেকে মে মাসের মধ্যে এটি পরীক্ষা করেছে এবং ERNW একটি অথেন্টিকেশন বাইপাস শনাক্ত করেছিল যা 1.32.5 ভার্সনে ঠিক করা হয়েছে। ভার্সন সবসময় আপডেট রাখুন, অ্যাডমিন পেজটি নিষ্ক্রিয় রাখুন অথবা Argon2 হ্যাশ করা ADMIN_TOKEN এর পেছনে রাখুন এবং শুধুমাত্র HTTPS-এর মাধ্যমে এটি পরিবেশন করুন। যে ব্যবসার ভেন্ডর সাপোর্ট বা অডিট ডকুমেন্টেশন প্রয়োজন, তাদের Bitwarden-এর নিজস্ব সার্ভার চালানো উচিত।

Bitwarden self-hosted-এর তুলনায় Vaultwarden-এর কতটুকু RAM প্রয়োজন?

docker stats --no-stream দিয়ে পরিমাপ করা আইডল ইন্সটলে দেখা গেছে, SQLite সহ Vaultwarden একটি কন্টেইনারে প্রায় 58 MB RAM ব্যবহার করে। অন্যদিকে, Bitwarden-এর স্ট্যান্ডার্ড ডিপ্লয়মেন্ট 12 টি কন্টেইনার জুড়ে প্রায় 2,400 MB RAM ব্যবহার করে, যার বেশিরভাগই MSSQL ডাটাবেসের দখলে থাকে। Bitwarden-এর স্ট্যান্ডার্ড স্ট্যাকের জন্য সর্বনিম্ন 2 GB এবং 4 GB RAM সুপারিশ করা হয়, আর Bitwarden lite-এর জন্য 200 MB প্রয়োজন। Vaultwarden 1 GB RAM-এর VPS-এ অনায়াসেই চলতে পারে।

self-host করার জন্য কি আমার Bitwarden লাইসেন্স প্রয়োজন?

বিনামূল্যে ব্যক্তিগত ভল্ট ব্যবহারের জন্য কোনো লাইসেন্স প্রয়োজন নেই। সার্ভার চালানো সম্পূর্ণ ফ্রি। প্রিমিয়াম ব্যক্তিগত ফিচার এবং যেকোনো পেইড অর্গানাইজেশন প্ল্যান (যেমন Families, Teams এবং Enterprise) আনলক করার জন্য লাইসেন্স ফাইলের প্রয়োজন হয়। আপনি ক্লাউড ওয়েব ভল্ট থেকে এটি ডাউনলোড করে আপনার ইন্সট্যান্সে আপলোড করবেন। অর্গানাইজেশন লাইসেন্সগুলো ./bwdata/env/global.override.env-এ সংরক্ষিত ইন্সটলেশন ID-এর বিপরীতে ইস্যু করা হয়। Vaultwarden-এর কোনো লাইসেন্সের প্রয়োজন হয় না এবং এটি নিজেই অর্গানাইজেশন ফিচারগুলো সক্রিয় করে দেয়।

আমি কি পরবর্তীতে Vaultwarden থেকে Bitwarden-এ বা উল্টো দিকে যেতে পারব?

হ্যাঁ, ক্লায়েন্টদের মাধ্যমে উভয় দিকেই স্থানান্তর সম্ভব। প্রতিটি ব্যবহারকারী ওয়েব ভল্ট বা ডেস্কটপ অ্যাপ থেকে তাদের ভল্ট এক্সপোর্ট করবেন এবং নতুন সার্ভারে অ্যাকাউন্ট তৈরি করার পর সেখানে ইম্পোর্ট করবেন। .zip এক্সপোর্টে ব্যক্তিগত ভল্টের অ্যাটাচমেন্টগুলো থাকে এবং JSON ফরম্যাটে কার্ড, আইডেন্টিটি, পাসকি এবং SSH কিগুলো থাকে। ট্র্যাশ আইটেম এবং Sends কোনো এক্সপোর্ট ফরম্যাটে থাকে না এবং অর্গানাইজেশনের মালিকানাধীন আইটেমগুলো একজন মালিককে আলাদাভাবে এক্সপোর্ট করতে হয়। তাই নতুন সার্ভারে অর্গানাইজেশন পুনরায় তৈরি করা এবং ব্যবহারকারীদের নতুন করে আমন্ত্রণ জানানোর পরিকল্পনা রাখুন।

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