We plan to serve and synchronize with a MySQL database hosted on a local virtual machine rather than a Cloud Endpoint, however it's not clear to me if ODK-X Services can communicate with a local machine. For instance, the documentation for ODK-X Services states "Services will contact the Cloud Endpoint and synchronize your data." Can Services be set up to contact a local server instead?
Cloud Endpoint is a generic term we use to refer to either Sync-Endpoint or Aggregate. Aggregate is now deprecated so it's now a single choice. Sync-Endpoint can run locally on any machine that supports Docker.