如果您是第一次阅读该系列文章,建议优先阅读 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 注册账号。
注意:
- 如果仅自己使用,推荐注册账号后将
SIGNUPS_ALLOWED 修改为 false 后重新构建项目启动。
- 如果设置了
ADMIN_TOKEN,则访问 https://vaultwarden.example.com/admin 可进入管理页面。