Podman Quadlet 配置分享:Vaultwarden

Vaultwarden 是 Bitwarden 的轻量 Rust 实现,资源占用极低,单容器即可运行。 配置 Vaultwarden 默认用 SQLite,个人使用足够;生产环境建议换 PostgreSQL。 方案一:SQLite(单容器) 个人用 SQLite 最简单,一个 .container ...
Podman Quadlet 配置分享:Vaultwarden
Podman Quadlet 配置分享: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

  1. /path/to/ 替换为你自己的值。

  2. 8080 替换为你想暴露的端口

  3. 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:vaultwarden@127.0.0.1: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

  1. /path/to/ 替换为你自己的值。

  2. 8080 替换为你想暴露的端口

  3. 123 替换为一个复杂文本

启动

  1. 保存上述文件到 ~/.config/containers/systemd/

  2. 运行 systemctl --user daemon-reload

  3. 启动容器

  • 单容器运行 systemctl --user start vaultwarden

  • Pod 运行 systemctl --user start vaultwarden-pod

  1. 【可选】启用自动更新: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 登录管理页面。

2 个帖子 - 1 位参与者

阅读完整话题

来源: linux.do查看原文