Docker-部署-Vaultwarden
目录
Docker 部署 Vaultwarden
一、前言
1. 官网
1.1 Vaultwarden
# Vaultwarden Wiki 中文版
# Vaultwarden Wiki 中文版
# 客户端下载地址
1.2 Bitwarden
2. Vaultwarden 是什么
2021-04-27:从 开始,bitwarden_rs 项目更名为 Vaultwarden。参阅 了解更多说明。
这里是对官方 (以前叫 bitwarden_rs) 的中文翻译。
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:latest
container_name: vaultwarden
restart: always
environment:
#- 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:80
vwnginx:
image: nginx:1.27.4
restart: always
volumes:
- ./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 请求重定向到 HTTPS
return 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 访问登录
账号密码需要自行创建,例如:
账号:vw123@land.com # 账号以邮箱格式填写
密码:8#XW%ctIpEGg # 需要满足12位数的密码