Introduction

Recently I realised that I don't have a very efficient way to sync my passwords across my devices. Upto this point I just resorted to sharing passwords to myself using WhatsApp or Discord 🫣. This had become difficult to manage, especially when I don't have access to my PC. And so started my journey of finding a cheap (read: free) password manager that's also easy to work with.

pass

The first solution I stumbled upon (through a friend's recommendation) was pass. Pass stores each of it's passwords as a gpg encrypted file, where the filename is the website or resource that uses the password. It follows the Unix philosophy which explains the simplicity in design. But in the end I identified a few issues that makes it unsuitable for my uses:

  • The website names are publicly visible
  • No easy way to use it on Windows. QtPass refuses to start on my machine.
  • Is a pain to set up on a new device. Need to share gpg private and public keys to the new device.

And so I moved on to other, less linux hacker, solutions.

Self Hosted Solutions

There are quite a few open-source solutions that can be self-hosted. The ones I considered were:

  • Passky
  • Passbolt
  • VaultWarden

I ended up choosing VaultWarden due to both Passky and Passbolt not having mobile. And I am really happy with my decision. I have been using it for the past week and I have no complaints. The bitwarden apps and extensions work great with my self hosted instance. I am also loving how easy it is to set up on a completely new device. I don’t have to share any kind of private keys. I just have to remember one single master key. I also don’t have to install anything on the device if I want to and can just use it from the web interface.

Wrapping Up

This simple need of having a simple and free solution to password management led me down a rabbit hole of self hosting. And it became a fun (altho difficult) project to learn about docker and Caddy.

In the next post I will show off my current configuration. It'll also serve as tutorial to me (and others) on how to start self-hosting. But in short, I bought a cheap VPS, set up docker on it, configured VaultWarden and Fail2Ban (will explain what it is in the next post) and that was it. It also gave me a nice opportunity of shifting all my other static websites from AWS Amplify to Self Hosted.

Until then, see ya!