मुख्य सामग्री पर जाएँ

Docker के साथ Bitwarden को स्वयं-होस्ट करें: संपूर्ण सेटअप गाइड

Docker के साथ अपना स्वयं का Bitwarden पासवर्ड वॉल्ट चलाने के लिए एक व्यावहारिक गाइड — प्रारंभिक सर्वर सेटअप से लेकर कॉन्फ़िगरेशन, अपडेट, और सामान्य समस्या निवारण तक।
· 15 मि॰ पढ़ें

AI के साथ खोजें

इस लेख में, मैं आपको एक नए Ubuntu सर्वर पर Docker के साथ Bitwarden इंस्टॉल करने, Let's Encrypt के साथ HTTPS कॉन्फ़िगर करने, और सामान्य सेटअप समस्याओं को संभालने की प्रक्रिया से परिचित कराऊंगा।

यदि आप Docker के साथ अभी शुरुआत कर रहे हैं, तो हमारे Introduction to Docker या Intermediate Docker पाठ्यक्रमों में नामांकन करना बेहतर है — कई कंटेनर सेटअप प्रबंधित करने से पहले मूल बातें सीखें।

Bitwarden का Docker डिप्लॉयमेंट क्या है?

Bitwarden का एक आधिकारिक Docker-आधारित इंस्टॉलेशन है जो आपको अपनी शर्तों पर पासवर्ड मैनेजर चलाने देता है।

आपको बस एक इंस्टॉल स्क्रिप्ट चलानी है। डेटाबेस, वेब सर्वर को मैन्युअल रूप से इंस्टॉल करने या कोई कोड लिखने की जरूरत नहीं। Docker पहले से कॉन्फ़िगर कंटेनर खींचता है, उनके बीच नेटवर्किंग सेट करता है, और सब कुछ चला देता है। अपडेट भी इसी तरह काम करते हैं — बस अपडेट स्क्रिप्ट चलाएं और बाकी Docker संभाल लेता है।

Bitwarden का Docker सेटअप कई कंटेनरों के साथ एक साथ काम करता है। आपको यूज़र इंटरफ़ेस के लिए वेब वॉल्ट कंटेनर, अनुरोध संभालने के लिए API कंटेनर, एन्क्रिप्टेड वॉल्ट डेटा संग्रहीत करने के लिए डेटाबेस कंटेनर, और अटैचमेंट व आइकॉन के लिए सपोर्टिंग सेवाएं मिलती हैं। Docker Compose इन कंटेनरों का संयोजन करता है ताकि वे एक-दूसरे से संचार कर सकें।

सब कुछ आपके लिए पहले से कॉन्फ़िगर है।

इस मल्टी-कंटेनर दृष्टिकोण का मतलब है कि हर कंपोनेंट अलग-थलग चलता है। यदि आपको डेटाबेस में बदलाव करना है, तो आप सिर्फ उसी कंटेनर को रीस्टार्ट कर सकते हैं, वेब इंटरफ़ेस को छुए बिना। लॉग देखना चाहते हैं, तो हर सेवा का अपना लॉग स्ट्रीम है।

आधिकारिक डिप्लॉयमेंट एकल कॉन्फ़िगरेशन फ़ाइल के माध्यम से सब कुछ प्रबंधित करने के लिए Docker Compose का उपयोग करता है, जो पारंपरिक सर्वर इंस्टॉल की तुलना में पूरे सिस्टम को समझना और मेंटेन करना आसान बनाता है।

Docker के साथ Bitwarden चलाने से पहले आवश्यकताएं

Bitwarden चलाने से पहले आपको कुछ चीज़ों की ज़रूरत होगी, लेकिन इनमें से किसी के लिए एंटरप्राइज़ हार्डवेयर या जटिल सेटअप नहीं चाहिए।

एक Linux सर्वर या VM आपका शुरुआती बिंदु है। Ubuntu Server ही पर्याप्त है। आप AWS, DigitalOcean, या Linode से क्लाउड इंस्टैंस का उपयोग कर सकते हैं। 2GB RAM और 20GB स्टोरेज वाला एक बेसिक इंस्टैंस व्यक्तिगत उपयोग या छोटी टीमों के लिए Bitwarden चलाने को पर्याप्त है।

Docker और Docker Compose वास्तविक इंस्टॉलेशन को संभालते हैं। आप Docker Engine (Docker Desktop नहीं) और Docker Compose को अलग पैकेज के रूप में इंस्टॉल करेंगे। अधिकांश Linux डिस्ट्रीब्यूशन्स के पैकेज मैनेजर्स में दोनों उपलब्ध हैं।

एक डोमेन नाम आवश्यक है क्योंकि Bitwarden को काम करने के लिए HTTPS चाहिए। आप इसे IP पते पर नहीं चला सकते। इंस्टॉलेशन शुरू करने से पहले आपको अपने डोमेन को सर्वर के IP पते पर पॉइंट करना होगा।

पोर्ट 80 और 443 खुले होने चाहिए आपके सर्वर पर। पोर्ट 80 HTTP ट्रैफ़िक और सर्टिफिकेट वैलिडेशन संभालता है, जबकि पोर्ट 443 वास्तविक HTTPS ट्रैफ़िक परोसता है। अपने फ़ायरवॉल और क्लाउड प्रदाता के सिक्योरिटी समूहों को दोनों पोर्ट पर इनकमिंग कनेक्शन की अनुमति देने के लिए कॉन्फ़िगर करें।

आपको बुनियादी कमांड-लाइन कौशल की भी आवश्यकता होगी। आप अपने सर्वर में SSH करेंगे, इंस्टॉलेशन स्क्रिप्ट्स चलाएंगे, और कॉन्फ़िगरेशन फ़ाइलें एडिट करेंगे। यदि आप डायरेक्टरियों में नेविगेट करना और sudo के साथ कमांड चलाना जानते हैं, तो आप तैयार हैं।

और बस इतना ही! जानने के लिए चीज़ें हैं, लेकिन थोड़ा टेक-सेवी कोई भी इसे कर सकता है। अब मैं आपको आगे दिखाता हूँ कैसे।

