用 1Panel 自托管 Vaultwarden:反代 HTTPS、关闭注册与 WebDAV 备份
密码管理器我一直想自己托管,数据放在自己手里更踏实。这次用 1Panel 的编排功能部署了 Vaultwarden(Bitwarden 的轻量第三方服务端),记录一下步骤和几个容易忽略的点。
一、部署
在 1Panel 里新建一个编排,名字随意,内容如下:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- DOMAIN=vault.example.com
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
要点是端口只绑定 127.0.0.1,不直接暴露公网,外部访问统一走反向代理。数据都在 ./vw-data 目录里,后面备份也只备份它。
二、反向代理和 HTTPS
Bitwarden 客户端强制要求 HTTPS,所以必须配证书。在 1Panel 的「网站」里创建反向代理站点,代理地址填 http://127.0.0.1:8080,然后在 HTTPS 设置里申请 Let’s Encrypt 证书,验证方式选 HTTP 验证,并打开自动续期。前提是域名已经解析到服务器,80 端口能从外面访问到,否则申请会失败。
三、创建账号后立刻关闭注册
我先把 SIGNUPS_ALLOWED 设为 true,注册好自己的账号,然后改成 false,再重启容器:
docker compose up -d --force-recreate
自托管的服务如果一直开着注册,等于把入口留给任何知道地址的人,这一步千万别忘。
四、备份到 WebDAV
密码库丢了是大事,只放在一台机器上不行。1Panel 的「备份账号」支持 WebDAV,我添加了一个网盘的 WebDAV 账号(地址、用户名、应用专用密码),然后给这个编排或数据目录建一个定时备份任务,备份目标选 WebDAV,并设置保留份数。建好后手动执行一次,去网盘里确认文件真的出现了,再用「恢复」流程想一遍,别等真出事才发现备份是空的。
五、踩过的坑
- 证书申请失败:多半是域名没解析好,或者防火墙、安全组没放行 80 端口。先用 curl 从外网测一下。
- 客户端提示连不上:检查 DOMAIN 环境变量是否写成了真实的 https 地址,反代有没有开启 WebSocket 支持。
- 数据位置:别把数据放在容器内部,一定要挂载到宿主机目录,否则重建容器就没了。
六、小结
整套流程不复杂:容器只监听本机,反代加 HTTPS,建完号关注册,数据定时备份到异地。1Panel 把后面几步都做成了界面操作,对不想手写 nginx 配置的人比较友好。建议再给服务器开启系统更新,并定期拉取新版镜像。
- 点赞
- 收藏
- 关注作者
评论(0)