debian搭建MySQL版Vaultwarden
简介:Vaultwarden是一款密码管理软件,因为完全的开源,所以受到了大家的喜爱。
环境:Debian 10
安装Docker
执行docker安装脚本
wget -qO- get.docker.com | bash
检查安装结果
docker version
启动 Docker
systemctl start docker
查看 Docker 启动状态(绿色 active)
systemctl status docker
允许 Docker 自启动
systemctl enable docker
新建配置文件
/etc/docker/daemon.json
{ "dns": ["8.8.8.8", "114.114.114.114"] }
重启docker
service docker restart
注意自己的
iptables
行为,这有可能会影响docker网络端口的映射,例如:iptables -t nat -F
安装 Vaultwarden
拉取 vaultwarden 镜像
docker pull vaultwarden/server:latest
运行容器(根据自己的需要选择运行的参数)
docker run -d --name vaultwarden \ -e I_REALLY_WANT_VOLATILE_STORAGE=true \ -e DOMAIN=https://domain.cc/ \ -e TZ=Asia/Shanghai \ -e ADMIN_TOKEN='admin_pwd' \ -e ORG_ATTACHMENT_LIMIT=10240 \ -e USER_ATTACHMENT_LIMIT=102400 \ -e SIGNUPS_ALLOWED=true \ -e SIGNUPS_VERIFY=true \ -e SIGNUPS_VERIFY_RESEND_TIME=3600 \ -e SIGNUPS_VERIFY_RESEND_LIMIT=6 \ -e INVITATIONS_ALLOWED=true \ -e INVITATION_ORG_NAME=org_name \ -e REQUIRE_DEVICE_EMAIL=true \ -e EMAIL_TOKEN_SIZE=6 \ -e EMAIL_EXPIRATION_TIME=600 \ -e EMAIL_ATTEMPTS_LIMIT=3 \ -e SMTP_HOST=mail.domain.cc \ -e [email protected] \ -e SMTP_FROM_NAME=from_name \ -e SMTP_PORT=465 \ -e SMTP_SECURITY=force_tls \ -e [email protected] \ -e SMTP_PASSWORD=stmp_user_pwd \ -e SMTP_AUTH_MECHANISM=plain,login \ -e SMTP_TIMEOUT=15 \ -e SMTP_ACCEPT_INVALID_CERTS=false \ -e SMTP_ACCEPT_INVALID_HOSTNAMES=false \ -e LOG_FILE=/var/log/vaultwarden.log \ -e LOG_LEVEL=warn \ -e EXTENDED_LOGGING=true \ -e DATA_FOLDER=/data \ -e DATABASE_URL='mysql://dbuser:dbpwd@dbhost:3306/dbname' \ -e ENABLE_DB_WAL=false \ -e ATTACHMENT_FOLDER=/data/attachment \ -e ICON_CACHE_FOLDER=/data/icon_cache \ -v /var/www/html/vaultwarden:/data \ -p 127.0.0.1:12580:80 \ vaultwarden/server:latest
SMTP_USERNAME
参数要不要带@domain.cc需要看邮件服务器使用的是否是系统用户,如果是系统用户则不需要带@domain.cc,如果使用的是虚拟用户,那么看虚拟用户是什么,如果带有@domain.cc,那么这里也需要带上
ADMIN_TOKEN 参数生成方式如下(cli方式执行命令)
# Using the Bitwarden defaults
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4
# Output: $argon2id$v=19$m=65540,t=3,p=4$bXBGMENBZUVzT3VUSFErTzQzK25Jck1BN2Z0amFuWjdSdVlIQVZqYzAzYz0$T9m73OdD2mz9+aJKLuOAdbvoARdaKxtOZ+jZcSL9/N0
# Using the OWASP minimum recommended settings
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1
# Output: $argon2id$v=19$m=19456,t=2,p=1$cXpKdUxHSWhlaUs1QVVsSStkbTRPQVFPSmdpamFCMHdvYjVkWTVKaDdpYz0$E1UgBKjUCD2Roy0jdHAJvXihugpG+N9WcAaR8P6Qn/8
参数解释
SIGNUP_ALLOWED
:是否允许注册INVITATIONS_ALLOWED
: 是否允许组织邀请注册ADMIN_TOKEN
:用户管理界面 (/admin) 的登录密码,可以明文,不过最好使用新的标准对密码进行加密处理LOG_FILE
:日志文件地址LOG_LEVEL
:日志级别EXTENDED_LOGGING
:是否开启扩展日志DATA_FOLDER
:docker容器数据保存文件夹(默认为 /data)DATABASE_URL
:数据库地址ATTACHMENT_FOLDER
:附件路径ICON_CACHE_FOLDER
:图标缓存路径
更多参数配置>>
升级 Vaultwarden 镜像
停止原容器
docker stop vaultwarden
删除原容器
docker rm vaultwarden
删除原镜像文件
docker image ls docker image rm $ID
重新拉取镜像
docker pull vaultwarden/server:latest
重新运行 docker run 命令
见上文
如果使用web,可以使用nginx代理,这里就不进行介绍了。
其他 Docker 命令
查看日志,当docker无法启动的时候可以使用这个来查看日志
docker logs vaultwarden
启动容器
docker start $name
停止容器
docker stop $name
删除容器
docker rm $name
查看运行容器
docker ps -as
进入容器
docker exec -it vaultwarden /bin/bash
删除镜像
docker image rm $ID
复制容器内的文件到宿主机
docker container cp -a 6f0545778d2e:/nginx/nginx.conf /etc/nginx/nginx.conf
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