Docker का उपयोग करके Bitwarden कैसे इंस्टॉल करें (आधिकारिक विधि)

यह वॉकथ्रू डोमेन और DNS प्रबंधन के लिए DigitalOcean Ubuntu ड्रॉपलेट और Cloudflare का उपयोग करता है। आप अन्य प्रदाताओं और सेवाओं का उपयोग करने के लिए स्वतंत्र हैं — लेकिन यदि आप बिना तनाव के साथ चलना चाहते हैं, तो मैं इन्हीं को चुनने की सलाह देता हूँ।

अपना वातावरण सेट करना

पहले, Ubuntu 24.04 LTS के साथ एक DigitalOcean ड्रॉपलेट बनाएं। $12/माह का Basic ड्रॉपलेट (2GB RAM, 1 CPU, 50GB SSD) व्यक्तिगत उपयोग या छोटी टीमों के लिए Bitwarden को अच्छे से चलाता है। बेहतर प्रतिक्रिया समय के लिए अपने निकटतम डेटा सेंटर क्षेत्र चुनें। एक मौजूदा SSH कुंजी जोड़ना या नई बनाना न भूलें।

ड्रॉपलेट बूट होने के बाद, DigitalOcean डैशबोर्ड से उसका सार्वजनिक IP पता नोट करें।

DigitalOcean ड्रॉपलेट विवरण

DigitalOcean ड्रॉपलेट विवरण

अगला, Cloudflare में DNS कॉन्फ़िगर करें। अपने Cloudflare खाते में लॉग इन करें और एक A रिकॉर्ड जोड़ें जो आपके डोमेन को ड्रॉपलेट के IP पते पर पॉइंट करता हो:

  • Type: A

  • Name: vault (या आपका पसंदीदा सबडोमेन)

  • IPv4 address: आपके ड्रॉपलेट का IP

  • Proxy status: Off (धूसर बादल)

प्रारंभिक सेटअप के लिए Cloudflare का प्रॉक्सी बंद करें। Let's Encrypt को आपके सर्वर तक सीधे पहुंच की आवश्यकता होती है ताकि डोमेन स्वामित्व सत्यापित किया जा सके। Bitwarden चलने लगे और सर्टिफिकेट जेनरेट हो जाएं, उसके बाद आप प्रॉक्सी सक्षम कर सकते हैं।

मैंने इस लेख के उद्देश्य से अपने सक्रिय डोमेन में से एक का उपयोग किया है:

Cloudflare DNS सेटअप

Cloudflare DNS सेटअप

DNS प्रसार में कुछ मिनट लगते हैं। बदलाव दिखाई दे रहे हैं या नहीं, यह सत्यापित करने के लिए यह शेल कमांड चलाएं:

nslookup vault.yourdomain.com

आपको प्रतिक्रिया में अपने ड्रॉपलेट का IP पता दिखना चाहिए।

Nslookup परिणाम

Nslookup परिणाम

अब आप SSH के माध्यम से अपने ड्रॉपलेट से कनेक्ट कर सकते हैं:

ssh root@your-droplet-ip

और आप अंदर हैं:

Ubuntu इंस्टैंस से कनेक्ट करना

Ubuntu इंस्टैंस से कनेक्ट करना

ठीक है, तो यहां पहला काम सिस्टम पैकेजेज़ को अपडेट करना है। निम्न कमांड चलाएं:

apt update && apt upgrade -y

अब आप Docker और Bitwarden इंस्टॉल करने के लिए तैयार हैं।

जैसा कि पहले बताया गया, आपको Docker और Docker Compose दोनों चाहिए। इन्हें इंस्टॉल करने के लिए ये कमांड चलाएं:

sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable docker
sudo systemctl start docker

और अब इंस्टॉलेशन सत्यापित करें:

docker --version
docker compose version

आपको दोनों कमांड के लिए वर्ज़न नंबर दिखाई देना चाहिए।

Docker और Docker Compose वर्ज़न

Docker और Docker Compose वर्ज़न

अगले चरण में, मैं आपको Bitwarden इंस्टॉल करना दिखाऊंगा।

Bitwarden इंस्टॉलर डाउनलोड और तैयार करना

Bitwarden का आधिकारिक इंस्टॉलर उनके GitHub रिपॉज़िटरी में संग्रहित है। आप इसे सीधे अपने सर्वर पर डाउनलोड कर सकते हैं:

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

यह इंस्टॉलेशन स्क्रिप्ट डाउनलोड करता है और उसे executable बनाता है। स्क्रिप्ट Docker इमेजेज़ डाउनलोड करने से लेकर कॉन्फ़िगरेशन फ़ाइलें बनाने और डायरेक्टरी स्ट्रक्चर सेट करने तक सब कुछ संभालती है।

अगला कदम एक डायरेक्टरी बनाना है, जहां Bitwarden अपना डेटा स्टोर करेगा:

sudo mkdir /opt/bitwarden

अब आप इंस्टॉलेशन स्क्रिप्ट को वहां मूव कर सकते हैं:

sudo mv bitwarden.sh /opt/bitwarden/
cd /opt/bitwarden

और अंत में, इंस्टॉलर चलाएं:

sudo ./bitwarden.sh install

स्क्रिप्ट एक bwdata डायरेक्टरी बनाती है जिसमें Bitwarden की सभी कॉन्फ़िगरेशन फ़ाइलें, सर्टिफिकेट, लॉग और डेटाबेस फ़ाइलें होती हैं। सब कुछ यहीं रहता है, इसलिए इस डायरेक्टरी का नियमित बैकअप लें।

इंस्टॉलेशन चलाना

इंस्टॉलर आपसे कई प्रश्न पूछता है। इन्हें ध्यान से उत्तर दें, क्योंकि गलत होने पर दोबारा शुरू करना पड़ सकता है।

अपना डोमेन नाम दर्ज करें ठीक उसी तरह जैसा आपके DNS रिकॉर्ड्स में है। यदि आपने Cloudflare में vault.yourdomain.com सेट किया है, तो वही स्ट्रिंग दर्ज करें। https:// या ट्रेलिंग स्लैशेज़ शामिल न करें।

