使用 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 的完全管理员访问!

env_file.env
ADMIN_TOKEN=iqueingufo3LohshoohoG3tha2zou6
SIGNUPS_ALLOWED=true

现在放置你的 docker-compose.yml

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

create_vaultwarden_service.sh
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

这里有两件事需要配置:

配置这些设置后,Vaultwarden 应该已启动并运行,你可以使用 https://vaultwarden.mydomain.com 访问它。

在第一个用户设置并测试后,你可以在管理界面的 General settings 中取消选中 Allow new signups。这是推荐的,因为否则任何能猜到你域名的人都能创建 Vaultwarden 账户。


Check out similar posts by category: Container, Docker