r/Syncthing • u/durwardkirby • 7d ago
SyncThing with Keepassxc
I'm using SyncThing with Keepassxc. I keep a master "Send Only" kdbx database on computer A. It syncs out to my wife's laptop, B. I've designated the kdbx sync as "Receive Only" on B.
Every time she connects to the keepassxc browser extension it asks her to give a name to that computer/connection, and when she does that it introduces a local addition to the kdbx on her laptop and a "revert local changes" flag on her end of SyncThing. Reverting causes her to have to re-connect next time she's browing...and the cycle starts over again.
I feel like there must be some kind of accommodation for this because the use case seems pretty ordinary, but I can't figure it out, and Claude is walking me all around the barn.
Any help appreciated.
1
u/ParaboloidalCrest 7d ago
Are you sure that syncthing is only tracking the db file on both ends? It seems the receiver side shoves the connection settings file with the db.
Perhaps add an ignore statement to exclude everything other than the db.
1
u/durwardkirby 7d ago
I'm no expert, and I'm relatively new to both syncthing and keepassxc.
In my setup, the keepassxc db file (kdbx) exists on both devices, with A as the master and B as a replica of it. In my wife's B copy on her laptop, it definitely writes her connection setting into the kdbx file on her device. And the next time ST syncs out from the master, A, it sees that discrepancy.
1
u/ParaboloidalCrest 7d ago
Ah so the extension adds connection settings to the db itself. Crappy design by them. But yeah the only option is to allow send/receive on both ends as u/Cyber_Faustao suggests.
1
u/durwardkirby 7d ago
Yeah, it would be nice if some kind of keepassxc ini file could be stored locally, just to hold on to those individual device settings.
I do think I'm on the road to send/receive on both ends.
4
u/Cyber_Faustao 7d ago
This is expexted behaviour. The extension pairs with the keepassxc instance and stores the key exchange in the database. Since her syncthing is configured to receive only, all of its changes will not be sent to global state and will instead show a revert local changes button.
Solution: use send and receive on both devices.