使用 Docker 部署 vaultwarden

本文分享如何使用 Docker 部署 vaultwarden

如果您是第一次阅读该系列文章,建议优先阅读 Docker 部署项目说明及索引

前置条件

部署 vaultwarden 前需要具备数据库条件,本文以 PostgreSQL 为例。

如未部署 Postgres 可参考 使用 Docker 部署 PostgreSQL & pgAdmin4

参考上述文章创建自己的 vaultwarden 数据库,并修改下述 docker-compose.yml 文件中的配置。

Docker Compose

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3.9"

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    hostname: vaultwarden
    restart: unless-stopped
    ports:
      - "80:80"
      - "8080:8080"
      - "3012:3012"
    volumes:
      - /docker/vaultwarden/data:/data
    environment:
      - ROCKET_ADDRESS=0.0.0.0
      - ROCKET_PORT=8080
      - TZ=Asia/Shanghai
#      - ADMIN_TOKEN=your_token    #启用该项可访问 /admin 路径
      - DOMAIN=https://vaultwarden.example.com/
      - SIGNUPS_ALLOWED=true
      - WEB_VAULT_ENABLED=true
      - ENABLE_WEBSOCKET=true
      - DATABASE_URL=postgres://username:password@postgres:5432/vaultwarden?application_name=vaultwarden
networks:
  default:
    external: true
    name: rod

NPM 反向代理配置

此处以 https://vaultwarden.example.com 为例

如果未部署 NPM,可参考文章:使用 Docker 部署 Nginx Proxy Manager

Details

  • Domain Names: vaultwarden.example.com
  • Scheme: http
  • Forward Hostname/IP: 127.0.0.1 (如果 NPM 未使用 HOST,则使用容器的 hostname: vaultwarden)
  • Forward Port: 8080
  • Cache Assets: ✅
  • WebSockets Support: ✅

SSL

  • 选择你已经配置好的 SSL Certificate,如 *.example.com, example.com
  • Force SSL: ✅
  • HTTP/2 Support: ✅

Advanced

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_pass $forward_scheme://$server:$port;
}

location /notifications/hub {
    proxy_pass http://$server:3012;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

location /notifications/hub/negotiate {
    proxy_pass http://$server:80;
}

使用 vaultwarden

打开链接:https://vaultwarden.example.com 注册账号。

注意:

  1. 如果仅自己使用,推荐注册账号后将 SIGNUPS_ALLOWED 修改为 false 后重新构建项目启动。
  2. 如果设置了 ADMIN_TOKEN,则访问 https://vaultwarden.example.com/admin 可进入管理页面。

如果本文对您有所帮助,欢迎打赏支持作者!

Licensed under CC BY-NC-SA 4.0
最后更新于 2026-08-06 10:00
使用 Hugo 构建
主题 StackJimmy 设计