SSL सर्टिफिकेट के लिए Let's Encrypt चुनें। इंस्टॉलर सर्टिफिकेट जेनरेशन और रिन्यूअल को स्वचालित रूप से संभालेगा। यदि आप Cloudflare का प्रॉक्सी (ऑरेंज क्लाउड) उपयोग कर रहे हैं, तो प्रारंभिक सेटअप के दौरान आपको इसे अस्थायी रूप से अक्षम करना पड़ सकता है ताकि Let's Encrypt आपके डोमेन को सत्यापित कर सके।

अपना ईमेल पता दर्ज करें। यहीं पर आपको सर्टिफिकेट समाप्ति के रिमाइंडर मिलेंगे।

Bitwarden इंस्टॉलेशन (1)

Bitwarden इंस्टॉलेशन (1)

इसके बाद Bitwarden आवश्यक Docker इमेजेज़ खींचेगा। इसमें एक मिनट या इतना समय लगेगा, और फिर आपको प्रॉम्प्ट्स का एक और राउंड मिलेगा।

डेटाबेस के लिए एक नाम चुनें। यहां रचनात्मक होने की ज़रूरत नहीं, vault बिलकुल ठीक काम करता है।

Bitwarden इंस्टॉलेशन (2)

Bitwarden इंस्टॉलेशन (2)

इसके बाद इंस्टॉलेशन अतिरिक्त Docker इमेजेज़ डाउनलोड करने के लिए आगे बढ़ेगा।

इंस्टॉलेशन ID और key प्राप्त करें। Bitwarden Host पेज खोलें और अपना एडमिन ईमेल और क्षेत्र दर्ज करें। फिर आपको दोनों मान मिलेंगे — इंस्टॉलेशन के दौरान पूछे जाने पर कॉपी/पेस्ट करें।

Bitwarden इंस्टॉलेशन ID और key

Bitwarden इंस्टॉलेशन ID और key

और बस — इंस्टॉलेशन पूरा हो गया:

Bitwarden इंस्टॉलेशन (3)

Bitwarden इंस्टॉलेशन (3)

स्क्रिप्ट ./bwdata/config.yml और ./bwdata/env/global.override.env में कॉन्फ़िगरेशन फ़ाइलें जेनरेट करती है। यदि बाद में सेटिंग्स बदलने की आवश्यकता हो, तो आप इन फ़ाइलों को सीधे एडिट कर सकते हैं।

अब केवल एक चीज़ बची है — Bitwarden शुरू करें:

sudo ./bitwarden.sh start

Docker सभी आवश्यक इमेजेज़ खींचता है और कंटेनरों को शुरू करता है। पहली बार में इसमें कुछ मिनट लगते हैं। स्क्रिप्ट प्रत्येक कंटेनर के शुरू होने पर प्रगति दिखाती है।

Bitwarden इंस्टॉलेशन (4)

Bitwarden इंस्टॉलेशन (4)

कुछ मिनटों के बाद, आपको टर्मिनल में संदेश दिखाई देना चाहिए Bitwarden is up and running!। इसका मतलब है कि इंस्टॉलेशन सफल रहा और आप अगले सेक्शन पर जाने के लिए तैयार हैं।

Bitwarden इंस्टॉलेशन (5)

Bitwarden इंस्टॉलेशन (5)

इंस्टॉलेशन सत्यापित करना

अपने डोमेन को ब्राउज़र में खोलें। आपको एक मान्य HTTPS सर्टिफिकेट के साथ Bitwarden लॉगिन पृष्ठ दिखना चाहिए।

Bitwarden लॉगिन पेज

यदि आपको सर्टिफिकेट चेतावनी दिखाई देती है, तो संभवतः Let's Encrypt आपके डोमेन को सत्यापित नहीं कर सका। जांच करें कि:

  • आपके DNS रिकॉर्ड सही IP पते पर पॉइंट कर रहे हैं
  • आपके फ़ायरवॉल में पोर्ट 80 और 443 खुले हैं
  • यदि आप Cloudflare का प्रॉक्सी उपयोग कर रहे हैं, तो इसे अस्थायी रूप से अक्षम करने का प्रयास करें

"Create Account" पर क्लिक करके अपना पहला यूज़र सेट करें। यह खाता आपके वॉल्ट का मालिक बनता है, इसलिए एक मजबूत मास्टर पासवर्ड का उपयोग करें जिसे आप भूलें नहीं। Bitwarden इस पासवर्ड को रिकवर नहीं कर सकता — यदि आप इसे खो देते हैं, तो आपका वॉल्ट डेटा चला जाता है।

Bitwarden यूज़र बनाना

Bitwarden यूज़र बनाना

अपना खाता बनाने के बाद, सब कुछ काम कर रहा है या नहीं, यह सत्यापित करने के लिए लॉगिन करें। आप एक टेस्ट लॉगिन आइटम बना सकते हैं और सुनिश्चित कर सकते हैं कि यह सही से सेव हो रहा है।

Bitwarden में लॉगिन आइटम जोड़ना

Bitwarden में लॉगिन आइटम जोड़ना

यह अपेक्षा के अनुरूप काम करता है, तो अगला, मैं टर्मिनल पर वापस जाऊंगा ताकि वहां भी सब कुछ ठीक चल रहा हो, यह सत्यापित कर सकूं।

यह कमांड चलाएं ताकि जांच सकें कि सभी कंटेनर चल रहे हैं:

sudo docker ps

आपको कई कंटेनर दिखाई देने चाहिए, जैसे bitwarden-web, bitwarden-api, bitwarden-db, आदि।

चल रहे कंटेनर

चल रहे कंटेनर

यदि कोई कंटेनर "Restarting" दिखे या सूची में न हो, तो इन कमांड्स से लॉग जांचें:

sudo docker logs bitwarden-api
sudo docker logs bitwarden-web

यदि आपको कोई स्टार्टअप समस्या है, तो आमतौर पर वे पोर्ट कॉन्फ्लिक्ट या अनुमति समस्याओं के कारण होती हैं।

