Vaultwarden is a free and open-source password manager that you can host on your own server. In this tutorial, you will learn how to install Vaultwarden on a Void Linux server.
Before we begin, ensure that:
To install Vaultwarden on our server, we need to first install some dependencies. Use the following commands to install them:
xbps-install -Sy curl gcc git make openssl-devel postgresql postgresql-server clang
curl
: Used to download files from the internet.gcc
: Used to compile and build programs.git
: Used to download the Vaultwarden source code from Github.make
: Used to automate the build process.openssl-devel
: Used by Rust to build the Vaultwarden binaries.postgresql
and postgresql-server
: These are the databases that Vaultwarden will use to store passwords.clang
: A C language family frontend for LLVM.Before we continue with Vaultwarden installation, we need to create a new PostgreSQL user and database.
Run the following commands to create a new user:
su postgres
createuser -d -l -P vaultwarden
Enter a password when prompted, remember the password.
Now, still logged in as the postgres user, create the database:
createdb -O vaultwarden vaultwarden
exit
We can now download the Vaultwarden source code from Github and compile it. Execute the following commands:
git clone https://github.com/dani-garcia/vaultwarden.git
cd vaultwarden
cargo build --features sqlite --release
When the compilation is done, run Vaultwarden with the following command:
./target/release/vaultwarden
Vaultwarden is now running and should be accessible at http://localhost:8200.
To start and stop Vaultwarden like any other service on our Void Linux system, we need to create a systemd service.
Execute the following command to create the service file:
sudo nano /etc/systemd/system/vaultwarden.service
Enter the following content into the file:
[Unit]
Description=Vaultwarden password manager
After=postgresql.service
[Service]
User=vaultwarden
Type=simple
ExecStart=/{path to vaultwarden}/target/release/vaultwarden
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
Replace {path to vaultwarden}
with the path to the Vaultwarden installation.
Save and close the file.
Reload systemd units, enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable vaultwarden
sudo systemctl start vaultwarden
You have successfully installed Vaultwarden on a Void Linux server. You can now log in to the Vaultwarden web interface and start using it to store your passwords. Remember that this is just the start, ensure that you properly secure your server to avoid any security threats.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!