Vaultwarden বনাম Bitwarden: কোনটি আপনার VPS-এর জন্য সেরা?
Bitwarden সার্ভারে 12টি কন্টেইনার ও 2 জিবি র্যামের প্রয়োজন হয়। অন্যদিকে Vaultwarden মাত্র একটি কন্টেইনারে একই API সুবিধা দেয়। আপনার VPS-এর জন্য কোনটি উপযুক্ত তা এই নিবন্ধে জানুন।
Vaultwarden এবং Bitwarden self-hosted আসলে কী
Vaultwarden বনাম Bitwarden self-hosted-এর মধ্যে পার্থক্য হলো দুটি সার্ভারের মধ্যে একটি বেছে নেওয়া, যারা একই client API ব্যবহার করে; এটি কোনো পাসওয়ার্ড ম্যানেজারের মধ্যে নির্বাচন নয়। Bitwarden-এর নিজস্ব স্ট্যাক nginx-এর পেছনে প্রায় এক ডজন কন্টেইনার চালায়, সবকিছু Microsoft SQL Server-এ জমা রাখে এবং এটি একটি installation ID-এর সাথে যুক্ত যা আপনাকে ইমেইল ঠিকানার মাধ্যমে রেজিস্টার করতে হয়। Vaultwarden হলো Bitwarden client API-এর একটি অনানুষ্ঠানিক পুনঃবাস্তবায়ন (reimplementation), যা Rust ভাষায় লেখা এবং একটি SQLite ফাইলের বিপরীতে একটিমাত্র কন্টেইনার হিসেবে চলে। আপনার ব্রাউজার এক্সটেনশন বা ফোন এদের মধ্যে পার্থক্য করতে পারে না, কারণ উভয়ই একই endpoint-এ
তিনটি স্ট্যাক যা আপনি ইনস্টল করতে পারেন
বেশিরভাগ তুলনামূলক আলোচনায় এটি বাদ পড়ে যে, 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 সার্টিফিকেট অনুরোধ করবেন কি না, ডাটাবেসের নাম এবং একটি ইনস্টলেশন ID ও 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:latestpublish লাইনে পোর্ট 8000 শুধুমাত্র loopback-এর সাথে bind করা হয়েছে, এবং এটি ইচ্ছাকৃত। Vaultwarden সাধারণ HTTP সার্ভ করে এবং প্রত্যাশা করে যে এর সামনে একটি reverse proxy TLS (transport layer security) টার্মিনেট করবে। এখানে TLS ঐচ্ছিক নয়: ওয়েব ভল্ট ব্রাউজারের WebCrypto API ব্যবহার করে এনক্রিপশন সম্পন্ন করে, যা ব্রাউজারগুলো শুধুমাত্র নিরাপদ কনটেক্সটেই উন্মুক্ত করে। তাই সাধারণ http-এর মাধ্যমে লগইন পেজটি ব্রাউজারে লোড হতে ব্যর্থ হবে, এমনকি আপনার সার্ভারে অনুরোধ পৌঁছানোর আগেই। সম্পূর্ণ Vaultwarden ইনস্টলেশন নির্দেশিকা-তে প্রক্সি এবং সার্টিফিকেটের বিষয়টি বিস্তারিত আলোচনা করা হয়েছে।
Bitwarden self-hosted-এর তুলনায় Vaultwarden কতটুকু RAM ব্যবহার করে?
ভেন্ডরের দেওয়া ন্যূনতম প্রয়োজনীয়তা থেকে বোঝা যায় কোন কনফিগারেশনে ইনস্টলার চলতে অস্বীকার করবে, কিন্তু এটি সফটওয়্যারটির প্রকৃত ভার বহন করে না। নিচের সারিগুলো docker stats --no-stream থেকে নেওয়া হয়েছে, যা নিষ্ক্রিয় (idle) অবস্থায়, একজন ব্যবহারকারী, ছোট ভল্ট এবং কোনো অ্যাটাচমেন্ট ছাড়া 4 GB RAM বিশিষ্ট একটি Ubuntu 24.04 বক্সে চালানো হয়েছে। ডিস্কের আকার বলতে ইমেজ এবং প্রথমবার সফলভাবে চালু হওয়ার পরের ডেটা ডিরেক্টরিকে বোঝানো হয়েছে।
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-তে অবস্থান করে। এই পরিসংখ্যানগুলোর ওপর আস্থা রাখার আগে আপনার নিজের বক্সে একই কমান্ড চালিয়ে দেখুন, কারণ ব্যবহারকারীর সংখ্যা, অ্যাটাচমেন্ট এবং সিঙ্ক ট্রাফিকের ওপর ভিত্তি করে এই মান পরিবর্তিত হয় এবং MSSQL দীর্ঘ সময় ধরে চললে এর ওয়ার্কিং সেট বাড়তে থাকে।
একটি ছোট VPS-এর জন্য বাস্তবসম্মত পরামর্শ হলো: SQLite সহ Vaultwarden 1 GB RAM-এর প্ল্যানে অনায়াসেই চলে, কিন্তু স্ট্যান্ডার্ড Bitwarden স্ট্যাক সেখানে চালু হবে না। 2 GB RAM-এর প্ল্যানে স্ট্যান্ডার্ড স্ট্যাকটি নথিবদ্ধ ন্যূনতম প্রয়োজনীয়তা পূরণ করলেও অপারেটিং সিস্টেমের জন্য খুব সামান্য জায়গা অবশিষ্ট থাকে, ফলে কার্নেলের out of memory killer সক্রিয় হওয়ার সম্ভাবনা তৈরি হয়। যখন এটি কাজ শুরু করে, তখন dmesg একটি লাইন প্রিন্ট করে যা কোন প্রসেসটিকে বন্ধ করা হয়েছে তা নির্দেশ করে, এবং এই স্ট্যাকের ক্ষেত্রে সাধারণত সেটি হয় sqlservr। তাই স্ট্যান্ডার্ড ডেপ্লয়মেন্টের জন্য 4 GB RAM বরাদ্দ করুন।
FAQ
Vaultwarden-এ কোন কোন পেইড ফিচার বিনামূল্যে পাওয়া যায়?
Bitwarden-এর সার্ভার চালানো বিনামূল্যে সম্ভব, কিন্তু লাইসেন্স ফাইল আপলোড না করা পর্যন্ত পেইড ফিচারগুলো লক করা থাকে। প্রিমিয়াম ইন্ডিভিজুয়াল অ্যাকাউন্ট এবং সব ধরণের পেইড অর্গানাইজেশন টায়ারের (Families, Teams, Enterprise) জন্য একটি লাইসেন্স প্রয়োজন। আপনি ক্লাউড ওয়েব ভল্ট থেকে এটি ডাউনলোড করতে পারেন; ইন্ডিভিজুয়াল অ্যাকাউন্টের ক্ষেত্রে Settings-এর অধীনে Subscription-এ এবং অর্গানাইজেশনের ক্ষেত্রে Admin Console-এর অধীনে Billing এবং তারপর Subscription-এ গিয়ে এটি ডাউনলোড করে আপনার নিজস্ব ইনস্ট্যান্সে আপলোড করতে হয়। অর্গানাইজেশন লাইসেন্সগুলো ./bwdata/env/global.override.env-এ সংরক্ষিত ইনস্টলেশন আইডি-র বিপরীতে ইস্যু করা হয়। তাই একটি সেলফ-হোস্টেড অর্গানাইজেশনকেও পেইড সাবস্ক্রিপশন বজায় রাখতে হয় এবং বিলিংয়ের জন্য Bitwarden-এর ক্লাউডের সাথে যোগাযোগ রাখতে হয়।
Vaultwarden কোনো লাইসেন্স বা সাবস্ক্রিপশন ছাড়াই এই ফিচারগুলো চালু করে দেয়। প্রজেক্টের উইকিতে এগুলোর তালিকা দেওয়া আছে:
- অর্গানাইজেশন, কালেকশন এবং গ্রুপ
- ফাইল অ্যাটাচমেন্ট
- ইমেইল, Duo, YubiKey এবং FIDO2 ব্যবহার করে টু-স্টেপ লগইন
- ইমার্জেন্সি অ্যাক্সেস
- Bitwarden Send
- পার্সোনাল API কি
- 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 সমর্থন করে, তাই ব্রাউজার এক্সটেনশন, ডেস্কটপ অ্যাপ, মোবাইল অ্যাপ এবং এর সাথে থাকা ওয়েব ভল্ট—সবই এর সাথে কাজ করে। প্রতিটি ক্লায়েন্টে লগ-ইন করার আগে এনভায়রনমেন্ট স্ক্রিনে সেলফ-হোস্টেড সার্ভারের URL সেট করতে হয়, লগ-ইন করার পরে নয়।
একটি ফিচারের জন্য অতিরিক্ত কনফিগারেশনের প্রয়োজন হয়: মোবাইল অ্যাপে পুশ নোটিফিকেশন। এটি ছাড়া অ্যাপটি খোলার সময় অথবা নির্দিষ্ট সময় অন্তর নিজে থেকে সিঙ্ক হয়, ফলে ল্যাপটপে পাসওয়ার্ড পরিবর্তন করলে তা ফোনে সাথে সাথে দেখা যায় না। Vaultwarden, Bitwarden-এর পুশ রিলে ব্যবহার করতে পারে, যার জন্য অফিসিয়াল ইনস্টলার যে https://bitwarden.com/host পেজ ব্যবহার করে, সেখান থেকে একটি ইনস্টলেশন আইডি এবং কি (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) তাদের Caos 3.0 কোড বিশ্লেষণ প্রকল্পের অধীনে 2024 সালের ফেব্রুয়ারি থেকে মে মাসের মধ্যে mgm security partners-কে দিয়ে এটি পরীক্ষা করিয়েছিল এবং সেই পর্যালোচনায় দুটি ফলাফলকে উচ্চ ঝুঁকিপূর্ণ হিসেবে চিহ্নিত করা হয়েছিল। আলাদাভাবে, ERNW 1.32.5-এর নিচের সংস্করণগুলোতে একটি authentication bypass-এর রিপোর্ট করেছিল (CVE-2024-55225), যা 2024 সালের নভেম্বরে সমাধান করা হয়েছে। 2026 সালের জুলাই মাসে 1.37.0 সংস্করণে icon endpoint-এর মাধ্যমে SSRF (server side request forgery), cross organisation cipher access এবং directory import-এর ক্ষেত্রে organisation policy bypass-এর সমাধান প্রকাশ করা হয়েছে।
এই ইতিহাস এমন একটি প্রকল্পের পরিচয় দেয় যার একটি কার্যকর disclosure প্রক্রিয়া রয়েছে। এটি সেই ক্ষেত্রটির দিকেও ইঙ্গিত করে যা বারবার সমস্যা তৈরি করে: admin page। তাই এই পেজটিকে অত্যন্ত সংবেদনশীল হিসেবে বিবেচনা করুন। ADMIN_TOKEN সেট না করা থাকলে এটি বন্ধ রাখুন এবং plaintext token-এর পরিবর্তে একটি hash সংরক্ষণ করুন।
docker run --rm -it vaultwarden/server /vaultwarden hashএটি একটি Argon2 PHC string (password hashing competition format) প্রিন্ট করে যা ADMIN_TOKEN-এ পেস্ট করতে হবে। admin page চালু করার আগে HTTPS সক্রিয় করুন, কারণ token-টি অনুরোধের সাথে পাঠানো হয় এবং plain HTTP সংযোগে plaintext token পথের যেকোনো কিছু দ্বারা পাঠযোগ্য হতে পারে। যেখানে সম্ভব /admin-কে পাবলিক ইন্টারনেট থেকে দূরে রাখুন এবং এটিকে সাধারণ host hardening-এর সাথে যুক্ত করুন, যেমন সার্ভারে SSH অ্যাক্সেস সীমাবদ্ধ করা।
অফিসিয়াল API পরিবর্তিত হলে যা যা অকেজো হয়ে যায়
এটি এমন একটি ঝুঁকি যা মানুষ গুরুত্বের সাথে নেয় না। Bitwarden তাদের ক্লায়েন্ট সফটওয়্যারগুলো রিলিজ করে এবং সেই ক্লায়েন্টগুলো অ্যাপ স্টোর থেকে রাতারাতি স্বয়ংক্রিয়ভাবে আপডেট হয়ে যায়। Vaultwarden-কে সেই পরিবর্তনের সাথে তাল মিলিয়ে চলতে হয়। যখন কোনো ক্লায়েন্ট রিলিজ API কন্ট্রাক্ট পরিবর্তন করে, তখন আপডেট না করা Vaultwarden এমন একটি ক্লায়েন্টের মুখোমুখি হয় যা ইতিমধ্যে পরিবর্তিত হয়ে গেছে। ফলে আপনার স্পর্শ না করা ডিভাইসগুলোতেও লগইন বা সিঙ্ক করা ব্যর্থ হতে শুরু করে।
রিলিজ নোটগুলোতে এর একটি বাস্তব উদাহরণ রয়েছে। Vaultwarden 1.37.0-এ বলা হয়েছে: "এই আপডেটটি 2026.7.0+ ভার্সনের ক্লায়েন্টদের সমর্থনের জন্য প্রয়োজনীয়, তাই কোনো সমস্যা রিপোর্ট করার আগে দয়া করে আপডেট করুন।" আগস্ট 2026 অনুযায়ী বর্তমান রিলিজটি হলো 1.37.1, যা 29 জুলাই 2026 তারিখে প্রকাশিত হয়েছে।
দুটি অভ্যাস এই প্রক্রিয়াটিকে ঝামেলামুক্ত রাখে। latest-এর পরিবর্তে একটি নির্দিষ্ট ইমেজ ট্যাগ পিন করে রাখুন, যাতে স্বয়ংক্রিয় পুল (unattended pull) আপনার সার্ভারকে রাত 3টায় আপডেট করে না ফেলে। এরপর রিলিজ ফিড পর্যবেক্ষণ করুন এবং সচেতনভাবে আপডেট করুন। আপডেট করার আগে নোটগুলো পড়ুন, কারণ ব্রেকিং চেঞ্জ বা পরিবর্তনগুলো কেবল সেখানেই উল্লেখ থাকে। উদাহরণস্বরূপ, ভার্সন 1.35.5 আপগ্রেড করার সময় বিদ্যমান প্রতিটি টু-ফ্যাক্টর রিমেম্বার টোকেন বাতিল করে দিয়েছিল, যার ফলে ব্যবহারকারীরা এমন একটি ধাপ থেকে লগআউট হয়ে যান যা তারা সেভ করে রেখেছেন বলে ভেবেছিলেন।
স্ট্যান্ডার্ড Bitwarden ডেপ্লয়মেন্টেও এই সমস্যার বিপরীত চিত্র দেখা যায়। আপডেটগুলো ./bitwarden.sh updateself এবং ./bitwarden.sh update-এর মাধ্যমে চলে এবং আপডেটটি ডেটাবেস মাইগ্রেশন প্রয়োগ করে। মাইগ্রেশনের আগে নেওয়া ব্যাকআপ মাইগ্রেশনের পরের স্কিমার জন্য রোলব্যাক হিসেবে কাজ করে না। তাই ব্যাকআপ নিন এবং কোন ভার্সনে ব্যাকআপ নিয়েছেন তা নোট করে রাখুন।
ব্যাকআপ, যেখানে মানুষ আসলে ভল্ট হারায়
Vaultwarden-এর ডেটা ডিরেক্টরিই হলো সার্ভার। নিচের ফাইল ও ডিরেক্টরিগুলো সংরক্ষণ করুন:
db.sqlite3- প্রতিটি
rsa_key*ফাইল, যার মধ্যেrsa_key.pemএবংrsa_key.derঅন্তর্ভুক্ত attachments/config.jsonsends/
কন্টেইনার চলাকালীন 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 ব্যবহার করে অফ-সাইট স্টোরেজে ডেটা পাঠিয়ে দিন। 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-এর ফ্রি ফিচার সেট ছাড়াই এর অপারেশনাল লোড বহন করছেন। যখন ফিচারের চেয়ে ভেন্ডরের কোড আপনার কাছে বেশি গুরুত্বপূর্ণ এবং আপনি নিজে ডাটাবেস পরিচালনা করতে ইচ্ছুক, তখনই এটি বেছে নিন।
আপনি যদি এখনও সিদ্ধান্ত না নিয়ে থাকেন যে সার্ভারে আর কী কী হোস্ট করবেন, তবে the wider 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 দিয়ে পরিমাপ করা নিষ্ক্রিয় (idle) ইনস্টলেশনে, 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-এ অনায়াসেই চলতে পারে।
সেলফ-হোস্ট করার জন্য কি আমার Bitwarden লাইসেন্স প্রয়োজন?
ফ্রি ব্যক্তিগত ভল্টের জন্য প্রয়োজন নেই। সার্ভার চালানো সম্পূর্ণ ফ্রি। প্রিমিয়াম ব্যক্তিগত ফিচার এবং যেকোনো পেইড অর্গানাইজেশন প্ল্যান (যেমন Families, Teams এবং Enterprise) আনলক করার জন্য একটি লাইসেন্স ফাইল প্রয়োজন। আপনি ক্লাউড ওয়েব ভল্ট থেকে এটি ডাউনলোড করে আপনার ইনস্ট্যান্সে আপলোড করবেন এবং অর্গানাইজেশন লাইসেন্সগুলো ./bwdata/env/global.override.env-এ সংরক্ষিত ইনস্টলেশন ID-এর বিপরীতে ইস্যু করা হয়। Vaultwarden-এর কোনো লাইসেন্স প্রয়োজন হয় না এবং এটি নিজেই অর্গানাইজেশন ফিচারগুলো সক্রিয় করে।
আমি কি পরে Vaultwarden থেকে Bitwarden-এ বা উল্টোটা করতে পারব?
হ্যাঁ, উভয় দিকেই ক্লায়েন্টের মাধ্যমে এটি করা সম্ভব। প্রতিটি ব্যবহারকারী ওয়েব ভল্ট বা ডেস্কটপ অ্যাপ থেকে তাদের ভল্ট এক্সপোর্ট করবেন এবং নতুন সার্ভারে অ্যাকাউন্ট তৈরি করার পর সেখানে ইম্পোর্ট করবেন। .zip এক্সপোর্টে ব্যক্তিগত ভল্টের অ্যাটাচমেন্টগুলো থাকে এবং JSON ফরম্যাটে কার্ড, আইডেন্টিটি, পাসকি এবং SSH কিগুলো থাকে। ট্র্যাশ আইটেম এবং Sends কোনো এক্সপোর্ট ফরম্যাটে থাকে না এবং অর্গানাইজেশনের মালিকানাধীন আইটেমগুলো একজন মালিককে আলাদাভাবে এক্সপোর্ট করতে হয়, তাই নতুন সার্ভারে অর্গানাইজেশন পুনরায় তৈরি করার এবং ব্যবহারকারীদের পুনরায় আমন্ত্রণ জানানোর পরিকল্পনা রাখুন।