पोर्ट कॉन्फ्लिक्ट तब होते हैं जब कुछ और पोर्ट 80 या 443 का उपयोग कर रहा हो। कॉन्फ्लिक्टिंग सेवा रोकें या ./bwdata/config.yml में Bitwarden के पोर्ट बदलें।

डेटाबेस इनिशियलाइज़ेशन विफलताएं आमतौर पर अनुमति समस्याओं का संकेत हैं। जांचें कि Docker यूज़र bwdata डायरेक्टरी में लिख सकता है:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

सर्टिफिकेट जेनरेशन विफलताओं का मतलब है Let's Encrypt आपके सर्वर तक नहीं पहुंच सका। सत्यापित करें कि आपका डोमेन सही IP पर पॉइंट कर रहा है और आपका फ़ायरवॉल पोर्ट 80 और 443 पर इनकमिंग ट्रैफ़िक की अनुमति देता है।

यदि कंटेनर लगातार रीस्टार्ट हो रहे हैं, तो उपलब्ध डिस्क स्पेस और मेमोरी जांचें। सभी सेवाओं को चलाने के लिए Bitwarden को कम से कम 2GB RAM चाहिए।

HTTPS और सर्टिफिकेट कॉन्फ़िगर करना

Bitwarden को सभी कनेक्शनों के लिए HTTPS की आवश्यकता है। इसे साधारण HTTP पर चलाने का कोई तरीका नहीं है।

Bitwarden के ब्राउज़र एक्सटेंशन और मोबाइल ऐप्स HTTP एंडपॉइंट्स से कनेक्ट होने से मना कर देते हैं। प्रोटोकॉल स्वयं ट्रांज़िट में आपके वॉल्ट डेटा की सुरक्षा के लिए एन्क्रिप्टेड कनेक्शन की मांग करता है।

इंस्टॉलेशन स्क्रिप्ट Let's Encrypt सर्टिफिकेट सेट करती है। Let's Encrypt एक मुफ़्त सर्टिफिकेट अथॉरिटी है जो SSL/TLS सर्टिफिकेट जारी करती है और रिन्यूअल संभालती है। जब आपने इंस्टॉलेशन के दौरान अपना डोमेन दर्ज किया, तो स्क्रिप्ट ने Let's Encrypt के ACME प्रोटोकॉल के माध्यम से स्वचालित सर्टिफिकेट जेनरेशन कॉन्फ़िगर कर दिया।

सर्टिफिकेट 90 दिनों बाद समाप्त हो जाते हैं, लेकिन Bitwarden का Docker सेटअप ऑटोमेटिक रिन्यूअल शामिल करता है। एक क्रॉन जॉब समाप्ति के करीब सर्टिफिकेट की जांच करता है और समाप्त होने से पहले उन्हें नवीनीकृत करता है। आपको मैन्युअली कुछ करने की ज़रूरत नहीं।

कस्टम सर्टिफिकेट कुछ स्थितियों में समझ आते हैं। यदि आप Bitwarden को ऐसे रिवर्स प्रॉक्सी के पीछे चला रहे हैं जो पहले से SSL टर्मिनेशन संभालता है, तो आप Let's Encrypt को अक्षम कर सकते हैं और प्रॉक्सी को सर्टिफिकेट प्रबंधित करने दें। यदि आपके संगठन के पास आंतरिक सर्टिफिकेट अथॉरिटी है, तो आप Bitwarden को वे सर्टिफिकेट उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं।

कस्टम सर्टिफिकेट उपयोग करने के लिए, ./bwdata/config.yml संपादित करें और ssl_certificate_path और ssl_key_path को अपनी सर्टिफिकेट फ़ाइलों पर सेट करें।

कस्टम सर्टिफिकेट का उपयोग करते हुए docker bitwarden

कस्टम सर्टिफिकेट का उपयोग

फिर Bitwarden को रीस्टार्ट करें:

sudo ./bitwarden.sh restart

जब सर्टिफिकेट रिन्यूअल विफल हो, तो पहले लॉग जांचें:

sudo docker logs bitwarden-nginx

आम रिन्यूअल विफलताएं तब होती हैं जब:

  • आपके डोमेन का DNS बदल गया हो और अब सर्वर की ओर पॉइंट न कर रहा हो
  • Cloudflare का प्रॉक्सी (ऑरेंज बादल) सक्षम हो, जो Let's Encrypt के वेरिफ़िकेशन को ब्लॉक कर रहा हो
  • पोर्ट 80 ब्लॉक हो, जिससे ACME चुनौतियां पूरी न हो पा रही हों
  • सर्टिफिकेट फ़ाइलों की अनुमतियां गलत हों

मूल समस्या ठीक करें, फिर रिन्यूअल मैन्युअली ट्रिगर करें:

sudo docker exec bitwarden-nginx certbot renew

यदि यह सफल हो, तो आगे के प्रयासों पर ऑटोमेटिक रिन्यूअल क्रॉन जॉब काम करना चाहिए।

ईमेल (SMTP) कॉन्फ़िगरेशन

Bitwarden को यूज़र इनविटेशन, पासवर्ड रीसेट लिंक, और टू-फैक्टर ऑथेंटिकेशन कोड भेजने के लिए ईमेल की आवश्यकता होती है।

SMTP कॉन्फ़िगर किए बिना, यूज़र अपने पासवर्ड रीसेट नहीं कर सकते। आप अपनी ऑर्गनाइज़ेशन में टीम सदस्यों को आमंत्रित नहीं कर सकते। आपातकालीन एक्सेस अनुरोध काम नहीं करेंगे। सिस्टम तो काम करता है, लेकिन आप महत्वपूर्ण अकाउंट रिकवरी और यूज़र मैनेजमेंट फीचर्स खो देते हैं।

SMTP सेटिंग्स ./bwdata/env/global.override.env में होती हैं।

SMTP सेटिंग्स फ़ाइल docker bitwarden

SMTP सेटिंग्स फ़ाइल

इस फ़ाइल को खोलें और अपने ईमेल प्रदाता का कॉन्फ़िगरेशन जोड़ें:

globalSettings__mail__replyToEmail=[email protected]
globalSettings__mail__smtp__host=smtp.gmail.com
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__username=[email protected]
globalSettings__mail__smtp__password=your-app-password

