一、前言
1. 官網
1.1 Vaultwarden
https://github.com/dani-garcia/vaultwarden
https://github.com/wcjxixi/Vaultwarden-Wiki-Chn
https://hub.docker.com/r/vaultwarden/server
https://rs.ppgg.in/ # Vaultwarden Wiki 中文版
https://geekdaxue.co/read/Vaultwarden-Wiki-CN/README.md # Vaultwarden Wiki 中文版
https://bitwarden.com/download/ # 客戶端下載地址
1.2 Bitwarden
https://bitwarden.com
https://github.com/bitwarden
https://github.com/bitwarden/server
2. Vaultwarden 是什么
2021-04-27:從 v1.21.0 開始,bitwarden_rs 項目更名為 Vaultwarden。參閱 #1642 了解更多說明。
這里是對官方 Vaultwarden(以前叫 bitwarden_rs)Wiki 的中文翻譯。
Vaultwarden 是一個用于本地搭建 Bitwarden 服務器的第三方 Docker 項目。僅在部署的時候使用 Vaultwarden 鏡像,桌面端、移動端、瀏覽器擴展等客戶端均使用官方 Bitwarden 客戶端。
Vaultwarden 很輕量,對于不希望使用官方的占用大量資源的自托管部署而言,它是理想的選擇。
3. Vaultwarden 與 Bitwarden 的區別
-
除不支持 Bitwarden 官方企業版的部分功能(詳情見這里)外,其他大部分功能均免費支持。并跟隨官方版本保持及時更新。
-
Vaultwarden 比 Bitwarden 官方版更輕量。官方版使用 .Net 開發,使用 MSSQL 數據庫,要求至少 2GB 內存;Vaultwarden 使用 Rust 編寫,改用 SQLite 數據庫(現在也支持 MySQL 和 PostgreSQL),運行時只需要 10M 內存,可以說對硬件基本沒有要求。
二、安裝部署
1. 安裝 Docker
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo && yum install docker-ce -y && docker -v && systemctl enable --now docker
2. 新建存放 vaultwarden 數據的目錄
mkdir -p /vaultwarden/nginx && cd /vaultwarden
3. 編寫 compose.yaml 文件
[root@localhost vaultwarden]# cat <<'EOF' > compose.yaml
services:vaultwarden:image: vaultwarden/server:latestcontainer_name: vaultwardenrestart: alwaysenvironment:#- ADMIN_TOKEN=hiyXZUmBwJ4sK5EHdvEnEO+2UG12367N3MoC9ZiG5EklcI5epC159/NdxHNoNqZB # admin頁管理密碼- DOMAIN=https://vw.land.com- TZ=Asia/Shanghai # 設置時區# 設置郵箱功能- SMTP_HOST=smtphz.qiye.163.com # 填寫發送郵件服務器的地址- SMTP_FROM=land@163.com- SMTP_PORT=465- SMTP_SSL=false- SMTP_EXPLICIT_TLS=true- SMTP_USERNAME=land@163.com- SMTP_PASSWORD=j3w8Fxzj123498PJ # 可以填客戶端授權碼volumes:- ./vw-data:/data/#ports:# - 8080:80vwnginx:image: nginx:1.27.4restart: alwaysvolumes:- ./vw-nginx:/etc/nginx/conf.d/ports:- "80:80"- "443:443"
EOF
4. 編寫 nginx 的配置文件
[root@localhost vaultwarden]# cat <<'EOF' > nginx/default.conf
server {listen 80;server_name vw.land.com;# 將 HTTP 請求重定向到 HTTPSreturn 301 https://$host$request_uri;
}server {listen 443 ssl;server_name vw.land.com;# 隱藏版本號server_tokens off;# 設置 SSL 證書和私鑰ssl_certificate /etc/nginx/conf.d/server.crt; # 證書文件ssl_certificate_key /etc/nginx/conf.d/server.key; # 私鑰文件# 其他 SSL 配置ssl_protocols TLSv1.2 TLSv1.3; # 啟用現代的 TLS 協議ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256';ssl_prefer_server_ciphers on;# 設置其他安全頭(可選)add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;# 配置反向代理到內部服務location / {proxy_pass http://vaultwarden;proxy_set_header Host $host; # 設置代理請求的 Host 頭為客戶端原始請求的 Host 頭(如,如果客戶端訪問 http://example.com,則 Host 頭的值為 example.com)proxy_set_header X-Real-IP $remote_addr; # 通過 X-Real-IP 頭獲取客戶端的真實 IP 地址,而不是 Nginx 服務器的 IP 地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 用于記錄客戶端的原始 IP 地址和經過的所有代理服務器 IP 地址proxy_set_header X-Forwarded-Proto $scheme; # 可以通過 X-Forwarded-Proto 頭判斷客戶端使用了 HTTPS 還是 HTTP 協議。}
}
EOF
5. 啟動容器
docker compose up -d
5.1 查看 vaultwarden 的版本
# 查看 vaultwarden 容器的日志文件能看到版本信息
[root@localhost vaultwarden]# docker logs vaultwarden/--------------------------------------------------------------------\
| Starting Vaultwarden |
| Version 1.33.2 |
|--------------------------------------------------------------------|
| This is an *unofficial* Bitwarden implementation, DO NOT use the |
| official channels to report bugs/features, regardless of client. |
| Send usage/configuration questions or feature requests to: |
| https://github.com/dani-garcia/vaultwarden/discussions or |
| https://vaultwarden.discourse.group/ |
| Report suspected bugs/issues in the software itself at: |
| https://github.com/dani-garcia/vaultwarden/issues/new |
\--------------------------------------------------------------------/[2025-02-27 05:40:18.973][vaultwarden::auth][INFO] Private key 'data/rsa_key.pem' created correctly
[2025-02-27 05:40:19.136][start][INFO] Rocket has launched from http://0.0.0.0:80
6. Web 訪問登錄
https://vw.land.com/
賬號密碼需要自行創建,例如:
賬號:vw123@land.com # 賬號以郵箱格式填寫
密碼:8#XW%ctIpEGg # 需要滿足12位數的密碼