Database considerations

First off, thank you devs for the great product. I’ve trialed it with kubernetes and loved it so far.

Before spinning this up for a real test and leading into a prod run, I’m wondering what is the best choice of DB. I am familiar with any of the choices and realize the ease of use/backup of just a sqlite db. I’m just wondering when one should consider a more robust db like postgresql or mariadb.

I only plan on ever having maybe 20 users absolute max on this (not a lot) and don’t expect users to have thousands upon thousands of logins. I didn’t see any threads that broached this (just more general threads about using one specific db.)

Just looking to do it right the first time so I don’t have to migrate the DB later on.

I don’t think there’s usually a need to use MySQL or PostgreSQL for bitwarden_rs. Those databases may be better for write-intensive workloads, but a password manager doesn’t really do that many writes since people don’t tend to be constantly updating their password entries. The SQLite backend is also the most widely used and tested, so you’re less likely to run into weird corner cases.

However, I wouldn’t recommend using SQLite on a network file system like NFS or Samba/CIFS, or on something like a Raspberry Pi without at least a “high endurance” SD card. So, if the local storage on your compute node has questionable reliability, that could be a good reason to run with MySQL or PostgreSQL on a remote server that has better storage. File attachments (if you use them) aren’t stored in the database though, so those could still be an issue.

@jjlin Thanks. I’ve tested with just sqlite so far and it seems just fine. For my use case I think sqlite will be just fine as the storage is quick enough and local and I don’t expect a slew of activity.

I appreciate the help.

With only 20 users (and not expecting thousands of logins), SQLite might be sufficient initially. It’s easy to set up and manage, especially if you’re familiar with it. Backups are simple. If there’s a chance of significant user or data growth in the future, PostgreSQL or MariaDB are better choices. They’ll handle scaling much better and avoid the need for a potentially disruptive migration later. If your data model or queries become complex, PostgreSQL/MariaDB offers more powerful features for managing them effectively while doing crm enrichment.