bitwarden_rs 2020-05-06T01:52:38.000Z 2025-10-31T12:22:48.554Z China
在个人隐私毫不安全的年代。 密码太多记不住、密码太简单容易被撞库怎么办? 当然是自建个人密码库啦!!!使用自带的生成器生成不低于16位及以上的密码!,再也不用担心被撞库了!
bitwarden_rs 官方原版教程(英文):https://github.com/dani-garcia/bitwarden_rs/wiki
直接使用docker拉取容器,使用命令+参数运行
使用SQLite存储数据的初始化(初次使用无证书,记得反代启用SSL证书,否则客户端无法连接)
1 2 3 4 5 6 7 8 9 docker stop rs docker rm rs docker run -d --name rs \ -e DOMAIN=http://ip或域名:8088 \ -e ADMIN_TOKEN=HWsaw6Vjmz46BReN\ -v /home/bw-data/:/data/ \ -p 8088:80 \ vaultwarden/server:latest docker logs --tail 30 -f rs
第一次运行。需要初始化设置域名、管理员密码。请改成你自己的在运行!
docker logs –tail 30 -f rs 为容器日志查看。一般无问题的话可按CTRL+C取消查看
登陆后台 如果初始化密码的时候忘记改了,可以登陆后在后台修改 ,也可以改配置文件
ip:8088/admin
登陆后可修改各种参数,记得点击保存按钮。也可使用下方配置文件脚本直接写入
配置文件设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 cat > /home/bw-data/config.json<<-EOF { domain: https://ip或域名:8088, disable_icon_download: false, signups_allowed: false, signups_verify: false, signups_verify_resend_time: 3600, signups_verify_resend_limit: 6, invitations_allowed: true, password_iterations: 100000, show_password_hint: true, admin_token: HWsaw6Vjmz46BReN, invitation_org_name: Bitwarden_RS, ip_header: X-Real-IP, icon_cache_ttl: 2592000, icon_cache_negttl: 259200, icon_download_timeout: 10, icon_blacklist_non_global_ips: true, disable_2fa_remember: false, authenticator_disable_time_drift: false, require_device_email: false, reload_templates: false, disable_admin_token: false, _enable_yubico: false, _enable_duo: false, _enable_smtp: false, smtp_host: smtpdm.aliyun.com, smtp_ssl: true, smtp_explicit_tls: true, smtp_port: 465, smtp_from: xxxx@发信域名, smtp_from_name: 迷失安全密码库_Bitwarden_RS, smtp_username: 发信用户名, smtp_password: 发信密码, smtp_timeout: 15, _enable_email_2fa: true, email_token_size: 6, email_expiration_time: 600, email_attempts_limit: 3 } EOF
然后用新的命令启动容器
1 2 3 4 docker stop rs docker rm rs docker run --name rs --restart=always -d -v /home/bw-data/:/data/ -p 8088:80 vaultwarden/server:latest docker logs --tail 30 -f rs
1 2 3 4 docker run --name rs --restart=always -d -v /home/bw-data/:/data/ -p 8088:80 vaultwarden/server:latest
如果你的docker/ bitwarden_rs在具有固定IP的设备上运行,则可以将主机端口绑定到该特定IP,从而避免将主机端口暴露给外网。
如下所示,在主机端口和容器端口前面添加IP地址(例如192.168.0.2):
1 docker run --name rs --restart=always -d -v /home/bw-data/:/data/ -p 192.168.0.2:8088:80 vaultwarden/server:latest
查看容器IP
1 2 3 docker inspect --format '{{ .NetworkSettings.IPAddress }}' rs docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' rs docker inspect rs
获取宿主机IP
升级容器 1 2 3 4 5 6 7 8 9 10 11 docker pull vaultwarden/server:latest docker stop rs docker rm -f rs docker image prune -f
自用升级脚本(自行修改pull的类型)
1 2 3 4 5 6 7 8 9 10 11 12 13 cat > /root/qdrs.sh<<-EOF #!/usr/bin/env bash echo Info:bitwardenrs 开始 docker pull vaultwarden/server:latest docker stop rs docker rm rs #clear docker run --name rs --restart=always -d -v /opt/bitwarden/:/data/ -p 8088:80 vaultwarden/server:latest #clear docker image prune -f echo Info:bitwardenrs 完成 echo Info:以下为实时日志 docker logs --tail 30 -f rs EOF
然后执行 bash /root/qdrs.sh
数据备份
应该使用自带的的sqlite3 backup命令备份sqlite3数据库。如果在数据库工作期间进行备份,这将确保数据库不会损坏。
1 2 mkdir /home/bw-data/db-backupsqlite3 /home/bw-data/db.sqlite3 .backup '/home/bw-data/db-backup/backup.sqlite3'
Mysql数据库教程网络很多。可搜索下。。暂时不写
默认情况下,它位于 /home/bw-data/attachments
它们仅用于存储当前登录用户的令牌,删除令牌只会将每个用户注销,从而要求他们再次登录。
默认情况下,它们位于<span class="color" style="color:#0693e3">/home/bw-data</span>。有3个文件: rsa_key.der、 rsa_key.pem、rsa_key.pub.der。
图标缓存可以自行重新下载,但是如果缓存很大,则可能需要很长时间。 默认情况下,它位于/home/bw-data/icon_cache中
从SQLite切换到Mysql 之前再下就一个人使用,所以使用了SQLite数据库。
后来带上小伙伴以及盆友等等,人就多起来了。
考虑到SQLite的效率比不上Mysql,且Mysql用APPNODE 备份很方便。故此进行迁移
从SQLite迁移到MySQL 首先嘛,创建 数据库、专用用户名、专用密码(记得改成你自己的再执行)
教程使用的库:bitwarden_rs 用户名:bitwarden_rs 密码:jRts8Vec6RwcoDn6 容器镜像IP:172.17.0.2
1 2 3 4 5 6 7 8 9 10 mysql -uroot -p CREATE DATABASE `bitwarden_rs` COLLATE 'utf8_general_ci' ; CREATE USER 'bitwarden_rs' @'localhost' IDENTIFIED BY 'jRts8Vec6RwcoDn6' ; GRANT ALL ON `bitwarden_rs`.* TO 'bitwarden_rs' @'localhost' ; CREATE USER 'bitwarden_rs' @'172.17.0.2' IDENTIFIED BY 'jRts8Vec6RwcoDn6' ; GRANT ALL ON `bitwarden_rs`.* TO 'bitwarden_rs' @'172.17.0.2' ; FLUSH PRIVILEGES; exit
停止旧的镜像,启用一次Mysql的bitwarden_rs镜像
1 2 3 4 5 6 7 8 docker stop rs docker run -d --name rs --restart=always \ -e DATABASE_URL='mysql://bitwarden_rs:[email protected] :3306/bitwarden_rs' \ -e ENABLE_DB_WAL='false' \ -v /home/bw-data/:/data/ \ -p 8088:80 \ bitwardenrs/server-mysql:latest docker stop rs
开始将SQLite转换成MySQL的sql
1 2 3 4 cd /home/bw-datasqlite3 db.sqlite3 .dump > sqlitedump.sql grep INSERT INTO sqlitedump.sql grep -v __diesel_schema_migrations > mysqldump.sql rm -f sqlitedump.sql
2020年5月6日 然后报错了。。。找了半天是双引号的问题。。。
1 2 sed -i s#\#\#g mysqldump.sql
导入sql到数据库
1 2 3 4 mysql -ubitwarden_rs -pjRts8Vec6RwcoDn6 use bitwarden_rs source /home/bw-data/mysqldump.sqlexit
然后启动bitwarden_rs
1 2 docker start rs docker logs --tail 30 -f rs