南风大叔

Deploy Vaultwarden

在 Cloudflare 后台创建隧道 (Tunnel)

在部署之前,先在云端"开通"这条隧道:

  1. 登录 Cloudflare Zero Trust 控制台

  2. 进入 Networks -> Tunnels,点击 Create a Tunnel。

  3. 选择 Cloudflared,给隧道起个名字(例如 Home-Vault)。

  4. 在 Install and run a connector 页面,选择 Docker,你会看到一行包含 token 的命令。

    • 只需记录:--token 后面那一长串随机字符(这就是你的 Tunnel Token)。
  5. 在 Public Hostname 标签页点击 Add a public hostname:

    • Subdomain: vault(或者你喜欢的名字)
    • Domain: gdu.me(选择你已有的域名)
    • Service Type: HTTP
    • URL: vaultwarden:80(Docker 内部容器间的访问地址)

基本配置

SSH 进入 VPS,创建工作目录并生成 Admin Token:

# 创建并进入工作目录
mkdir -p ~/vaultwarden/vw-data && cd ~/vaultwarden

# 生成 Admin Token(将引号内的内容替换为你的密码)
echo -n "这里改成你的密码" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4

创建 docker-compose.yml

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      - SIGNUPS_ALLOWED=true   # 第一次部署先设为 true,注册完你的账号后改成 false
      - DOMAIN=${DOMAIN}
      - ADMIN_TOKEN=${VAULTWARDEN_ADMIN_TOKEN}
      - SMTP_HOST=${SMTP_HOST}
      - SMTP_PORT=${SMTP_PORT}
      - SMTP_SECURITY=${SMTP_SECURITY}
      - SMTP_FROM=${SMTP_FROM}
      - SMTP_USERNAME=${SMTP_USERNAME}
      - SMTP_PASSWORD=${SMTP_PASSWORD}
      - PUSH_ENABLED=true
      - PUSH_INSTALLATION_ID=${PUSH_INSTALLATION_ID}   # 前往 https://bitwarden.com/host/ 生成
      - PUSH_INSTALLATION_KEY=${PUSH_INSTALLATION_KEY}
      - TEMPLATES_FOLDER=/templates   # 中文汉化模板路径
    volumes:
      - ./vw-data:/data
      - ./vw-data/vaultwarden-zh-cn/templates:/templates   # 挂载汉化模板

  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: always
    command: tunnel --no-autoupdate run --token <Your_Token>   # 替换为你的 Tunnel Token
    depends_on:
      - vaultwarden

中文汉化

将汉化模板 clone 到数据目录下:

cd ~/vaultwarden/vw-data
git clone https://github.com/JinkaiNiu/vaultwarden-zh-cn

然后在 docker-compose.yml 的 vaultwarden 服务中添加以下内容,让容器能找到这些模板:

    environment:
      - TEMPLATES_FOLDER=/templates   # 新增
      # ... 其他环境变量保持不变
    volumes:
      - ./vw-data:/data
      - ./vw-data/vaultwarden-zh-cn/templates:/templates   # 新增

配置 .env

~/vaultwarden/ 目录下创建 .env 文件:

nano .env
VAULTWARDEN_ADMIN_TOKEN='6cC+XYmBk'   # 填写前面生成的 Admin Token
SMTP_HOST=smtp.qq.com
SMTP_PORT=587
SMTP_SECURITY=starttls
[email protected]
[email protected]
SMTP_PASSWORD=xxxxxxxxxxxxxxxx         # QQ 邮箱填授权码,不是账号密码(在 QQ 邮箱设置 -> 账户 -> POP3/SMTP 中生成)
PUSH_INSTALLATION_ID=dddddd            # 填写 bitwarden.com/host/ 上的 Installation ID
PUSH_INSTALLATION_KEY=yyyyyy           # 填写对应的 Installation Key
DOMAIN=https://xxx.com                 # 换成你的域名

启动

docker compose up -d

启动后访问 https://你的域名 即可打开 Vaultwarden,管理后台在 /admin 路径下。注册完账号后,记得将 SIGNUPS_ALLOWED 改为 false 并重启容器。

#Homelab #Vaultwarden