फॉर्मेट में नेस्टेड कॉन्फ़िगरेशन दर्शाने के लिए डबल अंडरस्कोर का उपयोग होता है। हर __ सेटिंग्स हायरेरकी के एक स्तर को अलग करता है।

फ़ाइल एडिट करने के बाद, Bitwarden को रीस्टार्ट करना न भूलें:

sudo ./bitwarden.sh restart

एडमिन पैनल के माध्यम से एक टेस्ट ईमेल भेजकर या पासवर्ड रीसेट का अनुरोध करके ईमेल डिलीवरी का परीक्षण करें।

यहां कुछ सामान्य SMTP गलतियां हैं जिनसे आप बचना चाहेंगे:

  • अपने नियमित ईमेल पासवर्ड की बजाय ऐप-विशिष्ट पासवर्ड का उपयोग करें, और सुनिश्चित करें कि आपकी SMTP सेटिंग्स आपके प्रदाता के दस्तावेज़ से बिल्कुल मेल खाती हों। कॉन्फ़िगरेशन के बाद हमेशा पासवर्ड रीसेट ट्रिगर करके या एडमिन पैनल के टेस्ट फ़ंक्शन से ईमेल डिलीवरी टेस्ट करें। SMTP क्रेडेंशियल्स को global.override.env फ़ाइल में सुरक्षित रूप से स्टोर करें और अनधिकृत एक्सेस से बचने के लिए फ़ाइल अनुमतियां प्रतिबंधित रखें।

  • गलत पोर्ट नंबर। पोर्ट 587 STARTTLS कनेक्शनों को संभालता है, पोर्ट 465 SSL/TLS को, और पोर्ट 25 आम तौर पर क्लाउड प्रदाताओं द्वारा ब्लॉक किया जाता है। यदि एक पोर्ट काम नहीं करता, तो दूसरा आज़माएं।

  • SSL/TLS भ्रम। पोर्ट 587 पर STARTTLS के लिए ssl=false सेट करें, या पोर्ट 465 पर डायरेक्ट SSL के लिए ssl=true। इन सेटिंग्स को मिलाने से कनेक्शन विफल होते हैं।

  • फ़ायरवॉल द्वारा आउटबाउंड SMTP ब्लॉक होना। कुछ क्लाउड प्रदाता डिफ़ॉल्ट रूप से पोर्ट 25 को ब्लॉक करते हैं। इसके बजाय पोर्ट 587 या 465 का उपयोग करें, जिन्हें शायद ही कभी ब्लॉक किया जाता है।

यदि ईमेल नहीं भेजे जा रहे, तो API कंटेनर लॉग जांचें:

sudo docker logs bitwarden-api

SMTP कनेक्शन त्रुटियों या प्रमाणीकरण विफलताओं को देखें। लॉग सटीक रूप से दिखाते हैं कि ईमेल डिलीवरी में क्या गलत हुआ।

Bitwarden को अपडेट और बैकअप करना

स्वयं-होस्टेड इंस्टॉलेशन के साथ मैन्युअल बैकअप और अपडेट का झंझट आता है। सौभाग्य से, इन्हें करना आसान है।

Bitwarden अपडेट करना

अपडेट करने से पहले, Bitwarden को रोकें और अपना डेटा बैकअप करें। अपडेट विफल हो सकते हैं या समस्याएं ला सकते हैं, और यदि कुछ गलत हो जाए तो रॉलबैक करने का तरीका चाहिए।

cd /opt/bitwarden
sudo ./bitwarden.sh stop

पूरी bwdata डायरेक्टरी का बैकअप लें:

sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/

इस बैकअप को किसी सुरक्षित स्थान पर ले जाएं, जैसे बाहरी ड्राइव या दूसरे सर्वर पर।

अब इस कमांड से Bitwarden अपडेट करें:

sudo ./bitwarden.sh update

अपडेट स्क्रिप्ट नवीनतम Docker इमेजेज़ खींचती है, आवश्यक होने पर कॉन्फ़िगरेशन फ़ाइलें अपडेट करती है, और सभी कंटेनरों को रीस्टार्ट करती है। आमतौर पर इसमें कुछ मिनट लगते हैं।

Bitwarden अपडेट करना

Bitwarden अपडेट करना

अपडेट पूरा होने के बाद, अपने वेब वॉल्ट में लॉगिन करके और अपना डेटा अक्षुण्ण है या नहीं जांचकर सत्यापित करें कि सब कुछ काम कर रहा है।

यदि अपडेट से कुछ टूट जाए, तो बस अपना बैकअप रिस्टोर करें:

sudo ./bitwarden.sh stop
sudo rm -rf bwdata/
sudo tar -xzf bitwarden-backup-YYYYMMDD.tar.gz
sudo ./bitwarden.sh start

बैकअप

bwdata डायरेक्टरी में वह सब कुछ होता है जिसकी Bitwarden को चलने के लिए ज़रूरत होती है। आपको इसका नियमित बैकअप लेना चाहिए।

इस डायरेक्टरी में शामिल है:

  • आपका वॉल्ट डेटाबेस जिसमें सभी एन्क्रिप्टेड पासवर्ड हैं
  • SSL सर्टिफिकेट
  • कॉन्फ़िगरेशन फ़ाइलें
  • लॉग्स और अटैचमेंट्स
  • Docker Compose परिभाषाएं

डेटा की सुसंगतता सुनिश्चित करने के लिए बैकअप से पहले Bitwarden रोकें:

sudo ./bitwarden.sh stop
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/
sudo ./bitwarden.sh start

बैकअप को कई स्थानों पर स्टोर करें। एक सर्वर पर रखें, एक किसी अन्य मशीन पर, और संभव हो तो एक क्लाउड स्टोरेज में।

बैकअप से रिस्टोर करने के लिए, Bitwarden को रोकें, वर्तमान bwdata डायरेक्टरी डिलीट करें, अपना बैकअप एक्सट्रैक्ट करें, और रीस्टार्ट करें। यह प्रक्रिया विफल अपडेट से रॉलबैक करने जैसी ही है।

