Formulaire d'installation

Lorsque vous visitez pour la première fois après avoir uploadé , l'admin détecte qu'aucune configuration n'est intégrée (parce que est livré en stub pour le chemin sans build) et affiche un assistant

Lorsque vous visitez https://<votre-site>/admin/ pour la première fois après avoir uploadé dist/admin/, l'admin détecte qu'aucune configuration n'est intégrée (parce que config.js est livré en stub null pour le chemin sans build) et affiche un assistant d'installation au lieu de la page de connexion normale.

Cet assistant fait ce qu'un développeur ferait via .env : collecter les identifiants Firebase ou SQLite + Flexweg, les valider, et les persister pour que l'admin fonctionne.

Prérequis

Avant de lancer l'assistant, vous devez avoir :

Pour Firebase :

  • Config Firebase copiée depuis la console Firebase (Project settings → General → Your apps → SDK setup) — six valeurs : apiKey, authDomain, projectId, storageBucket, messagingSenderId, appId. Voir configuration projet Firebase.
  • Email + mot de passe admin bootstrap — l'utilisateur que vous avez créé dans Firebase Authentication. L'email DOIT correspondre à celui épinglé dans vos règles Firestore.
  • Clé API Flexweg, URL du site, URL de base API — voir configuration compte Flexweg.

Pour SQLite :

  • Clé API maître Flexweg — depuis Account → API keys. Elle est échangée contre un token scopé lors de l'installation puis n'est plus jamais utilisée par l'admin (seul le token scopé est persisté).
  • Chemin SQLite — où le fichier .sqlite sera stocké sur votre site Flexweg (ex. /data/cms.sqlite). Si le fichier n'existe pas il est créé.
  • Email + mot de passe pour le premier compte admin (créé côté serveur lors de l'installation).

Si quelque chose manque, corrigez-le avant d'ouvrir l'assistant.

L'assistant

L'assistant a trois étapes :

Étape 1 — Conditions d'utilisation

Un document en 7 sections expliquant :

  1. Service gratuit — le CMS est fourni gratuitement par Flexweg
  2. Fourni tel quel — pas de garantie, peut contenir des bugs
  3. Votre contenu, votre responsabilité — vous gérez les droits d'auteur, les droits d'image, le RGPD, les licences tierces
  4. Votre compte Firebase / votre installation SQLite, votre sécurité — vous sécurisez votre projet (mots de passe, règles)
  5. Limitation de responsabilité — Flexweg n'est pas responsable de perte de revenus / de données
  6. Vos données restent à vous — le contenu vit dans votre Firebase + votre Flexweg (ou uniquement votre Flexweg en mode SQLite), aucune transmission tierce
  7. Usage légal — l'usage illégal / frauduleux peut entraîner la suspension de l'hébergement

Une case à cocher en bas : J'ai lu et accepté les conditions d'utilisation. Tant qu'elle n'est pas cochée, le bouton Continuer est désactivé.

Étape 2 — Choix du backend

Deux onglets : Firebase et Flexweg SQLite. Choisissez selon votre préférence — la suite de l'assistant s'adapte.

Onglet Firebase

Cinq sous-étapes : init Firebase + sign in, vérification de l'email admin, vérification email vérifié, test de l'API Flexweg, écriture de la config. Si l'email Firebase n'est pas vérifié, l'assistant déclenche un sendEmailVerification et vous demande de cliquer sur le lien reçu par mail avant de re-soumettre — c'est nécessaire car les règles Firestore demandent email_verified == true pour le bootstrap admin.

Onglet Flexweg SQLite

Une seule étape combinée : POST /api/v1/sqlite/auth/install échange la clé maître contre un token scopé, lance ensureSchema() pour créer les tables, enregistre l'admin via registerUser({masterApiKey}), persiste la clé Flexweg dans la table config SQLite, upload config.js rempli sur Flexweg, recharge avec tous les query params nettoyés.

Étape 3 — Reload

Après le clic final sur Installer, l'admin :

  1. Persiste la config dans window.__FLEXWEG_CONFIG__
  2. Upload config.js rempli sur Flexweg
  3. Force un window.location.reload() pour que le prochain boot lise le config.js fraîchement uploadé

Au reload, vous arrivez sur la page de connexion normale (Firebase) ou directement sur le tableau de bord si vous êtes déjà authentifié via le token SQLite. L'assistant ne se ré-affichera plus.

Réinitialiser l'assistant

Si vous voulez recommencer à zéro :

  1. Supprimez /admin/config.js sur votre site Flexweg (ou remplacez son contenu par window.__FLEXWEG_CONFIG__ = null;)
  2. Rechargez /admin/ — l'assistant réapparaît

C'est utile pour basculer de Firebase à SQLite ou inversement sans réinstaller l'admin complet.