Vaultwarden: چیست و چگونه آن را روی VPS نصب کنیم

2 دقیقه خواندن
Tropic
Vaultwarden: چیست و چگونه آن را روی VPS نصب کنیم

Language: fa

Vaultwarden: نصب مدیر رمز عبور شخصی روی VPS

Vaultwarden به شما اجازه می‌دهد رمزهای عبور را روی سرور خودتان ذخیره و بین رایانه، تلفن و مرورگر همگام کنید. این سرویس با برنامه‌ها و افزونه‌های رسمی Bitwarden کار می‌کند و کافی است در آن‌ها آدرس سرور شخصی خود را وارد کنید.

در ادامه بررسی می‌کنیم Vaultwarden به چه نوع VPS نیاز دارد، چگونه آن را با Docker Compose روی Ubuntu اجرا کنیم، ثبت‌نام عمومی را ببندیم، HTTPS را فعال کنیم و نسخه پشتیبان بگیریم.

Vaultwarden در پنج مرحله

طرح حداقلی راه‌اندازی:

  1. یک VPS با Ubuntu بسازید و زیردامنه‌ای مانند vault.example.com را به آن متصل کنید.
  2. Docker و Docker Compose را نصب کنید.
  3. Vaultwarden را همراه با Caddy برای HTTPS خودکار اجرا کنید.
  4. نخستین حساب را بسازید و ثبت‌نام عمومی را غیرفعال کنید.
  5. احراز هویت دومرحله‌ای، به‌روزرسانی‌ها و نسخه‌های پشتیبان را فعال کنید.

برای یک خزانه شخصی یا خانواده‌ای کوچک، پایگاه داده داخلی SQLite کافی است. معمولاً نیازی به سرور جداگانه PostgreSQL ندارید.

Vaultwarden چیست؟

Vaultwarden یک پیاده‌سازی غیررسمی از API بیت‌واردن است که با Rust نوشته شده و برای استقرار روی سرور شخصی طراحی شده است. این سرویس با کلاینت‌های رسمی Bitwarden سازگار است: رابط وب، برنامه‌های موبایل و دسکتاپ، افزونه‌های مرورگر و CLI.

داده‌های خزانه پیش از ارسال به سرور، روی دستگاه کاربر رمزگذاری می‌شوند. VPS پایگاه داده رمزگذاری‌شده را همگام می‌کند، اما رمز اصلی را نمی‌داند و اگر آن را گم کنید، نمی‌تواند بازیابی‌اش کند.

Vaultwarden محصول رسمی Bitwarden نیست. مسئولیت به‌روزرسانی، دسترس‌پذیری، HTTPS، نسخه‌های پشتیبان و امنیت VPS بر عهده مالک است.

Vaultwarden و Bitwarden: تفاوت چیست؟

پارامترBitwarden CloudVaultwarden
سرورزیرساخت BitwardenVPS یا سرور خانگی شما
برنامه‌هاکلاینت‌های Bitwardenهمان کلاینت‌ها در حالت Self-hosted
نگهداریتوسط ارائه‌دهنده انجام می‌شودتوسط مالک انجام می‌شود
کنترل نسخه‌های پشتیبانمحدود به امکانات سرویسکامل
راه‌اندازیثبت‌نام حسابتنظیم دامنه، Docker و VPS

Vaultwarden برای کسانی مناسب است که کنترل بخش سرور را می‌خواهند و آماده‌اند Linux را به‌روزرسانی و نسخه‌های پشتیبان را بررسی کنند. سرویس ابری برای کسی که نمی‌خواهد مدیریت سرور انجام دهد، عملی‌تر است. خودمیزبانی به‌طور خودکار سیستم را امن نمی‌کند؛ فقط مسئولیت را به مالک منتقل می‌کند.

نیازمندی‌های سرور Vaultwarden

برای استفاده شخصی، پیکربندی شروع معقول چنین است:

  • 1 vCPU؛
  • 1 تا 2 GB RAM؛
  • 10 تا 20 GB فضای SSD یا NVMe؛
  • Ubuntu 24.04 LTS؛
  • IP عمومی و دامنه؛
  • پورت‌های باز 80 و 443.

این مقدار برای Ubuntu، Docker، Caddy و به‌روزرسانی‌ها یک برآورد عملی است، نه حداقل رسمی پروژه. برای ده‌ها کاربر، پیوست‌های زیاد یا چند کانتینر، بهتر است حداقل 2 GB RAM انتخاب کنید.

