My question is, has anyone done, hosting the app and let the customer manage the database ? That way they have the ownership on their data and they choose how to host it, you only offer a service on that data ?
They can also choose to "live sync" their local CouchDB with my Cloud based CouchDB and use the app online on all their devices.
They can also configure CouchDB to live sync their DB with 3rd party services like Couchbase and Cloudant and create backups and snapshots of all their data on those 3rd party services with their local CouchDB.
(a) the customer needs to open his DB box to the outside world. Yes, VPNs, encryption, whatever. Customer's IT operations won't like it. And that is probably enough to kill it, unless someone powerful in the organisation really throws his weight behind it.
(b) you introduce another round trip, and thus latency. Hosting the application close to the data is more natural.