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
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)
Attendre le provisioning
Nhost crée automatiquement :
- Base de données PostgreSQL
- Instance Hasura (console GraphQL)
- Service Auth avec JWT
- Service Storage pour fichiers
Migrations de base de données
Via Hasura Console
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.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
| Rôle | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| public | ✅ Toutes lignes | ❌ | ❌ | ❌ |
| admin | ✅ Toutes lignes | ✅ | ✅ | ✅ |
workflows
| Rôle | SELECT | INSERT | UPDATE | DELETE |
|---|---|---|---|---|
| public | ✅ status = 'active' | ❌ | ❌ | ❌ |
| admin | ✅ Toutes lignes | ✅ | ✅ | ✅ |
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
Désactiver les inscriptions publiques
Disable Sign Up : ✅ ActivéSeuls les admins créeront des comptes depuis la console Nhost.
Créer un utilisateur 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