چگونه Vaultwarden را روی VPS نصب کنیم؟

در این مثال از Ubuntu 24.04 و زیردامنه vault.example.com استفاده می‌شود. آن را در همه فایل‌ها با آدرس خود جایگزین کنید.

1. DNS را تنظیم و Ubuntu را آماده کنید

یک رکورد DNS از نوع A بسازید که به آدرس IPv4 مربوط به VPS اشاره کند. سپس از طریق SSH متصل شوید:

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

تا زمانی که از کارکرد اتصال جدید مطمئن نشده‌اید، نشست SSH فعلی را نبندید.

2. Docker و Docker Compose را نصب کنید

مخزن رسمی Docker را اضافه کنید:

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. پیکربندی را بسازید

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

فایل compose.yaml را ایجاد کنید:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2-alpine
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

فایل Caddyfile را ایجاد کنید:

vault.example.com {
    reverse_proxy vaultwarden:80
}

فقط Caddy از بیرون قابل دسترسی است. کانتینر Vaultwarden داخل شبکه Docker در دسترس است و داده‌ها در /opt/vaultwarden/vw-data ذخیره می‌شوند. در تنظیمات فعلی به پورت WebSocket جداگانه نیاز نیست.

4. Vaultwarden را اجرا کنید

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

آدرس https://vault.example.com را باز کنید. اگر DNS از قبل به VPS اشاره کند و پورت‌های 80 و 443 در دسترس باشند، Caddy گواهی TLS را به‌صورت خودکار دریافت می‌کند. اگر سایت باز نشد، DNS، فایروال و استفاده نشدن پورت‌ها توسط وب‌سرور دیگر را بررسی کنید.

5. حساب بسازید و ثبت‌نام را غیرفعال کنید

نخستین حساب را ثبت کنید. از یک رمز اصلی طولانی و یکتا استفاده کنید و یک نسخه اضطراری را خارج از Vaultwarden نگه دارید؛ مدیر سرور نمی‌تواند رمز اصلی را بازنشانی یا بازیابی کند.

پس از ثبت‌نام، مقدار زیر را در compose.yaml تغییر دهید:

SIGNUPS_ALLOWED: "false"

تنظیم را اعمال کنید:

docker compose up -d

پس از آن افراد دیگر نمی‌توانند حساب بسازند. برای افزودن کاربر جدید می‌توانید موقتاً ثبت‌نام را فعال کنید یا دعوت‌نامه‌ها را پیکربندی کنید.

چگونه برنامه Bitwarden را متصل کنیم؟

لازم نیست کلاینت جداگانه‌ای برای Vaultwarden نصب کنید. در صفحه ورود برنامه یا افزونه Bitwarden، گزینه Self-hosted را انتخاب و وارد کنید:

https://vault.example.com

از این آدرس در رایانه، تلفن و مرورگر خود استفاده کنید. برای مهاجرت، خروجی مدیر رمز عبور قبلی را وارد کنید. فایل CSV یا JSON بدون رمزگذاری را بلافاصله پس از انتقال حذف کنید و آن را از طریق ایمیل یا لینک عمومی ارسال نکنید.

پیکربندی امن Vaultwarden

پس از راه‌اندازی چند اقدام انجام دهید:

  • TOTP یا WebAuthn را فعال کنید و کدهای بازیابی را جداگانه نگه دارید؛
  • SIGNUPS_ALLOWED را غیرفعال نگه دارید؛
  • از کلیدهای SSH استفاده کنید و Ubuntu را مرتب به‌روزرسانی کنید؛
  • پورت داخلی کانتینر Vaultwarden را در اینترنت منتشر نکنید؛
  • کانتینرهای مشکوک را روی همان VPS اجرا نکنید؛
  • مطمئن شوید نسخه‌های پشتیبان قابل بازیابی هستند.

پنل /admin برای یک خزانه شخصی معمولاً ضروری نیست. اگر آن را فعال کردید، از یک توکن طولانی در قالب هش Argon2 استفاده کنید و در صورت امکان دسترسی را با IP یا VPN محدود کنید. نگهداری ADMIN_TOKEN به‌صورت متن ساده مطلوب نیست.

پیش از به‌روزرسانی نسخه پشتیبان بگیرید و سپس اجرا کنید:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

سرور باید مرتب به‌روزرسانی شود: کلاینت‌های Bitwarden مستقل از سرور منتشر می‌شوند، بنابراین نسخه بسیار قدیمی Vaultwarden ممکن است سازگاری خود را با آن‌ها از دست بدهد.

