WIUNIX ACADEMY
راهاندازی Vaultwarden با HTTPS، مدیریت محدود و بکاپ هماهنگ
Vaultwarden جامعهمحور را با ایمیج ثابتشده، بکاند لوپبک، PHC خصوصی، ثبتنام بسته و برنامهٔ بازیابی هماهنگ روی سرور اختصاصی راهاندازی کنید.
محیطت را انتخاب کنآموزش متناسب با محیط تو
کجا اجرا میکنی؟
سیستمعامل و نسخه را انتخاب کن تا مراحل، دستورها و راهحلها برای همان محیط نمایش داده شوند.
آموزش متناسب با مقادیر تو
تنظیمات این آموزش
مقادیر نمونه را برای محیط خودت تنظیم کن؛ متن و دستورهای مرتبط با هم تغییر میکنند. رمز، کلید خصوصی و توکن وارد نکن. مقادیر فقط در همین زبانه نگهداری میشوند و به سرور یا لینک اشتراکگذاری فرستاده نمیشوند. پیش از اجرا، DNS، گواهیها و سیاست شبکهٔ واقعی را بررسی کن.
آیپی، دامنه یا پورت مثالها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای بهروزشده را کپی کن.
تنظیم مقادیر برای محیط من7 مقدار قابلتغییر
از اینجا شروع کن
در پایان چه چیزی خواهی داشت؟
راهاندازی آزمایشی مدیریت رمز عبور با مرز روشن TLS و بازیابی.
سیستمعاملها و نسخههای پوششدادهشده
مسیرهای سیستمعامل مستندند؛ آزمون محدود ایزوله از پذیرش عملیاتی جداست.
قبل از شروع
- ماشین اختصاصی، Docker28+ روتفول، DNS و گواهی معتبر.
- مقصد بکاپ رمزگذاریشده و دسترسی مدیریت محدود.
مدیریت رمز عبور روی سرور خودتان
این آموزش برای راهاندازی آزمایشی سرویس مستقل مدیریت رمز عبور روی یک ماشین اختصاصی است. Nginx ارتباط HTTPS دامنهٔ vault.example.com را میگیرد و درخواست را به بکاند لوپبک 8159 میرساند. داده و تنظیمات در /srv/academy-vaultwarden نگهداری میشوند. پس از آمادهبودن Docker، DNS و گواهی، حدود یک ساعت برای اجرا در نظر بگیرید؛ تا پایان آزمون پذیرش و تمرین بازیابی، فقط دادهٔ ساختگی وارد کنید.
Vaultwarden پروژهای جامعهمحور و مستقل برای پیادهسازی API کلاینتهای Bitwarden است. پشتیبانی رسمی Bitwarden شامل این سرور نمیشود. بهروزرسانی، سازگاری کلاینت و بازیابی بر عهدهٔ مدیر سرور است. رمز پنل مدیریت، رمز اصلی کاربر و KDF کلاینت سه موضوع جدا هستند؛ بکاپ بهتنهایی رمز اصلی فراموششده را برنمیگرداند.
اول مقدارهای عمومی را تنظیم کنید
فرم تنظیمات را باز کنید، مقدارهای عمومی را تغییر دهید، «اعمال» را بزنید و سپس کد را کپی کنید. تا زمانی که تغییرها اعمال نشده یا نامعتبر باشند، کپی غیرفعال است. رمز عبور، توکن، هش PHC، کلید خصوصی، اطلاعات SMTP و محتوای vault جایی در فرم این مقاله ندارند.
مقدارها و پیشرفت سفارشی در sessionStorage همین تب، زبان، مقاله و سیستمعامل میمانند؛ پیشرفت پیشفرض در localStorage است. بازنشانی مثالهای بررسیشده را برمیگرداند. شخصیسازی متن، اجرای آزمون یا رزرو دامنه و پورت نیست. شبکهٔ 203.0.113.10/32 صرفاً مثال مستنداتی است؛ پیش از فعالسازی HTTPS، شبکهٔ مبدأ مدیر را دقیق وارد کنید.
پیشنیازهای ماشین و مسیر دسترسی
ماشین باید تازه و اختصاصی باشد؛ دسترسی sudo، مخزن امضاشده، فضای کافی و مقصد بکاپ رمزگذاریشده لازم است. Docker Engine روتفول نسخهٔ 28 یا جدیدتر باید از قبل با روش پشتیبانیشدهٔ همان سیستم نصب شده باشد. این راهنما نصب Docker یا ترکیب بستههای توزیع و CE را پوشش نمیدهد؛ نسخههای قدیمی محدودیت شناختهشدهای در انتشار لوپبک دارند.
رکورد A برای IPv4 (برای این پراکسی IPv4-only، رکورد AAAA منتشر نکنید)، گواهی معتبر همراه زنجیره، کلید متناظر، برنامهٔ تمدید و TCP443 را برای vault.example.com آماده کنید. Nginx و بکاند روی یک ماشیناند و CDN، پراکسی بالادستی یا نصب در زیرمسیر در این نسخه وجود ندارد. تغییر این معماری مستلزم بازبینی اعتماد به IP واقعی و allowlist مدیریت است.
نام academy_vaultwarden و UID/GID عددی 23159 باید آزاد باشند. شبکهٔ 203.0.113.10/32 را به مبدأ واقعی و محدود مدیر تغییر دهید و دسترسی SSH یا کنسول بازیابی داشته باشید. برای آزمون از vault شخصی استفاده نکنید؛ سازگاری نسخهٔ دقیق کلاینت رسمی را پیش از ورود داده از یادداشت انتشار بررسی کنید.
نسخهٔ بررسیشده و مرز سازگاری
در بررسی ۲۰۲۶-۱۰-۲۱، API رسمی نسخهٔ 1.37.4 منتشرشده در پنجم اکتبر را آخرین نسخه معرفی کرد؛ این انتشار اصلاحات امنیتی دارد. ایمیج نگهداریشدهٔ پروژه با digest مانیفست چندمعماری ثابت شده است. digest خودکار بهروز نمیشود؛ اطلاعیههای امنیتی را دنبال و ارتقا را روی کپی بازیابی تمرین کنید.
در این نسخه APIهای قدیمی ثبتنام و prelogin حذف و رفتار اعتماد به X-Forwarded-For تغییر کرده است. دریافت Send با CLI نسخهٔ 2026.4.2 و قدیمیتر ناسازگاری مشخص دارد؛ در این دستورالعمل Sends غیرفعال است. وجود وبوالت تغییریافته در ایمیج به معنی تأیید همهٔ نسخههای اپلیکیشن، افزونه یا نسخههای آینده نیست.
قدم بعدی
بررسی نام، شناسه و پورتهای آزاد
روی ماشین اختصاصی و پیش از ایجاد سرویس اجرا کنید. هر تداخل دلیل توقف است؛ این بررسی منابع را در برابر کار همزمان رزرو نمیکند. پوشهٔ والد مسیر داده باید از قبل وجود داشته و در اختیار root باشد.
ماشین اختصاصی Vaultwarden
set -eu
sudo python3 - <<'PY'
import socket,subprocess
version=subprocess.check_output(['docker','version','--format','{{.Server.Version}}'],text=True).strip()
assert int(version.split('.')[0]) >= 28, 'Docker Engine >=28 required'
security=subprocess.check_output(['docker','info','--format','{{.SecurityOptions}}'],text=True)
assert 'rootless' not in security, 'This recipe requires rootful Docker'
assert subprocess.run(['docker','container','inspect','academy_vaultwarden'],stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL).returncode != 0, 'Container name in use'
for kind in ('passwd','group'):
assert subprocess.run(['getent',kind,'23159'],stdout=subprocess.DEVNULL).returncode != 0, 'UID/GID in use'
for port in (443,8159):
with socket.socket() as s: s.bind(('0.0.0.0',port))
print('Engine, name, numeric identity and ports: OK')
PY
نسخهٔ مناسب، نام و شناسهٔ آزاد و پورتهای 443 و 8159 در دسترساند.
قدم بعدی
نصب ابزارها برای سیستم انتخابشده
دستور سیستم انتخابشده ابتدا codename را کنترل میکند. Nginx ممکن است هنگام نصب شروع شود؛ روی سرور دارای سرویس دیگر اجرا نکنید. نسخهٔ بستهها از مخزن همان توزیع خوانده میشود.
ماشین اختصاصی Vaultwarden
set -eu
. /etc/os-release
test "$VERSION_CODENAME" = 'stonking'
sudo apt-get update
apt-cache policy nginx argon2 python3
sudo apt-get install --no-install-recommends nginx argon2 python3 openssl ca-certificates curl nano sqlite3
nginx -v
dpkg-query -W nginx argon2 python3 openssl sqlite3
codename درست است و نسخهٔ ابزارهای نصبشده نمایش داده میشود.