There's TOTP support in Keepass2Android and KeepassXC (and surely other Keepass implementations too). These are open source and you can control how the password database is kept: cloud storage is supported as well as local file (that you can sync with Syncthing or whatnot).