Heroku Deployment

Hi all,

I posted this on the original issue since it was closed, however posting here as well. I was successful on getting this to run with Heroku and have a small helper script to bootstrap the process.

I’m planning on using this instance as my tertiary HA setup (since the DB has outside access) for replication. Hopefully this is helpful for others!

Hi all,

Just a short update that I’ve actually simplified this process now to be deployed completed within Github Actions, so there is no need to have Docker or any other utility installed. If you have any questions or concerns, please open an issue. I hope to make this something that everyone can use!

Hello, thanks for providing this. I’m also looking to deploy bitwarden_rs on heroku with postgresql. On that wiki page, it says

If your password contains special characters, you will need to use percentage encoding.

This is confusing. I only find they mentioned this in the setup instructions with a database. I assume encoding issues should be handled by the clients and server. So why do they mention this? Does it mean I need to manually escape all the special characters?

My best guess is this is for compatibility, whether using compose or having $ for variables, to prevent escaping. That’s my best bet for it.

Do you have any issues using password with special characters? Any manual change needed if I were to import data?

URL or percent encoding is not specific to bitwarden_rs. It’s to avoid ambiguity in how the URL is parsed. That URL is most likely passed verbatim to the underlying database client library. It depends on how the library does its URL parsing, but it probably isn’t necessary to URL-encode that entire list of characters, so just try it and see what works.

I know percentage encoding in URL. But the wiki mentioned

If your password contains special characters, you will need to use percentage encoding.

The password is just the part that’s most likely to need URL-encoding. Special characters that appear elsewhere in the URL (e.g., in the user part) may need encoding as well.