Tenemos una REST API con MongoDB. Tenemos un front-end para generar posiciones y grabarlas en la bd. Y tenemos otro front-end para visualizar las posiciones y ver cómo van evolucionando.
La parte de generar las posiciones y enviarlas al servidor de momento no es una aplicación móvil, sino que es una página web. Openlayers tiene la posibilidad de hacer geolocation, y por tanto tenemos una precisión muy buena (unos 15 m). No es necesario por tanto una aplicación móvil. Ahora bien, hay que hacerlo con https.
(ref): https://stackoverflow.com/questions/39366758/geolocation-without-ssl-connection:
Warning by Chrome : getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS.
Hasta aquí ningún problema especial cuando se desarrolla localmente (localhost). Pero el problema esté cuando se despliega en el servidor, en este caso un VPS en OVH. Por tanto, la parte de generar las posiciones GPS tiene que ir al servidor OVH donde hay instalado el certificado SSL. Ahora bien, no se pueden generar certificados para el dominio ovh.net con noip.com (se han pasado de la cuota, lógico). Así pues, primero me he tenido que registrar en noip.com y ahora tengo el dominio jquintana.ddns.net.
Poner el MongoDB en el servidor no ha sido ningún problema. El problema está en la API REST, hecha con Express. La API REST se ha tenido que hacer segura (https), pues no podía ser que llamásemos a la API desde https, y que este servidor respondiese com http. Este ha sido el problema principal.
Finalmente la parte del front-end de visualizar las posiciones no ha tenido especial problema. Las llamadas a la API http://localhost:3000 se han de cambiar a les llamadas a la API https://jquintana.ddns.net:8080.
En resumen, tú puedes tener una aplicación funcionando con localhost sin especiales problemas, y cuando la quieres desplegar en la nube empiezan los problemas de CORS, seguridad, protocolos que no te habías planteado.
Ahora el último paso es tener un código que funcione igual de bien en localhost y en la nube, que esto en principio no será problema. Y la reflexión es que cuando se desarrolla un proyecto, no hay que esperar al final de tot para desplegarlo a la infraestructura de la nube. Hay que hacerlo ya en las primeras fases: es el despliegue continuo. Aunque la aplicación no tenga muchas funcionalidades, ya se ha podido afrontar todos los problemas de seguridad e infraestructura al intentar desplegar en un entorno real en las primeras fases. Y así nos ahorramos problemas al final del proyecto.