bitwarden密码管理器迁移
¶前言
我的Bitwarden(更准确地说,是开源实现Vaultwarden)服务一直稳定地运行在一台云服务器上。然而,所有的好时光都有尽头,这台服务器的租约即将到期。为了避免服务中断和数据丢失,将其平稳地迁移到新的服务器上就成了一个必须完成的任务。
得益于Docker的容器化部署和Vaultwarden良好的设计,整个迁移过程其实非常简单,核心就是数据备份与恢复。下面记录下我的迁移步骤,希望能给有同样需求的朋友提供一个参考。
¶迁移步骤
¶第一步:在旧服务器上完成最终备份
迁移的第一步,也是最重要的一步,就是确保我们拥有最新、最完整的数据备份。
进入旧服务器:通过SSH连接到即将过期的旧服务器。
停止容器:首先停止正在运行的Bitwarden容器,这是为了保证数据的一致性,避免在备份过程中仍有数据写入。
# 进入docker-compose.yml所在的目录
cd /path/to/your/bitwarden
# 停止并移除容器
docker-compose down打包数据目录:我们之前通过Docker的卷(volume)挂载,将所有的数据都保存在宿主机的
./data
目录下。现在我们需要将这个目录完整地打包。# 假设你的docker-compose.yml在 /opt/vaultwarden 目录下
tar -czvf vaultwarden-backup.tar.gz -C /opt/vaultwarden data/下载备份文件:使用
scp
、rsync
或者SFTP工具,将打包好的vaultwarden-backup.tar.gz
备份文件下载到你的本地电脑,这是我们的“救命稻草”。scp your_username@old_server_ip:/opt/vaultwarden/vaultwarden-backup.tar.gz ./
¶第二步:在新服务器上部署新环境
现在,我们可以在新的服务器上开始准备工作了。
准备新服务器:确保新服务器已经安装好
Docker
和Docker Compose
。上传备份文件:将刚才下载到本地的
vaultwarden-backup.tar.gz
文件上传到新服务器的目标目录,例如/opt/vaultwarden
。scp ./vaultwarden-backup.tar.gz your_username@new_server_ip:/opt/vaultwarden/
创建docker-compose.yml文件:在新服务器的目标目录下,创建你的docker-compose配置文件。你可以直接使用你原来的那一份,但务必检查以下几个关键点:
- 端口:确认
8081:80
和3012:3012
端口在新服务器上是空闲的,如果有冲突,需要修改成其他端口。 - 域名:将
DOMAIN
环境变量修改为你为新服务器准备的新域名(如果你换了域名的话)。如果域名不变,只是IP变了,那么这里不需要修改,但需要确保你的域名DNS解析已经指向了新的服务器IP。 - ADMIN_TOKEN:建议重新生成一个更复杂的
ADMIN_TOKEN
以确保安全。可以使用命令openssl rand -base64 48
来生成一个强大的令牌。
我在新服务器上使用的
docker-compose.yml
内容如下(与旧配置基本一致):version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: bitwarden
restart: always
ports:
- "8081:80" # 确保端口可用
- "3012:3012" # WebSocket 端口
volumes:
- ./data:/data # 挂载恢复的数据
environment:
- DOMAIN=https://me.excom.com # 使用原域名
- ADMIN_TOKEN=你的新生成的安全令牌
- SIGNUPS_ALLOWED=false- 端口:确认
解压恢复数据:在新服务器上,解压我们上传的备份文件,这会生成
data
目录。cd /opt/vaultwarden
tar -xzvf vaultwarden-backup.tar.gz解压后,你应该能看到一个名为
data
的文件夹,里面包含了所有的数据库和附件。
¶第三步:启动并验证服务
万事俱备,只欠东风。
启动容器:在新服务器上,使用Docker Compose启动我们的Bitwarden服务。
docker-compose up -d
查看日志:检查容器日志,确保没有报错信息,一切启动正常。
docker-compose logs -f
验证服务:
- 打开浏览器,访问你的Bitwarden域名(例如
https://me.excom.com
)。 - 尝试用你的主密码登录,应该能正常进入并看到所有的密码条目。
- 在各个客户端(浏览器扩展、手机App)上,退出账号再重新登录,或者更新服务器URL为新服务器的地址,测试同步功能是否正常工作。
- 打开浏览器,访问你的Bitwarden域名(例如
访问管理面板:在浏览器中访问
https://你的域名/admin
,输入你设置的ADMIN_TOKEN
,进入管理面板检查一切是否正常。
¶注意事项
- DNS生效时间:如果你迁移后更换了域名或者服务器IP,需要留意DNS记录的TTL和全球生效时间,这期间部分用户可能无法连接。
- SSL证书:Vaultwarden通常搭配Nginx Proxy Manager或Caddy等反向代理来自动管理SSL证书。确保你的反向代理也正确配置并指向新的容器。
- 定时备份:经历此次迁移后,强烈建议设置一个定期自动备份的脚本(例如每天将
data
目录打包并备份到另一个安全的地方),以防未来再次出现类似情况。
¶总结
整个迁移过程可以概括为:停旧服务 -> 备份数据 -> 传数据 -> 配新环境 -> 启新服务。只要步骤清晰,操作仔细,迁移Bitwarden(Vaultwarden)服务是一项非常简单且安全的任务。Docker容器化部署的优势在此体现得淋漓尽致。
现在,我终于可以放心地让旧服务器过期了,所有的密码数据都已安全地在新家“安顿”了下来。