Quadlet 配置分享:Vaultwarden
目录
本文属于「quadlet 配置分享」系列,直接贴配置,不讲 Quadlet 基础。入门见 Podman 教程。
Vaultwarden
Vaultwarden 是 Bitwarden 的轻量 Rust 实现,资源占用极低,单容器即可运行。
配置
Vaultwarden 默认用 SQLite,个人使用足够;生产环境建议换 PostgreSQL。
方案一:SQLite(单容器)
个人用 SQLite 最简单,一个 .container 文件搞定:
[Container]
Image=docker.io/vaultwarden/server:latest
PublishPort=8080:80
Volume=/path/to/vw-data:/data
Environment=ADMIN_TOKEN=123
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target/path/to/替换为你自己的值。- 把
8080替换为你想暴露的端口 - 把
123替换为一个复杂文本
方案二:PostgreSQL(Pod)
生产环境推荐 PostgreSQL。需要用 Pod 把 Vaultwarden 和数据库放在一起:
# vaultwarden.pod
[Pod]
PublishPort=8080:80
UserNS=keep-id
[Install]
WantedBy=default.target# vaultwarden.container
[Unit]
Requires=vaultwarden-db.service
After=vaultwarden-db.service
[Container]
Image=docker.io/vaultwarden/server:latest
Pod=vaultwarden.pod
Volume=/path/to/vw-data:/data
Environment=DATABASE_URL=postgresql://vaultwarden:[email protected]:5432/vaultwarden ADMIN_TOKEN=123
AutoUpdate=registry
Group=0
User=0
[Service]
Restart=always
[Install]
WantedBy=default.target# vaultwarden-db.container
[Container]
Image=docker.io/library/postgres:17-alpine
Pod=vaultwarden.pod
Volume=/path/to/vw-pgdata:/var/lib/postgresql/data
Environment=POSTGRES_USER=vaultwarden POSTGRES_PASSWORD=vaultwarden POSTGRES_DB=vaultwarden
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target/path/to/替换为你自己的值。8080替换为你想暴露的端口123替换为一个复杂文本
启动
- 保存上述文件到
~/.config/containers/systemd/ - 运行
systemctl --user daemon-reload - 启动容器
- 单容器运行
systemctl --user start vaultwarden - Pod 运行
systemctl --user start vaultwarden-pod
- 单容器运行
- 【可选】启用自动更新:
systemctl --user enable --now podman-auto-update.timer
反代
Pod 暴露 8080 端口,用 Caddy 或 Nginx 反代到域名即可。记得开启 HTTPS,Vaultwarden 的客户端强制要求 HTTPS。
Caddy 示例:
vw.example.com {
reverse_proxy 127.0.0.1:8080
}访问 vw.example.com/admin 输入设置的 ADMIN_TOKEN 登录管理页面。