Skip to content

自建密码管理器:使用Docker部署Vaultwarden全攻略

约 1789 字大约 6 分钟

2025-11-10

前言:为什么选择自建密码管理器?

在这个数字化时代,我们每个人都需要记忆大量的网站账号和密码。使用简单重复的密码极其危险,而记忆复杂密码又不现实。密码管理器成为了最佳解决方案,它不仅能安全存储所有密码,还能生成高强度随机密码,实现一站式的密码管理体验。

Bitwarden作为一款开源密码管理器,深受用户喜爱。但官方服务器资源要求较高,而Vaultwarden作为Bitwarden的轻量级替代品,资源占用极低功能完整,非常适合个人和小团队自建使用。

本文将详细介绍如何使用Docker在RackNerd VPS上部署Vaultwarden,并通过Cloudflare域名和Caddy反代实现安全访问。

一、Bitwarden与Vaultwarden的区别

1.1 Bitwarden官方服务器

  • 开发语言:使用C#编写
  • 资源需求:要求至少2GB以上内存,需要MSSQL等商业软件支持
  • 授权模式:部分高级功能需要付费企业版
  • 部署难度:相对复杂,依赖较多

1.2 Vaultwarden非官方实现

  • 开发语言:使用Rust编写,性能极高
  • 资源需求:仅需10MB左右内存,对硬件要求极低
  • 功能支持:免费支持大部分高级功能如TOTP两步验证、附件等
  • 部署简单:提供Docker镜像,部署便捷
  • 兼容性:完全兼容官方Bitwarden客户端

二、准备工作

2.1 服务器选择:RackNerd VPS

推荐使用RackNerd VPS,理由如下:

  • 性价比高:价格亲民,配置多样
  • 稳定性好:适合长期运行服务
  • 全球节点:多个数据中心可选,网络优化好

选择至少1GB内存的套餐即可流畅运行Vaultwarden。立即注册获取VPS:https://racknerd.com/,通过链接注册可获取年费不到 美元的特价vps: https://my.racknerd.com/aff.php?aff=16285&pid=917RackNerd

2.2 域名与CDN:Cloudflare

  • 域名注册:在Cloudflare注册或迁移域名
  • CDN加速:免费CDN服务,提升访问速度
  • SSL证书:提供免费SSL证书,实现HTTPS加密

2.3 系统要求

  • 操作系统:Ubuntu 18.04+/Debian 10+
  • 安装Docker和Docker Compose
  • 开放80和443端口

三、使用Docker部署Vaultwarden

3.1 安装Docker

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 将当前用户添加到docker组
sudo usermod -aG docker $USER
# 重新登录使更改生效

3.2 创建Docker Compose文件

创建docker-compose.yml文件:

version: "3.8"

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    volumes:
      - ./vw-data:/data
    environment:
      - WEBSOCKET_ENABLED=true
      - SIGNUPS_ALLOWED=false
      - DOMAIN=https://your-domain.com
      - ADMIN_TOKEN=your_secure_admin_token_here
    networks:
      - vaultwarden-network

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

networks:
  vaultwarden-network:
    driver: bridge

3.3 生成ADMIN_TOKEN

# 生成安全的管理员令牌
openssl rand -base64 48

将生成的令牌替换docker-compose.yml中的your_secure_admin_token_here

3.4 创建Caddyfile

创建Caddyfile配置反向代理和SSL:

your-domain.com {
    encode gzip

    # Vaultwarden反向代理
    reverse_proxy / vaultwarden:80
    reverse_proxy /notifications/hub vaultwarden:3012
    reverse_proxy /notifications/hub/negotiate vaultwarden:80
    
    # 安全头部
    header {
        # 启用HSTS
        Strict-Transport-Security "max-age=31536000;"
        # 防止XSS
        X-XSS-Protection "1; mode=block"
        # 禁止iframe嵌入
        X-Frame-Options "DENY"
        # 防止MIME类型嗅探
        X-Content-Type-Options "nosniff"
    }
}

3.5 启动服务

