aboutsummaryrefslogtreecommitdiffstats

A mkosi-template for Vaultwarden

This is a mkosi-template for Vaultwarden. In order to set this up you need Mkosi >=5.

To build this, run sudo mkosi. This will create a new container in /var/lib/machines called vaultwarden. Next you should symlink the .nspawn-config to /etc/systemd/nspawn using sudo ln -s /var/lib/machines/vaultwarden.nspawn /etc/systemd/nspawn/.

After that you need to create the folders we mount into the image. This is /etc/vaultwarden and /var/local/vaultwarden. These should be owned by root, and have 700 set as permissions.

Then you need to copy etc/vaultwarden/vaultwarden.env to /etc/vaultwarden/, and set all your variables. You also need to create a database (using PostgreSQL). Lastly you need to set up a web-proxy - see the vaultwarden wiki for examples.

Now all you need to do is to run it - machinectl start vaultwarden. You can drop into the container to troubleshoot using machinectl shell vaultwarden, and you can view logs using journalctl -M vaultwarden from the host, or journalctl -u vaultwarden from inside the container.

Upgrading from “bitwarden-rs” to “vaultwarden”

Vaultwarden recently changed name from Bitwarden-RS to Vaultwarden, and a lot of files have been moved around. If you’ve been using this mkosi-template, this should be the upgrade-path:

$ sudo mv /etc/bitwarden_rs /etc/vaultwarden
$ sudo mv /etc/vaultwarden/bitwarden_rs.env /etc/vaultwarden/env
$ sudo mv /var/local/bitwarden_rs /var/local/vaultwarden
$ sudo chown -R 29033447:29033447 /var/local/vaultwarden/data

As you can see, some files have been moved around, and also we’ve set a more static UID for the vaultwarden-user.