使用 docker-compose 的简单 5 分钟 MySQL Vaultwarden 设置
注意: 我建议始终使用 MySQL 以便为未来扩展做准备。如果你真的想使用 SQLite,请参见使用 docker-compose 的简单 5 分钟 Vaultwarden (SQLite) 设置。
要在基于 docker-compose 和 SQLite 的配置中设置 Vaultwarden(例如在 CoreOS 上),首先我们需要创建一个目录。我建议使用 /opt/vaultwarden。
在 /opt/vaultwarden 目录中运行所有以下命令并放置所有以下文件!
首先,我们将创建一个包含随机密码的 .env 文件(我建议使用 pwgen 30)。在此处不使用唯一、随机的密码是巨大的安全风险,因为它将允许对 Vaultwarden 的完全管理员访问!
ADMIN_TOKEN=iqueingufo3LohshoohoG3tha2zou6
SIGNUPS_ALLOWED=true现在放置你的 docker-compose.yml:
services:
mariadb:
image: mariadb:latest
environment:
- MYSQL_DATABASE=vaultwarden
- MYSQL_USER=vaultwarden
- MYSQL_PASSWORD=${MARIADB_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
- MARIADB_AUTO_UPGRADE=1
volumes:
- ./mariadb_data:/var/lib/mysql
command: --default-storage-engine innodb
restart: unless-stopped
healthcheck:
test: mysqladmin -p${MARIADB_ROOT_PASSWORD} ping -h localhost
interval: 20s
start_period: 10s
timeout: 10s
retries: 3
vaultwarden:
image: vaultwarden/server:latest
depends_on:
- mariadb
environment:
- ADMIN_TOKEN=${ADMIN_TOKEN}
- DATABASE_URL=mysql://vaultwarden:${MARIADB_PASSWORD}@mariadb/vaultwarden
- WEBSOCKET_ENABLED=true
volumes:
- ./vw_data:/data
ports:
- 17881:80
- 17882:3012接下来,我们将创建 systemd 服务以自动启动 docker-compose:
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin这将自动启动 vaultwarden。
现在你需要配置反向代理服务器指向 https://vaultwarden.mydomain.com。你需要使用 https,由于某些浏览器限制,http 将无法工作。
现在我们需要使用管理界面配置 vaultwarden。
转到 https://vaultwarden.mydomain.com/admin 并输入 .env 中的 ADMIN_TOKEN。
这里有两件事需要配置:
- General settings 下的域名
- SMTP email settings 下的邮件服务器设置
配置这些设置后,Vaultwarden 应该已启动并运行,你可以使用 https://vaultwarden.mydomain.com 访问它。
在第一个用户设置并测试后,你可以在管理界面的 General settings 中取消选中 Allow new signups。这是推荐的,因为否则任何能猜到你域名的人都能创建 Vaultwarden 账户。