आप क्रॉन जॉब के साथ बैकअप को ऑटोमेट भी कर सकते हैं जो आपके वॉल्ट डेटा में बदलाव की आवृत्ति के अनुसार दैनिक या साप्ताहिक चलता हो।

Docker में Bitwarden चलाते समय सामान्य समस्याएं

साफ-सुथरे इंस्टॉलेशन के बावजूद, समस्याएं आ सकती हैं। यहां सबसे सामान्य समस्याओं का निदान कैसे करें:

पोर्ट कॉन्फ्लिक्ट तब होते हैं जब कोई और सेवा पहले से पोर्ट 80 या 443 का उपयोग कर रही हो। देखें कि इन पोर्ट्स का उपयोग क्या कर रहा है:

sudo netstat -tlnp | grep ':80\\|:443'

यदि आप Apache, Nginx, या कोई और वेब सर्वर चलते हुए देखें, तो आपको या तो उस सेवा को रोकना होगा या Bitwarden के पोर्ट बदलने होंगे। पोर्ट बदलने के लिए, ./bwdata/config.yml एडिट करें और http_port और https_port को 8080 और 8443 जैसे अलग मानों पर सेट करें। फिर रीस्टार्ट करें:

sudo ./bitwarden.sh restart

सर्टिफिकेट विफलताएं ब्राउज़र चेतावनियों के रूप में या Bitwarden के शुरू होने से इनकार के रूप में सामने आती हैं। nginx कंटेनर लॉग इस कमांड से जांचें:

sudo docker logs bitwarden-nginx

ACME चैलेंज विफलताएं या सर्टिफिकेट वैलिडेशन एरर देखें। सबसे सामान्य कारण ये हैं:

  • DNS अभी आपके सर्वर की ओर पॉइंट नहीं कर रहा
  • Cloudflare प्रॉक्सी Let's Encrypt वेरिफ़िकेशन को ब्लॉक कर रहा
  • पोर्ट 80 आपके फ़ायरवॉल द्वारा ब्लॉक है
  • आपके कॉन्फ़िग में डोमेन DNS रिकॉर्ड्स से मेल नहीं खा रहा

DNS या फ़ायरवॉल समस्या ठीक करें, फिर मैन्युअली सर्टिफिकेट रिक्वेस्ट करें:

sudo docker exec bitwarden-nginx certbot renew --force-renewal

कंटेनर शुरू न होना आमतौर पर डेटाबेस समस्याओं या गायब फ़ाइलों का संकेत है। यह देखकर जांचें कि कौन से कंटेनर चल रहे हैं:

sudo docker ps -a

"Exited" या "Restarting" स्थिति वाले कंटेनरों में समस्या है। उनके लॉग जांचें:

sudo docker logs bitwarden-db
sudo docker logs bitwarden-api

डेटाबेस इनिशियलाइज़ेशन एरर का मतलब है कि bwdata डायरेक्टरी में अनुमति समस्याएं हैं। अनुमतियां ठीक करें:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

यदि कंटेनर फिर भी शुरू नहीं होते, तो डिस्क स्पेस जांचें:

df -h

ध्यान रखें कि Bitwarden को ठीक से चलने के लिए कम से कम कुछ GB खाली स्थान चाहिए।

SMTP काम न करना पासवर्ड रीसेट और यूज़र इनविटेशन को रोक देता है। जब आप ईमेल भेजने की कोशिश करें, तो API लॉग देखकर पहले अपनी SMTP सेटिंग्स टेस्ट करें:

sudo docker logs -f bitwarden-api

पासवर्ड रीसेट प्रयास ट्रिगर करें और लॉग में SMTP त्रुटियों को देखें। सबसे आम समस्याएं हैं:

  • गलत यूज़रनेम या पासवर्ड (अपने नियमित पासवर्ड के बजाय ऐप-विशिष्ट पासवर्ड उपयोग करें)
  • गलत पोर्ट या SSL सेटिंग्स
  • फ़ायरवॉल द्वारा आउटबाउंड SMTP कनेक्शन ब्लॉक होना
  • ईमेल प्रदाता द्वारा अतिरिक्त प्रमाणीकरण चरणों की आवश्यकता

आप ./bwdata/env/global.override.env में अपनी SMTP सेटिंग्स को अपने प्रदाता के दस्तावेज़ से बिल्कुल मिलान कर सकते हैं। होस्टनेम या पोर्ट में छोटी टाइपो भी ईमेल डिलीवरी तोड़ देती है।

SMTP सेटिंग्स ठीक करने के बाद, Bitwarden को रीस्टार्ट करें और फिर से टेस्ट करें।

Bitwarden बनाम Vaultwarden (Docker उपयोगकर्ताओं की पसंद)

Vaultwarden Bitwarden सर्वर का एक अनौपचारिक, समुदाय द्वारा बनाए रखा Rust में लिखा गया इम्प्लीमेंटेशन है।

यह Bitwarden Inc. से संबद्ध नहीं है, लेकिन यह सभी आधिकारिक Bitwarden क्लायंट के साथ संगत है। आप वही ब्राउज़र एक्सटेंशन, मोबाइल ऐप्स और डेस्कटॉप एप्लिकेशन उपयोग करते हैं। अंतर पूरी तरह सर्वर साइड पर है।

उपयोगकर्ता Vaultwarden क्यों चुनते हैं

  • कम संसाधन उपयोग। Vaultwarden एक हल्के सिंगल कंटेनर पर चलता है जिसे 100MB से कम RAM चाहिए। आधिकारिक Bitwarden कई कंटेनर उपयोग करता है और कम से कम 2GB चाहिए। यदि आप एक छोटे VPS या Raspberry Pi पर चला रहे हैं, तो Vaultwarden अधिक उपयुक्त है।
  • सरल सेटअप। एक कंटेनर का मतलब कम मूविंग पार्ट्स। अलग डेटाबेस कंटेनर नहीं, अलग वेब कंटेनर नहीं। आप एक इमेज खींचते हैं, एक कंटेनर कॉन्फ़िगर करते हैं, और बस।
  • कुछ प्रीमियम फीचर्स बिना पेड लाइसेंस के। Vaultwarden फाइल अटैचमेंट्स और इमरजेंसी एक्सेस जैसे फीचर्स को सक्षम करता है जिनके लिए आधिकारिक Bitwarden पर प्रीमियम सदस्यता चाहिए।

