Un diario más, a ver hasta donde llegamos esta vez.
Overview
Esto no va a ser mas que una web app muy sencilla, donde buscar carreras de bicicletas (BTT, Carretera, etc..) de España.
La idea es competir con esto:
https://runedia.mundodeportivo.com/calendario-carreras/espana/comunidad/provincia/ciclismo-carretera/distancia/
https://rfec.com/index.php/es/smartweb/seccion/seccion/rfec/carretera/calendario_carretera
Phase 1: Scaffolding y MVP
- Funcionalidad MVP
- Coste < $10/mo
- No vendor lock-in
- Landing page, logo, dominio, SSL,
- Scrapping > Excel + images > Import Script
Infra:
- BD: MongoDB Atlas - Reason: Me dan un free tier suficiente para tirar bastante, si hace falta se migra más adelante
- API: Hetzner VPS - Reason: Tiene buen performance y es barato 3-4 euros/mo, No LB, single VPS (Happy days)
- UI: Vercel - Reason: Free tier suficiente, tirare de la plantilla de @isvidal "Vital" ya que tengo el front abandonado desde hace un par de años y ando perdido.
- CDN: No se si pondré alguno.. no veo opciones free que merezcan la pena, lo mismo pongo Varnish y pongo la UI en otro server y prau si no va muy fino al principio.
Funcionalidad MVP:
No authentication
Races: Buscador (tipo de carrera, distancia, homologada/profesional/amateur, localizacion, fechas, ...), GPX viewer (Track), GPX file, Link a inscribirse, Branding (logo, color, etc.)
Server cache agresiva del listado de carreras en MEM (poco accesso a BD, que es lenta), filtrado en MEM
Todo el media/files ira a FileSystem (Ni S3 ni leches al menos de momento)
CI/CD:
gitops: Un repositorio con un docker-compose file y toda la config que haga falta (salvo secrets que iran en disco)
Cada push a master: (git hook)
- El VPS hace: git pull (refresh files), y restart.sh
Phase 2
- AuthN/Z para Orgs y poder administrar/publicitar carreras.
- ToS, Privacy
Phase 3
- Gestion de inscripciones
- Stripe Connect para Orgs
- SL ? TBD
A futuro, pongo k3s con rancher en Hetzner, Traefik como ingress controller y parto en servicios con service mesh usando istio, Prometheus y Grafana para monitoring, y la BD a saber…