I'd echo what others say, KeePassXC on local storage, which you can then sync across devices either with syncthing, dropbox etc.
However, I have just started exploring using vaultwarden (a rust rewrite of bitwarden, which is self-hosted).
However, I have just started exploring using vaultwarden (a rust rewrite of bitwarden, which is self-hosted).