Vaultwarden के साथ समझौते

  • यह एक सामुदायिक प्रोजेक्ट है। अपडेट स्वयंसेवकों से आते हैं, समर्पित सपोर्ट स्टाफ वाली कंपनी से नहीं।
  • कोई आधिकारिक सपोर्ट नहीं। Bitwarden Inc. Vaultwarden समस्याओं में आपकी मदद नहीं करेगा। आपको समुदाय फ़ोरम और GitHub इश्यूज़ पर निर्भर रहना होगा।
  • संभावित संगतता समस्याएं। जब Bitwarden नए फीचर्स जारी करता है, तो Vaultwarden को पकड़ने की ज़रूरत होती है। नई कार्यक्षमता के काम करने से पहले आमतौर पर एक देरी होती है।

आपको कौन सा उपयोग करना चाहिए?

यदि आप एंटरप्राइज़ सपोर्ट, सभी फीचर्स के साथ गारंटीकृत संगतता, और उन क्लायंट्स को बनाने वाली कंपनी का बैकिंग चाहते हैं, तो आधिकारिक Bitwarden का उपयोग करें। यदि आपके पास उचित आकार का VPS है, तो संसाधन आवश्यकताएं कम मायने रखती हैं।

यदि आप सीमित हार्डवेयर पर चला रहे हैं, सरल सेटअप चाहते हैं, या बिना भुगतान के प्रीमियम फीचर्स चाहिए, तो Vaultwarden चुनें। बस समझ लें कि आप संसाधन दक्षता के बदले आधिकारिक सपोर्ट छोड़ रहे हैं।

दोनों स्वयं-होस्टिंग के लिए अच्छा काम करते हैं, और दोनों आपके पासवर्ड को उसी एन्क्रिप्शन से सुरक्षा देते हैं जिसकी क्लायंट उम्मीद करते हैं।

मूलभूत सुरक्षा सर्वोत्तम प्रथाएं

स्पष्ट बात है, लेकिन Bitwarden आपके पासवर्ड स्टोर करता है, इसलिए आपको केवल एन्क्रिप्शन से अधिक सुरक्षा चाहिए। यहां कुछ सर्वोत्तम प्रथाएं दी गई हैं।

अपने सर्वर को अपडेटेड रखें। सुरक्षा पैच मायने रखते हैं, इसलिए नियमित रूप से अपडेट चलाएं। ऐसा करने के लिए यहां एक कमांड है:

sudo apt update && sudo apt upgrade -y

आप ऑटोमैटिक सिक्योरिटी अपडेट सेट कर सकते हैं ताकि महत्वपूर्ण पैच बिना मैन्युअल हस्तक्षेप के इंस्टॉल हो जाएं। Ubuntu पर, unattended-upgrades इंस्टॉल करें:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

एडमिन पैनल तक पहुंच को प्रतिबंधित करें। Bitwarden का एडमिन इंटरफेस /admin पर होता है और प्रमाणीकरण के लिए एक अलग एडमिन टोकन का उपयोग करता है। इंस्टॉलेशन के दौरान एक मजबूत टोकन जेनरेट करें और इसे सुरक्षित रूप से स्टोर करें। यदि संभव हो तो एडमिन पैनल को सार्वजनिक इंटरनेट पर एक्सपोज़ न करें।

यदि आपको रिमोट एडमिन एक्सेस चाहिए, तो /admin को सार्वजनिक रूप से सुलभ छोड़ने के बजाय SSH टनलिंग या VPN का उपयोग करें।

हर जगह HTTPS का उपयोग करें। कभी भी HTTPS अक्षम न करें या सर्टिफिकेट चेतावनियों को बायपास न करें। यदि आपके सर्टिफिकेट काम नहीं कर रहे, तो समस्या को ठीक करें बजाय इसके चारों ओर काम करने के। Bitwarden क्लायंट्स अच्छे कारण से HTTP पर कनेक्ट होने से इनकार करते हैं।

Bitwarden रिलीज़ मॉनिटर करें। Bitwarden के GitHub रिलीज़ को सब्सक्राइब करें या उनके ब्लॉग पर सुरक्षा अपडेट देखें। जब नया वर्ज़न आए, तो अपडेट करने से पहले रिलीज़ नोट्स पढ़ें ताकि समझ सकें क्या बदला।

टू-फैक्टर ऑथेंटिकेशन सक्षम करें अपने वॉल्ट अकाउंट पर। भले ही कोई आपका मास्टर पासवर्ड चुरा ले, 2FA अनधिकृत एक्सेस को रोकता है। किसी ऑथेंटिकेटर ऐप या हार्डवेयर कुंजी का उपयोग करें।

फ़ायरवॉल का उपयोग करें। संदर्भ के लिए, केवल आवश्यक पोर्ट्स की अनुमति देने के लिए आप UFW को ऐसे कॉन्फ़िगर कर सकते हैं:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

बाकी सब कुछ डिफ़ॉल्ट रूप से ब्लॉक करें।

लॉग्स कभी-कभी जांचें असामान्य गतिविधि के लिए। असफल लॉगिन प्रयास या अनपेक्षित API कॉल्स देखें:

sudo docker logs bitwarden-api | grep -i "failed\\|error"

जैसा कि आप देख सकते हैं, स्वयं-होस्टेड Bitwarden का मतलब है कि आपको समय-समय पर कुछ काम करना होगा। यह पूर्ण नियंत्रण की कीमत है।

निष्कर्ष

Docker Bitwarden को स्वयं-होस्ट करना आसान बना देता है और आपको एंटरप्राइज़ इन्फ्रास्ट्रक्चर की आवश्यकता नहीं।

