The remote devices should have local database because my main computer will not always be online.
yeah, about that. none of the official bitwarden clients allow editing if the server is not accessible. they didn't want to have to deal with conflict resolution
Or should I just set up keepass instead since IIRC that's one of the ways it can be set up.
sounds like a better idea. but synchronization wise, conflict resolution has to happen somewhere. like when you edit an entry on two devices, and later they try to sync both changes at once. Fortunately tye keepass format has a more comprehensive entry edit history than bitwarden, so clients can figure it out.
keepassxc on linux supports something called keeshare, check how is compatibility for that with your mobile keepass app. original keepass on windows supports some kind of automatic merging on saving and loading, maybe keepassxc does that too? if you end up using synthing, conflicts could occur at that layer, which is not hard but not so straightforward to handle, but keeshare is supposed to help with that I think.