Vue d’ensemble
Kit’Asso utilise Nhost comme backend-as-a-service, fournissant :- PostgreSQL — Base de données relationnelle
- Hasura — API GraphQL auto-générée + permissions
- Nhost Auth — Authentification (email/password, JWT)
- Nhost Storage — Upload et gestion de fichiers
eu-central-1 (Francfort)
Création du projet
Nouveau projet Nhost
1
Créer le projet
- Allez sur app.nhost.io
- Cliquez sur “New Project”
- Remplissez :
- Name : Kit’Asso Production
- Region : Europe (eu-central-1)
- Plan : Free (ou Pro selon les besoins)
2
Attendre le provisioning
Nhost crée automatiquement :
- Base de données PostgreSQL
- Instance Hasura (console GraphQL)
- Service Auth avec JWT
- Service Storage pour fichiers
3
Récupérer les credentials
Dans Settings → General :
- Subdomain :
gqvlmqwbsmkhlllmgbyw(exemple) - Region :
eu-central-1
Migrations de base de données
Via Hasura Console
1
Ouvrir la console Hasura
Dans le dashboard Nhost → Hasura → Open Hasura Console
2
Exécuter les migrations SQL
Dans l’onglet SQL de la console Hasura, exécutez les migrations dans l’ordre chronologique.Les migrations sont dans
hasura/migrations/ ou dans les scripts SQL du projet.3
Vérifier les tables
Dans l’onglet Data, vous devez voir les 13 tables principales :
tools,categories,filters,tool_featuresworkflows,workflow_stepstool_packs,pack_toolsquizzes,quiz_questions,quiz_answersquiz_recommendations,quiz_responses
Via Nhost CLI (alternative)
Permissions Hasura
Kit’Asso utilise les permissions Hasura (pas RLS PostgreSQL) pour contrôler l’accès aux données.Rôles
- public — Utilisateurs non authentifiés (visiteurs)
- admin — Utilisateurs authentifiés (gestionnaires)
Configuration dans Hasura Console
Pour chaque table, configurez les permissions dans l’onglet Permissions : Exemple : tabletools
Exemple : table
workflows
Nhost Storage
Configuration
Le storage est prêt à l’emploi dès la création du projet. Par défaut, un bucketdefault est disponible.
URL des fichiers :
Upload depuis le frontend
Authentication
Configurer Auth
1
Aller dans Auth Settings
Dashboard Nhost → Auth → Settings
2
Désactiver les inscriptions publiques
Disable Sign Up : ✅ ActivéSeuls les admins créeront des comptes depuis la console Nhost.
3
Configurer les emails (optionnel)
Si besoin de reset password ou magic links, configurez le provider SMTP dans Auth → SMTP Settings.
Créer un utilisateur admin
1
Aller dans Users
Dashboard Nhost → Auth → Users → Add User
2
Créer le user
- Email :
admin@lucdidion.lu - Password : Mot de passe fort
- Default Role :
admin
3
Tester la connexion
- Allez sur votre app déployée →
/admin - Redirigé vers
/login - Connectez-vous avec les credentials
- Vérifiez l’accès au dashboard admin
Performance & Monitoring
Dashboard Nhost
Le dashboard Nhost fournit :- Database Health — CPU, mémoire, disk usage
- API Logs — Requêtes GraphQL avec temps de réponse
- Auth Logs — Tentatives de connexion
Optimisations
- Hasura cache automatiquement les metadata GraphQL
- Les indexes PostgreSQL sont créés via les migrations
- Le connection pooling est géré par Nhost (PgBouncer)
Backups
Backups automatiques
Nhost crée automatiquement des backups :- Free plan : Backup quotidien, rétention 7 jours
- Pro plan : PITR (Point In Time Recovery), rétention 30 jours
Backup manuel
Via la console Hasura oupg_dump avec les credentials de connexion directe (disponibles dans les settings Nhost).
Sécurité
Credentials
- Subdomain + Region : Safe pour le frontend (identifiants publics)
- Admin Secret Hasura : JAMAIS exposé côté client, uniquement pour la console
- JWT Secret : Géré automatiquement par Nhost Auth
Protection GraphQL
Hasura protège automatiquement via :- Permissions par rôle (public/admin)
- Validation des types GraphQL
- Rate limiting (plan Pro)
Variables d’environnement
Frontend (Vite)
Client Nhost (src/api/client.ts)
Checklist production
- Projet Nhost créé en région EU
- Tables créées via migrations
- Permissions Hasura configurées par rôle
- Permissions testées (public vs admin)
- Storage fonctionnel (upload/download)
- User admin créé et testé
- Variables d’environnement dans Hostinger
- Test complet de l’app en production
Ressources
Nhost Docs
Documentation officielle
Database Schema
Structure des tables
Permissions Hasura
Configuration des permissions
Hostinger Setup
Configuration hébergement frontend