While it is nice to have a way to self-host Bitwarden, this is not very convinient for single/family use cases. A lot of linux users are uncomfortable with hosting anything outside their control. So the idea is, similar to what Enpass does (I know, proprietary) make it possible to easily sync youjr database with a service like Nextcloud.
I know, Nextcloud already offers passman, but that does not offer all the functionality that Bitwarden does. I have seen this thread on self hosting, but that seems to have gone nowhere. Any thoughts?
Well, I linked to that, but I did not see, the last answer was only a day old. I know that this would work with webdav as I use it in that way with Enpass. Works on all platforms that they have an app for (android, iOS, windows phone, desktop). I am not a dev so the insight ends here from my sight. All I know is this would be a huge win for Bitwarden.
One of the differences is that you can host ownCloud/Nextcloud yourself, unlike Google Drive or Dropbox. But the basic functioning is the same : you have a desktop client that syncs a folder on your computer with a server (+ more advanced features).
The biggest difference for me is that Nextcloud is 100 % Free Software. And yes, you host it on your server, under your control. Clients for desktop, Android and iOS always have an in sync database on all devices.
Functionalities are similar, yes. I have no idea if Dropbox or GDrive also use WebDAV to connect to the services. With Nextcloud, you just give an address of your Nextcloud instance, like https://your_domain/remote.php/webdav/ to establish the connection.
I can easily use this now by just placing the Bitwarden db on the Nextcloud Server, from where it will sync with my devices. But then, if Bitwarden gets new entries, which happens at least 2-3 times per week for me, I would have to have to place the db into the Nextcloud Client every time for it to upload and sync.
I have no solution for that for now, as I only found Bitwarden yesterday and don’t know the innards yet.
To be honest, this thread as well as the Personal Cloud Synchronization thread doesn’t make too much sense to me.
From a technical perspective it makes things way more complicated as you have to fight with various protocols like webdav for Nextcloud but also the proprietary google stuff. For synchronisation there is bitwarden core/server which is completely free and runs almost everywhere thanks to docker’s multi-platform features.
Also keep in mind, that Other than keepass, bitwarden doesn’t manage your vault like one big file.
So it needs an implementation to get the vault out as a file and push it to webdav, not talking about confict resolution and handling the duplication problems that appear on these clouds in case the same file was changes in two places independently but at the same time and later on it’s synced. Trust me, it’s a mess. Even keepass tells you to use a two way sync that tries to avoid this problem: https://keepass.info/help/kb/trigger_examples.html#dbsync
So all in all I think it’s maybe not worth it to invest too much time on this.
But I agree that it should be possible to upload your vault to these clouds, mainly for backup purposes. But I would use a simpler way here: Just allow to export and import your data encrypted. Aaybe also automated in an interval and safe it as file (possible in case of bitwarden desktop) . It’ll be automatically uploaded to these clouds without all the possible problems you may run into.
Well, we probably have a misunderstanding here. I do not consider a sync chain, that involves .NET, MYSQL-Server and the Azure Cloud free, because it is out of my control. On the other hand, using Nextcloud on my server is.
In theory, someone could write an nextcloud app that mime the bitwarden API and then your bitwarden client could just use this app as backend. Thanks to the open source nature of Bitwarden it is just a matter of development. But I think it’s not the job of Bitwarden itself to code this.
There is already an alternative go implementation of the Bitwarden backend server so just feel free to start working on an PHP implementation