Background
I’ve recently updated my Vaultwarden instance in my home lab and wanted yo migrate all the previous data.
Yes, you can export the vault from the UI, but I had several users and don’t have access to their accounts, so I needed another way to migrate everything to the new instance.
For context, I run Vaultwarden in an Ubuntu LXC in my Proxmox server. I used tteck’s awesome scripts to install it.
Here’s how to migrate your Vaultwarden data
1. Backup the original data
- SSH into wherever you have Vaultwarden installed
- Locate the
data
directory. Depending on your Vaultwarden version, thedata
folder can either be in:/opt/vaultwarden/data
/var/lib/vaultwarden/data
- Copy all the contents inside of
data
to a safe directory. I copied them to my local machine usingscp
.
2. Migrate the data to a new Vaultwarden instance
- Install the new Vaultwarden instance
- Stop Vaultwarden
systemctl stop vaultwarden
- Remove the default data dir
sudo rm -r /opt/vaultwarden/data
- Copy the current data over (I used SCP but you can use any file transfer system you like)
- Remove the old RSA keys from the
data
directory. These will be recreated
sudo rm /opt/vaultwarden/data/rsa_key.pem
sudo rm /opt/vaultwarden/data/rsa_key.pub.pem
- Change the directory ownership to vaultwarden
sudo chown -R vaultwarden:vaultwarden /opt/vaultwarden/data
- Restart Vaultwarden
sudo systemctl start vaultwarden
Done!
You should now be able to reach Vaultwarden at the endpoint you’ve set it up and have all of your old data.