It's ok to have Wants=/After=network-online.target, just that couchdb might start very late in the boot. In some cases, like you *only* use NetworkManager and aren't online, it will *never* happen though, and couchdb won't run at all. That's presumably not a big use case for servers with remotely accessible couchdb instances, but it's something to be aware of.
> What's the systemd best-practice in this case?
There is none, really. Wants=/After=network-online.target is a workaround for "old-school" software which doesn't handle dynamic network changes (i. e. the pre-hotplug world mindset). I. e. ideally that gets fixed in couchdb itself; as an intermediate workaround couchdb could reload itself if the network changes (similar to SSH, check /etc/network/if-up.d/openssh-server). But until that you can just add that to the unit.
It's ok to have Wants=/ After=network- online. target, just that couchdb might start very late in the boot. In some cases, like you *only* use NetworkManager and aren't online, it will *never* happen though, and couchdb won't run at all. That's presumably not a big use case for servers with remotely accessible couchdb instances, but it's something to be aware of.
> What's the systemd best-practice in this case?
There is none, really. Wants=/ After=network- online. target is a workaround for "old-school" software which doesn't handle dynamic network changes (i. e. the pre-hotplug world mindset). I. e. ideally that gets fixed in couchdb itself; as an intermediate workaround couchdb could reload itself if the network changes (similar to SSH, check /etc/network/ if-up.d/ openssh- server) . But until that you can just add that to the unit.