आधिकारिक इंस्टॉलेशन स्क्रिप्ट आपके लिए सब कुछ करती है। आपको स्वचालित अपडेट, सर्टिफिकेट मैनेजमेंट, और एक घंटे से भी कम समय में एक काम करने वाला वॉल्ट मिलता है — मुझे इसे सेट करने में लगभग 15 मिनट लगे, जिसमें कंप्यूट इंस्टैंस प्रोविज़निंग और DNS सेटअप शामिल था। अधिकांश उपयोगकर्ताओं को इस लेख में शामिल चीज़ों से अधिक की आवश्यकता कभी नहीं पड़ती।

एकल सर्वर पर बुनियादी सेटअप से शुरू करें। बैकअप, अपडेट और बुनियादी समस्या निवारण में सहज हो जाएं, उसके बाद ही रिवर्स प्रॉक्सी, बाहरी डेटाबेस, या हाई अवेलेबिलिटी सेटअप जोड़ें। वे उन्नत कॉन्फ़िगरेशन उन समस्याओं का समाधान करते हैं जो शायद अभी आपके पास नहीं हैं।

यदि आप अपने पासवर्ड के साथ थर्ड पार्टी पर भरोसा नहीं करना चाहते, तो यही रास्ता है। लेकिन सेटअप को जरूरत से ज्यादा जटिल बनाकर कुछ तोड़ना भी उचित नहीं। आधिकारिक Docker डिप्लॉयमेंट चलाएं, नियमित बैकअप लें, और आपके नियंत्रण में एक सुदृढ़ पासवर्ड मैनेजर होगा।

क्या आप Docker के बारे में और सीखने के लिए तैयार हैं? हमारे Containerization and Virtualization Concepts कोर्स से शुरू करें और फिर इसे Docker and Kubernetes के साथ क्रियान्वयन में देखें।

Dario Radečić

लेखक

Dario Radečić

क्रोएशिया में स्थित सीनियर डेटा साइंटिस्ट। 700 से अधिक प्रकाशित लेखों के साथ टॉप टेक राइटर, जिनसे 10M+ व्यूज़ प्राप्त हुए। Machine Learning Automation with TPOT के पुस्तक लेखक।

FAQs

मैं अपनी Bitwarden स्वयं-होस्टेड इंस्टैंस के लिए हाई अवेलेबिलिटी कैसे सुनिश्चित कर सकता/सकती हूँ?

हाई अवेलेबिलिटी के लिए कई Bitwarden इंस्टैंस को एक लोड बैलेंसर के पीछे साझा बाहरी डेटाबेस जैसे PostgreSQL या MySQL के साथ चलाना आवश्यक है। आपको प्रत्येक इंस्टैंस को एक ही डेटाबेस से कनेक्ट करने और अटैचमेंट्स के लिए साझा स्टोरेज का उपयोग करने के लिए कॉन्फ़िगर करना होगा। अधिकांश व्यक्तिगत और छोटी टीम डिप्लॉयमेंट के लिए, नियमित बैकअप और एक प्रलेखित रिस्टोर प्रक्रिया बिना HA आर्किटेक्चर की जटिलता के पर्याप्त सुरक्षा प्रदान करती है।

Bitwarden में SMTP कॉन्फ़िगर करने के सर्वोत्तम तरीके क्या हैं?

अपने नियमित ईमेल पासवर्ड की बजाय ऐप-विशिष्ट पासवर्ड का उपयोग करें, और सत्यापित करें कि आपकी SMTP सेटिंग्स आपके प्रदाता के दस्तावेज़ से बिल्कुल मेल खाती हों। कॉन्फ़िगरेशन के बाद हमेशा ईमेल डिलीवरी का परीक्षण करें — पासवर्ड रीसेट ट्रिगर करके या एडमिन पैनल के टेस्ट फ़ंक्शन का उपयोग करके। SMTP क्रेडेंशियल्स को सुरक्षित रूप से global.override.env फ़ाइल में स्टोर करें और अनधिकृत पहुंच से बचाने के लिए फ़ाइल अनुमतियां प्रतिबंधित करें।

Bitwarden में 502 Bad Gateway त्रुटि को कैसे ट्रबलशूट करूँ?

sudo docker ps से जांचें कि सभी कंटेनर चल रहे हैं और कोई "Restarting" स्थिति में तो नहीं। विफल सेवा की पहचान करने के लिए sudo docker logs bitwarden-nginx और sudo docker logs bitwarden-api से nginx और API कंटेनर लॉग की समीक्षा करें। आम कारणों में डेटाबेस कनेक्शन समस्याओं के कारण API कंटेनर का शुरू न होना, अपर्याप्त मेमोरी, या रिवर्स प्रॉक्सी को ब्लॉक करने वाली सर्टिफिकेट समस्याएं शामिल हैं।

क्या मैं Bitwarden के साथ कस्टम सर्वर पोर्ट्स का उपयोग कर सकता/सकती हूँ?

हाँ, ./bwdata/config.yml एडिट करें और http_port और https_port को 8080 और 8443 जैसे अपने पसंदीदा मानों में बदलें। पोर्ट बदलने के बाद, sudo ./bitwarden.sh restart से Bitwarden को रीस्टार्ट करें। ध्यान रखें कि नॉन-स्टैंडर्ड पोर्ट्स का उपयोग करने का मतलब है कि वॉल्ट एक्सेस करते समय आपको अपने डोमेन URL में पोर्ट नंबर शामिल करना होगा।

मैं Bitwarden में syslog पर लॉगिंग कैसे सक्षम करूँ?

Bitwarden के Docker कंटेनर डिफ़ॉल्ट रूप से stdout/stderr में लॉग करते हैं, जिसे Docker स्वचालित रूप से कैप्चर करता है। आप कंटेनर सेटिंग्स में Docker के लॉगिंग ड्राइवर को कॉन्फ़िगर करके या Fluentd या Logstash जैसे लॉग एग्रीगेशन टूल का उपयोग करके इन लॉग्स को syslog पर फॉरवर्ड कर सकते हैं। सरल syslog इंटीग्रेशन के लिए, Docker के syslog लॉगिंग ड्राइवर का उपयोग करें — अपने कंटेनर कॉन्फ़िगरेशन में --log-driver=syslog जोड़ें, हालांकि इसके लिए Docker Compose फ़ाइल में मैन्युअल संशोधन आवश्यक है।

विषय