Portée : un déploiement pilote à instance unique — pas encore un
self-serve public.
docker-compose.yml reste la référence pour le
développement local ; cette page couvre la mise en ligne réelle de
l’API, telle que documentée dans docs/DEPLOY.md.Image
Dockerfile (multi-stage, basé sur uv) construit une image qui, au
démarrage du conteneur, applique les migrations Alembic puis lance
uvicorn sur le port 8100.
Contenu du Dockerfile
Contenu du Dockerfile
Cible recommandée : Fly.io
Choisie parce que c’est du Docker standard dessous (pas de verrouillage fort) et que Fly propose un Postgres managé avec l’extensionpgvector.
1
Détecter le Dockerfile
fly.toml.2
Postgres managé
3
Activer pgvector
Une fois sur la base, après
fly postgres attach (les migrations
Alembic supposent CREATE EXTENSION IF NOT EXISTS vector, déjà dans
alembic/versions/0001_initial.py — rien à faire côté Fly au-delà
d’avoir une image Postgres qui supporte l’extension).4
Variables d'environnement
fly secrets set NOM=valeur pour chacune — voir .env.example à la
racine du dépôt pour la liste complète et le rôle de chaque variable.5
Déployer
Console (Next.js)
Déployée séparément sur Vercel (adapté nativement à Next.js) :NEXT_PUBLIC_HAKI_API_URL (l’URL
Fly.io de l’API), NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY / CLERK_SECRET_KEY
(Clerk), HAKI_CONSOLE_SERVICE_KEY (même valeur que côté API — jamais
NEXT_PUBLIC_*, elle ne doit jamais atteindre le navigateur).