# 创建必要目录
mkdir -p {vw-data,caddy-data,caddy-config}

# 启动服务
docker-compose up -d

# 查看日志确认运行状态
docker-compose logs -f

四、配置与管理

4.1 初始化设置

  1. 通过浏览器访问您的域名:https://your-domain.com
  2. 由于我们设置了SIGNUPS_ALLOWED=false,需要先通过管理页面创建账户

4.2 访问管理后台

  1. 访问https://your-domain.com/admin
  2. 输入之前设置的ADMIN_TOKEN
  3. 在管理界面中创建第一个用户账户

4.3 重要环境变量说明

根据实际需求调整docker-compose中的环境变量:

environment:
  # 禁止新用户注册(创建账户后建议开启)
  - SIGNUPS_ALLOWED=false
  # 启用管理页面
  - ADMIN_TOKEN=your_admin_token
  # 设置域名
  - DOMAIN=https://your-domain.com
  # 启用WebSocket通知(实时同步)
  - WEBSOCKET_ENABLED=true
  # 启用SMTP设置(密码重置等)
  - SMTP_HOST=smtp.example.com
  - [email protected]
  - SMTP_PORT=587
  - SMTP_SSL=true
  - SMTP_USERNAME=username
  - SMTP_PASSWORD=password

五、浏览器插件使用

5.1 安装插件

  1. 在Chrome、Firefox等浏览器的扩展商店搜索"Bitwarden"
  2. 安装官方Bitwarden插件

5.2 配置插件

  1. 打开Bitwarden插件,点击"设置"
  2. 在"自托管环境"部分,输入您的服务器URL:https://your-domain.com
  3. 保存设置,返回登录页面即可使用自建服务器登录

5.3 使用技巧

  • 自动填充:插件会自动提示保存网站密码,下次访问时可自动填充
  • 密码生成:注册新账户时,使用密码生成器创建强密码
  • 快捷键:可使用Ctrl+Shift+L快速填充密码

六、手机App使用

6.1 安装与配置

  1. 在iOS App Store或Android应用商店搜索"Bitwarden"并安装
  2. 打开App,点击设置图标,选择"自托管环境"
  3. 输入您的服务器URL:https://your-domain.com
  4. 返回登录页面,输入账户信息登录

6.2 移动端功能

  • 生物识别:支持Face ID、指纹解锁
  • 自动填充:在App和浏览器中自动填充密码
  • TOTP支持:可生成两步验证码

七、安全建议

7.1 服务器安全

  • 定期更新:保持系统和Docker镜像最新
  • 防火墙配置:只开放必要端口
  • 备份策略:定期备份vw-data目录

7.2 Vaultwarden安全

  • 强主密码:确保使用高强度主密码
  • 启用2FA:在账户设置中启用两步验证
  • 定期审查:检查管理页面的访问日志

7.3 网络安全

  • Cloudflare设置:配置适当的防火墙规则
  • HTTPS强制:通过Caddy确保全站HTTPS
  • 限制访问:可设置基础认证增加额外安全层

八、故障排除

8.1 常见问题

  1. 无法注册新用户

    • 检查SIGNUPS_ALLOWED环境变量设置
  2. WebSocket连接错误

    • 确认WEBSOCKET_ENABLED=true且Caddy配置正确
  3. 邮件功能不正常

    • 验证SMTP相关环境变量配置正确性

8.2 日志查看

# 查看Vaultwarden日志
docker-compose logs vaultwarden

# 查看Caddy日志
docker-compose logs caddy

结语

通过本文的指导,您已经成功搭建了自己的密码管理系统。Vaultwarden结合RackNerd VPS和Cloudflare的方案,既经济又安全,让您完全掌控自己的密码数据,不再依赖第三方密码管理服务。

自建密码管理器不仅是技术上的实践,更是对数字自主权的一次重要掌握。您的密码数据完全由自己掌控,无需信任第三方服务商,在当今数据泄露频发的时代,这一点尤为重要。

立即开始您的密码自主之旅,享受安全、自由的数字生活!