نسخه پشتیبان Vaultwarden

پایگاه داده اصلی SQLite در vw-data/db.sqlite3 قرار دارد و پیوست‌ها به‌صورت فایل‌های جداگانه ذخیره می‌شوند. پایگاه داده در حال اجرا را با دستور معمول cp کپی نکنید؛ نوشتن هم‌زمان ممکن است کپی را ناسازگار کند.

با دستور داخلی یک snapshot امن بسازید:

docker exec vaultwarden /vaultwarden backup

فایل جداگانه db_.sqlite3 در پوشه داده ظاهر می‌شود. دایرکتوری‌های attachments و sends، فایل config.json در صورت ایجاد شدن، و فایل‌های rsa_key را نیز همراه آن ذخیره کنید.

نسخه پشتیبان روی همان VPS در برابر حذف سرور یا خرابی دیسک محافظت نمی‌کند. کپی‌ها را به‌صورت خودکار به دستگاهی دیگر یا فضای ذخیره‌سازی ابری جداگانه بفرستید و ترجیحاً رمزگذاری بیشتری اعمال کنید. هر چند وقت یک‌بار بازیابی آزمایشی انجام دهید.

کدام VPS را برای Vaultwarden انتخاب کنیم؟

یک VPS لینوکس پایه با 2 GB RAM برای خزانه شخصی یا خانوادگی کافی است. این مقدار برای Ubuntu، Docker، Caddy، به‌روزرسانی‌ها و نسخه‌های پشتیبان خودکار ظرفیت بیشتری فراهم می‌کند.

می‌توانید Vaultwarden را روی VPS ابتدایی tropic.host اجرا کنید و اگر بعداً سرویس‌های self-hosted دیگری به سرور افزودید، منابع را افزایش دهید. برای مدیر رمز عبور، شبکه پایدار، IP عمومی ثابت و دیسک قابل اعتماد از هسته‌های اضافی CPU مهم‌تر هستند.

سرور خانگی نیز مناسب است، اما در آن صورت باید دسترسی خارجی، HTTPS، برق پایدار و بازیابی پس از خرابی را خودتان فراهم کنید. VPS معمولاً زمانی ساده‌تر است که خزانه باید از هر شبکه‌ای کار کند.

نتیجه‌گیری

Vaultwarden مدیر رمز عبور مناسبی برای خودمیزبانی است؛ برای کسانی که می‌خواهند از کلاینت‌های Bitwarden استفاده کنند و بخش سرور را روی زیرساخت خود نگه دارند. یک VPS کوچک، دامنه، Docker Compose و Caddy برای شروع کافی است.

مسئولیت اصلی پس از نصب آغاز می‌شود: ثبت‌نام را غیرفعال کنید، 2FA را فعال کنید، کانتینرها را به‌روز نگه دارید و نسخه‌های پشتیبان آزمایش‌شده را خارج از سرور ذخیره کنید.

FAQ

آیا می‌توان Vaultwarden را بدون دامنه نصب کرد؟

از نظر فنی می‌توانید از یک آدرس محلی استفاده کنید، اما خزانه وب به محیط امن HTTPS نیاز دارد. برای دسترسی از دستگاه‌های مختلف، استفاده از دامنه و گواهی TLS ساده‌تر است.

Vaultwarden به چه مقدار RAM نیاز دارد؟

برای یک یا چند کاربر، 1 GB RAM معمولاً کافی است. VPS دارای 2 GB فضای راحت‌تری برای سیستم، Docker، Caddy و به‌روزرسانی‌ها فراهم می‌کند.

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

بله. در صفحه ورود، سرور خودمیزبان را انتخاب و آدرس کامل HTTPS نمونه Vaultwarden خود را وارد کنید.

اگر VPS موقتاً در دسترس نباشد چه اتفاقی می‌افتد؟

داده‌های قبلاً همگام‌شده معمولاً در حافظه محلی رمزگذاری‌شده کلاینت باقی می‌مانند. با این حال تا زمان بازیابی سرور، همگام‌سازی، ورود به دستگاه جدید و دریافت تغییرات کار نمی‌کند.

آیا می‌توان رمز اصلی فراموش‌شده را از طریق /admin بازیابی کرد؟

خیر. مدیر می‌تواند سرور و حساب‌ها را مدیریت کند، اما کلید رمزگشایی خزانه کاربر را ندارد. رمز اصلی و کدهای بازیابی باید جداگانه نگهداری شوند.