Multi Tenancy

we have one Server for multiple clients and their domains. They all use Nextcloud with Contatcs/Calendars which offers CalDAV/CardDAV. To seperate them we installed multiple Nextcloud Instances in multiple (sub)Domains VHosts in this form: cloud.client1.domain, cloud.client2.domain a.s.o.

To let the clients use ActiveSync for their mobile devices we also installed z-push multiple times for being able to configure multiple, independent CalDAV/CardDAV backends, as the config has to point to the correct vhost domain name regarding the “SERVER_NAME” config variable so the clients are directed to their correct Nextcloud Backend.
This installation works as expected.

First question: Is it correct, that this setup cannot be achieved with just one instance of z-push cause of the fix server name variable in the CalDAV / CardDAV Backend config? Or can the SERVER_NAME var be set to the value, the mobile device sends?

Second question: As of Z-Push 2.4 there are no tarballs for installation but it is recommended to install the Distro Package from the repositories. In this case, there is no way to install z-push multiple times with different configurations on the same server, is that right?

this setup cannot be achieved with just one instance of z-push cause of the fix server name variable in the CalDAV / CardDAV Backend config? Or can the SERVER_NAME var be set to the value, the mobile device sends?

No, I cannot imagine that you can achieve the desired setup just with one unmodified installation of z-push. But technically its likely possible to implement some sort of user to specific backend mapping.

but it is recommended to install the Distro Package from the repositories. In this case, there is no way to install z-push multiple times with different configurations on the same server, is that right?

Similar to a WordPress package that you would download from your distribution, the z-push packages are indeed only designed for a single tenant per installation. But instead of the distribution packages you could still a git checkout of your desired release.