Language: th
Vaultwarden: ติดตั้งผู้จัดการรหัสผ่านของคุณเองบน VPS
Vaultwarden ช่วยให้คุณเก็บรหัสผ่านไว้บนเซิร์ฟเวอร์ของตัวเอง และซิงค์ระหว่างคอมพิวเตอร์ โทรศัพท์ และเบราว์เซอร์ได้ แอปพลิเคชันและส่วนขยาย Bitwarden อย่างเป็นทางการใช้งานร่วมกันได้ เพียงระบุที่อยู่ของเซิร์ฟเวอร์ของคุณเอง
บทความนี้จะอธิบายว่า Vaultwarden ต้องใช้ VPS แบบใด วิธีรันบน Ubuntu ด้วย Docker Compose ปิดการลงทะเบียนแบบเปิด เปิดใช้ HTTPS และตั้งค่าการสำรองข้อมูล
Vaultwarden ในห้าขั้นตอน
แผนการเริ่มต้นขั้นต่ำมีดังนี้:
- สร้าง VPS ที่ใช้ Ubuntu และชี้ซับโดเมนไปยังเซิร์ฟเวอร์ เช่น
vault.example.com - ติดตั้ง Docker และ Docker Compose
- รัน Vaultwarden พร้อม Caddy เพื่อให้ HTTPS ทำงานอัตโนมัติ
- สร้างบัญชีแรกและปิดการลงทะเบียนแบบเปิด
- เปิดใช้การยืนยันตัวตนแบบสองขั้นตอน การอัปเดต และการสำรองข้อมูล
สำหรับคลังรหัสผ่านส่วนตัวหรือครอบครัวขนาดเล็ก ฐานข้อมูล SQLite ในตัวก็เพียงพอ โดยทั่วไปไม่จำเป็นต้องมีเซิร์ฟเวอร์ PostgreSQL แยกต่างหาก
Vaultwarden คืออะไร
Vaultwarden คือการนำ API ของ Bitwarden มาใช้งานบนเซิร์ฟเวอร์แบบไม่เป็นทางการ เขียนด้วย Rust และออกแบบมาสำหรับการโฮสต์เอง ใช้งานร่วมกับไคลเอนต์ Bitwarden อย่างเป็นทางการได้ ทั้งเว็บอินเทอร์เฟซ แอปมือถือและเดสก์ท็อป ส่วนขยายเบราว์เซอร์ และ CLI
ข้อมูลในคลังจะถูกเข้ารหัสบนอุปกรณ์ของผู้ใช้ก่อนส่งไปยังเซิร์ฟเวอร์ VPS ซิงค์ฐานข้อมูลที่เข้ารหัส แต่ไม่รู้ master password และไม่สามารถกู้คืนให้ได้หากรหัสผ่านสูญหาย
Vaultwarden ไม่ใช่ผลิตภัณฑ์อย่างเป็นทางการของ Bitwarden เจ้าของต้องรับผิดชอบการอัปเดต ความพร้อมใช้งาน HTTPS การสำรองข้อมูล และความปลอดภัยของ VPS ด้วยตนเอง
Vaultwarden และ Bitwarden ต่างกันอย่างไร
| พารามิเตอร์ | Bitwarden Cloud | Vaultwarden |
|---|---|---|
| เซิร์ฟเวอร์ | โครงสร้างพื้นฐานของ Bitwarden | VPS หรือเซิร์ฟเวอร์ที่บ้านของคุณ |
| แอปพลิเคชัน | ไคลเอนต์ Bitwarden | ไคลเอนต์เดิมในโหมด Self-hosted |
| การดูแลรักษา | ผู้ให้บริการดูแล | เจ้าของดูแลเอง |
| การควบคุมแบ็กอัป | จำกัดตามบริการ | ควบคุมได้เต็มที่ |
| การตั้งค่า | สมัครบัญชี | ตั้งค่าโดเมน Docker และ VPS |
Vaultwarden เหมาะกับผู้ที่ต้องการควบคุมฝั่งเซิร์ฟเวอร์และพร้อมอัปเดต Linux กับตรวจสอบแบ็กอัป หากไม่ต้องการดูแลระบบ บริการคลาวด์จะสะดวกกว่า การโฮสต์เองไม่ได้ทำให้ระบบปลอดภัยโดยอัตโนมัติ แต่เป็นการโอนความรับผิดชอบมาให้เจ้าของ
ความต้องการของเซิร์ฟเวอร์ Vaultwarden
สำหรับการใช้งานส่วนตัว การกำหนดค่าเริ่มต้นที่เหมาะสมคือ:
- 1 vCPU
- RAM 1–2 GB
- SSD หรือ NVMe 10–20 GB
- Ubuntu 24.04 LTS
- ที่อยู่ IP สาธารณะและโดเมน
- เปิดพอร์ต 80 และ 443
นี่คือการเผื่อทรัพยากรที่เหมาะกับ Ubuntu, Docker, Caddy และการอัปเดต ไม่ใช่ขั้นต่ำตายตัวของโครงการ สำหรับผู้ใช้หลายสิบคน ไฟล์แนบจำนวนมาก หรือคอนเทนเนอร์หลายตัว ควรเลือก RAM อย่างน้อย 2 GB
วิธีติดตั้ง 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 version3. สร้างการกำหนดค่า
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 Caddy จะขอใบรับรอง TLS โดยอัตโนมัติ หาก DNS ชี้ไปยัง VPS แล้วและพอร์ต 80 กับ 443 เข้าถึงได้ หากเว็บไซต์เปิดไม่ได้ ให้ตรวจสอบ DNS ไฟร์วอลล์ และว่ามีเว็บเซิร์ฟเวอร์อื่นใช้งานพอร์ตเหล่านี้อยู่หรือไม่
5. สร้างบัญชีและปิดการลงทะเบียน
ลงทะเบียนบัญชีแรก ใช้ master password ที่ยาวและไม่ซ้ำกัน และเก็บสำเนาฉุกเฉินไว้นอก Vaultwarden: ผู้ดูแลเซิร์ฟเวอร์ไม่สามารถรีเซ็ตหรือกู้คืน master password ได้
หลังลงทะเบียน ให้เปลี่ยนค่าต่อไปนี้ใน compose.yaml:
SIGNUPS_ALLOWED: "false"ใช้การตั้งค่า:
docker compose up -dจากนี้คนอื่นจะสร้างบัญชีไม่ได้ หากต้องการเพิ่มผู้ใช้ใหม่ คุณอาจเปิดการลงทะเบียนชั่วคราวหรือกำหนดค่าการเชิญ
วิธีเชื่อมต่อแอปพลิเคชัน Bitwarden
ไม่จำเป็นต้องติดตั้งไคลเอนต์ Vaultwarden แยกต่างหาก ที่หน้าลงชื่อเข้าใช้ของแอปพลิเคชันหรือส่วนขยาย Bitwarden ให้เลือก Self-hosted แล้วกรอก:
https://vault.example.comใช้ที่อยู่นี้บนคอมพิวเตอร์ โทรศัพท์ และเบราว์เซอร์ หากต้องการย้ายข้อมูล ให้นำเข้าไฟล์ export จากผู้จัดการรหัสผ่านเดิม แล้วลบไฟล์ 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 เดียวกันไม่ช่วยป้องกันการลบเซิร์ฟเวอร์หรือดิสก์เสียหาย ให้ส่งสำเนาไปยังอุปกรณ์อื่นหรือ object storage แยกต่างหากโดยอัตโนมัติ และควรเข้ารหัสเพิ่มเติม ทดสอบการกู้คืนเป็นระยะ
ควรเลือก VPS แบบใดสำหรับ Vaultwarden
Linux VPS พื้นฐานที่มี RAM 2 GB เพียงพอสำหรับคลังส่วนตัวหรือครอบครัว ทำให้มีพื้นที่สำรองสำหรับ Ubuntu, Docker, Caddy การอัปเดต และแบ็กอัปอัตโนมัติ
คุณสามารถรัน Vaultwarden บน VPS ระดับเริ่มต้นจาก tropic.host แล้วเพิ่มทรัพยากรภายหลังเมื่อเพิ่มบริการโฮสต์เองอื่น ๆ บนเซิร์ฟเวอร์ สำหรับผู้จัดการรหัสผ่าน เครือข่ายที่เสถียร ที่อยู่สาธารณะถาวร และดิสก์ที่เชื่อถือได้สำคัญกว่าจำนวนคอร์ CPU ที่มากขึ้น
เซิร์ฟเวอร์ที่บ้านก็ใช้ได้ แต่คุณต้องจัดการการเข้าถึงจากภายนอก HTTPS ไฟฟ้าที่เสถียร และการกู้คืนหลังเกิดปัญหาด้วยตนเอง VPS มักง่ายกว่าเมื่อคลังต้องใช้งานได้จากทุกเครือข่าย
สรุป
Vaultwarden คือผู้จัดการรหัสผ่านแบบโฮสต์เองที่สะดวกสำหรับผู้ที่ต้องการใช้ไคลเอนต์ Bitwarden พร้อมเก็บฝั่งเซิร์ฟเวอร์ไว้บนโครงสร้างพื้นฐานของตนเอง VPS ขนาดเล็ก โดเมน Docker Compose และ Caddy ก็เพียงพอสำหรับการเริ่มต้น
ความรับผิดชอบหลักเริ่มหลังติดตั้ง: ปิดการลงทะเบียน เปิดใช้ 2FA อัปเดตคอนเทนเนอร์ และเก็บแบ็กอัปที่ผ่านการทดสอบไว้นอกเซิร์ฟเวอร์
FAQ
ติดตั้ง Vaultwarden โดยไม่มีโดเมนได้หรือไม่
ในทางเทคนิคใช้ที่อยู่ภายในเครื่องได้ แต่ web vault ต้องการบริบท HTTPS ที่ปลอดภัย สำหรับการเข้าถึงจากหลายอุปกรณ์ การใช้โดเมนพร้อมใบรับรอง TLS จะง่ายกว่า
Vaultwarden ต้องใช้ RAM เท่าไร
สำหรับผู้ใช้หนึ่งคนหรือไม่กี่คน RAM 1 GB มักเพียงพอ VPS ที่มี RAM 2 GB จะมีพื้นที่สำรองที่สบายกว่าสำหรับระบบ Docker, Caddy และการอัปเดต
Vaultwarden ใช้กับแอป Bitwarden บนมือถือได้หรือไม่
ได้ ที่หน้าลงชื่อเข้าใช้ ให้เลือกเซิร์ฟเวอร์แบบโฮสต์เองและกรอกที่อยู่ HTTPS แบบเต็มของอินสแตนซ์ Vaultwarden
หาก VPS ใช้งานไม่ได้ชั่วคราวจะเกิดอะไรขึ้น
ข้อมูลที่ซิงค์ไว้ก่อนหน้านี้มักยังอยู่ในแคชเข้ารหัสภายในไคลเอนต์ แต่จะซิงค์ ลงชื่อเข้าใช้บนอุปกรณ์ใหม่ หรือรับการเปลี่ยนแปลงไม่ได้จนกว่าเซิร์ฟเวอร์จะกลับมาใช้งาน
หากลืม master password จะกู้คืนผ่าน /admin ได้หรือไม่
ไม่ได้ ผู้ดูแลจัดการเซิร์ฟเวอร์และบัญชีได้ แต่ไม่มีคีย์ถอดรหัสคลังของผู้ใช้ ต้องเก็บ master password และโค้ดกู้คืนไว้แยกต่างหาก
