// architecture technique

🚵 Pista

Guide cartographique des spots VTT DH & Enduro. Une SPA temps réel, une app mobile native, un moteur de routing maison et une base géospatiale — le tout 100% auto-hébergé.

01 Stack technique

Cinq couches, du pixel à la tuile vectorielle.

🖥️Front-end
SPA cartographique réactive, 4 langues
Vue 3TypeScriptViteVuetify 3MapLibre GLi18n fr·en·es·eu
📱Mobile
App native, navigation terrain
CapacitorAndroidGPS backgroundHUD course-upnotif virage
🗄️Back & données
Supabase auto-hébergé sur VPS
PostgreSQL 17PostGISGoTrue / OAuthStorageRLSREST / Kong
🧭Carto & routing
Moteur d'itinéraires maison
ValhallaPMTilesfiltrage OSM par zoneOverpassprofil d'altitude
⚙️Infra & déploiement
Edge mondial + VPS Linux
Cloudflare PagesWranglerprérendu SSGCaddyDockerCodemagic CI

02 Flux de données

Le chemin d'une requête, du rider à la base géospatiale.

client
🚵
Riders
Web + app Android
edge
☁️
Cloudflare Pages
CDN mondial · pages pré-rendues (SEO)
proxy
🛡️
Caddy
Reverse proxy + TLS auto
api
🔌
Supabase API
api.pista.bike · auth + REST
data
🐘
PostgreSQL + PostGIS
spots, pistes, profils · RLS
Services co-localisés sur le VPS (servis via Caddy)
🧭Valhalla
Calcul d'itinéraires multi-pistes, profil d'altitude densifié
🗺️Tuiles vectorielles
PMTiles des sentiers, découpées à chaque intersection
📍Géocodage
Proxy Nominatim pour la recherche d'adresse
🗄️Supabase
Postgres, auth, storage, REST — pile complète
Migré du cloud vers l'auto-hébergement complet pour maîtriser l'egress et les coûts — tuiles, routing et géocodage passent par le VPS (Cloudflare ne proxifie que le site).

03 Interactions extérieures

Les services tiers qui alimentent ou prolongent Pista. IN = données entrantes · OUT = sortantes.

🌦️Open-MeteoIN

Prévisions météo 7 jours affichées sur chaque spot.

🗺️OSM / OverpassIN

Ingestion des sentiers OpenStreetMap, base du graphe de routing.

📍NominatimIN

Géocodage d'adresse pour le planificateur d'itinéraire (via proxy).

🔐Google OAuthIN·OUT

Authentification des utilisateurs (connexion en un clic).

🖼️Wikimedia CommonsIN

Visuels libres de droits (CC) pour les événements & articles, crédités.

▶️YouTubeIN

Vidéos intégrées dans les fiches spot & piste.

📸InstagramIN

Posts intégrés au fil Actus des spots.

🤖Codemagic → PlayOUT

CI : build de l'AAB signé & publication auto en test interne Google Play.

✉️SMTPOUT

Envoi des récaps quotidiens & de la newsletter hebdo.

🔔FCM PushÀ VENIR

Notifications push à chaque nouveau contenu publié.

04 Automatisations planifiées

Tâches récurrentes orchestrées par timers système sur le VPS.

03:30 / jour
💾 Sauvegarde base de données
Dump PostgreSQL compressé, rétention 14 jours.
08:00 / jour
📰 Récap quotidien
Email des nouveaux spots, pistes, articles & événements des dernières 24 h.
lun. 08:00
📩 Newsletter hebdomadaire
Top des spots de la semaine, envoyé aux abonnés opt-in.
à chaque deploy
⚡ Prérendu SEO incrémental
Régénère uniquement les pages dont les données ont changé (≈ 1700 pages, 4 langues).

05 Pipeline de déploiement

Build local sur le VPS → edge Cloudflare, en quelques minutes.

01
Build
Vite + vue-tsc compilent la SPA avec la config self-host.
02
Prérendu
SSG Puppeteer incrémental : seules les pages modifiées sont re-rendues.
03
Wrangler
Push du dist/ vers Cloudflare Pages (branche prod).
04
Mobile
Push sur dev → Codemagic build & publie l'app en test interne.