I have a compromise solution that would require minimal work on your end.
The first step would be publishing the current Sync API definition, the bare minimum that would allow one to implement their own - I’d argue that a standard OpenAPI schema would be more than enough (and I want to presume that you use OpenAPI internally, since it’s an awesome tool).
Then, the only thing needed to be done is to add an option for a custom endpoint when you set Sync up. Maybe even throw in a “you’re connecting to an untrusted server, please make sure your data is safe, we’re not responsible if your cat turns your microwave into a nuclear bomb, etc.” disclaimer for good measure.
This way, people who really want to host their own Sync server can write their own implementation of it, but most will still use the officially recommended service.