Я вполне уверен, что есть готовые серверы Exchange или совместимые с Cardav, доступные для установки на частной машине. Я думаю, что даже те, с исходным кодом. Это лучший способ, самый простой и самый «естественный» и стандартный способ сделать это.
Сборка с нуля может оказаться довольно сложной, так как вам придется создавать клиентские приложения для iOS и Android, которые взаимодействуют с вашим сервером и вмешиваются в локальный список контактов.
Другой очень простой и примитивный способ — заставить ваш сервер создавать файлы vcf по требованию, которые можно импортировать и объединять в список контактов iOS, а Android IIRC также может импортировать vcf. Но это безобразно.