Skip to content

feat: déploiement HTTPS Oracle + URL API configurable + modèles ML versionnés#4

Merged
Bastagas merged 4 commits into
mainfrom
feat/configurable-api-url
Jun 1, 2026
Merged

feat: déploiement HTTPS Oracle + URL API configurable + modèles ML versionnés#4
Bastagas merged 4 commits into
mainfrom
feat/configurable-api-url

Conversation

@Bastagas

@Bastagas Bastagas commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Contexte

Mise en ligne publique de TechPulse sur Oracle Cloud avec HTTPS, et corrections nécessaires pour que le site fonctionne derrière un domaine.

Changements

URL d'API configurable (window.TECHPULSE_API)

  • Les fetch JS client (simulateur, statut scraper, alertes) + liens Swagger pointaient en dur vers localhost:5001 → cassaient derrière un domaine.
  • bootstrap.php : variable Twig api_base_url lue depuis PUBLIC_API_URL.
  • layout.twig : injecte window.TECHPULSE_API.
  • docker-compose.yml : passe PUBLIC_API_URL au conteneur frontend.

Modèles ML versionnés

  • salary_model.pkl + similarity_model.pkl dé-gitignorés et commités (1.4M + 458K).
  • pyproject.toml : force-include pour bundler les .pkl dans le wheel hatchling.
  • Sans ça : simulateur / prédiction salaire / offres similaires renvoyaient "modèle non entraîné".

Déploiement live

Test plan

  • 10 pages frontend + 4 endpoints API → 200 en HTTPS
  • Simulateur ML cross-origin → prédiction OK
  • Modèles bakés dans l'image (durable, 0 mount)
  • HTTP→HTTPS redirect (308)
  • CORS cross-domain OK

🤖 Generated with Claude Code

Bastagas and others added 4 commits June 1, 2026 12:21
Avant : les fetch JS client (simulateur, statut scraper, alertes) et les
liens Swagger pointaient en dur vers http://localhost:5001. Ça marche en
dev local mais casse dès qu'on accède au site via une IP publique ou un
domaine (le navigateur du visiteur tape SON propre localhost:5001).

Fix : source unique de vérité.
- bootstrap.php : variable Twig globale api_base_url lue depuis l'env
  PUBLIC_API_URL (défaut http://localhost:5001 pour le dev).
- layout.twig : injecte window.TECHPULSE_API dans le <head>.
- simulator/scraper/search : fetch utilise window.TECHPULSE_API.
- liens Swagger (nav, footer, palette, hero, dashboard) : api_base_url.

En prod, définir PUBLIC_API_URL=https://<api>.duckdns.org dans .env.local
suffit pour que toutes les features marchent derrière le domaine + HTTPS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Le PHP lit PUBLIC_API_URL pour injecter window.TECHPULSE_API. En prod on
le surcharge via .env.local (https://<api>.duckdns.org) ; défaut local
http://localhost:5001.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Symptôme : sur le déploiement Oracle, simulateur salaire / prédiction /
offres similaires renvoyaient "modèle non entraîné". Les .pkl étaient
gitignorés → absents du clone, et hatchling ne les bundlait pas.

Fix :
- dé-gitignore salary_model.pkl + similarity_model.pkl (1.4M + 458K)
- pyproject : artifacts + force-include pour bundler les .pkl dans le wheel

Ainsi tout déploiement (Oracle, grading prof) a les modèles d'emblée.
Re-générables via `make retrain` après un nouveau scrape.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Site déployé sur Oracle Cloud, HTTPS via Caddy + Let's Encrypt :
- https://bastagas-techpulse.duckdns.org
- https://bastagas-tehcpulse-api.duckdns.org/docs

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Bastagas Bastagas merged commit 099ed47 into main Jun 1, 2026
3 checks passed
@Bastagas Bastagas deleted the feat/configurable-api-url branch June 1, 2026 12:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant