与其他共用一个域名,使用子目录:你的域名/sub_path
第一步、编写docker-compose.yml
mkdir vaultwarder
vim docker-compose.yml
version: "3"
services:
vaultwarden:
image: vaultwarden/server
container_name: vaultwarden
restart: always
ports:
- "127.0.0.1:8081:80" #暴露的端口:(宿主机端口:容器端口)
- "127.0.0.1:3012:3012"
volumes:
- ./vw-data:/data #挂载数据和日志文件
environment:
WEBSOCKET_ENABLED: "true" #websocket通知
SIGNUPS_ALLOWED: "true" #是否允许注册,自己注册完,回来改成false
WEB_VAULT_ENABLED: "true" #邀请用户加入组织
LOG_FILE:"/data/vaultwarden.log" #日志文件
DOMAIN: "https://你的域名/vault" #配置到子目录。如果是直接不共用,不用配置此项
第二步、配置 nginx
,我的 nginx
也是用 docker
启动
vim /home/docker/nginx/conf.d/default.conf
#新增
upstream vaultwarden-default {
zone vaultwarden-default 64k;
server 127.0.0.1:8081;
keepalive 2;
}
# Needed to support websocket connections
# See: https://nginx.org/en/docs/http/websocket.html
# Instead of "close" as stated in the above link we send an empty value.
# Else all keepalive connections will not work.
map $http_upgrade $connection_upgrade {
default upgrade;
'' "";
}
server
{
location / {
...
}
#新增部分
location /vault/ {
proxy_set_header Host $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 http://127.0.0.1:8081;
}
location /vault/notifications/hub/negotiate {
proxy_set_header Host $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 http://127.0.0.1:8081;
}
location /vault/notifications/hub {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:3012;
}
}
第三步、启动容器
docker restart nginx
docker compose up -d
第四步:google插件的时候报错

解决方式:修改 nginx
server{
....
location /vault/notifications/hub {
...
}
location = /vault/identity/accounts/prelogin {
rewrite ^/vault/identity/accounts/prelogin$ /vault/api/accounts/prelogin;
}
}
小tips:从本地文件复制到服务器
scp 本地文件路径 root@ip:服务器文件目录