Vous venez d'extraire le dossier. Cette page vous emmène de là au site en ligne, éditable par votre client. Comptez 30 minutes la première fois, 5 pour les sites suivants.
Le dossier fonctionne déjà. Servez-le avec n'importe quel serveur local :
npx http-server -p 8080 .
# ou, si vous avez Python :
python3 -m http.server 8080
Puis ouvrez http://localhost:8080/index.html?admin. N'importe
quelle adresse et n'importe quel mot de passe ouvrent l'éditeur : dans cet
état, tout est enregistré dans votre navigateur, sans compte ni serveur.
La page index.html livrée est vierge : un assistant
s'ouvre, vous pose trois questions — une page ou plusieurs, à quoi elle
sert, quelle allure lui donner — et construit la page à partir de vos
réponses. Vous arrivez ensuite sur le Guide : la page de
haut en bas, une étape par partie, avec sous chaque champ une phrase qui
dit quoi y mettre. Pour voir l'outil sur un vrai site, ouvrez plutôt
demo/index.html?admin.
admin/ à sa racine et ajoutez les deux lignes de l'étape 4.
Votre code reste tel quel, le module s'y accroche. L'assistant ne
s'ouvre que sur une page vide, et l'ambiance ne s'applique par défaut
qu'aux parties que vous ajoutez : votre feuille de style n'est pas
touchée.
file://, où le navigateur interdit les modules
JavaScript. Toute commande ci-dessus suffit.
Quand l'outil vous convient, passez à la suite : c'est ce qui rend les modifications réelles, partagées et publiées.
C'est la base de données qui garde le contenu. Le plan gratuit suffit largement pour un site vitrine.
Sur console.firebase.google.com :
</> ▸ enregistrer l'application. Gardez l'objet
firebaseConfig affiché : c'est l'étape 2.eur3 ou europe-west1.Recopiez ici les valeurs de firebaseConfig. Le fichier se
fabrique au fur et à mesure, en bas.
Ça décide de deux choses : la réécriture du
fichier .html à chaque publication, et le téléversement des
médias.
Ce fichier remplace le admin-config.js livré dans le dossier,
à côté de index.html.
Sans cette étape, votre base est ouverte à tous. Dans la console : Firestore Database ▸ onglet Règles, remplacez tout, puis Publier.
Le fichier est aussi dans le dossier : firebase/firestore.rules.
Toujours dans Firestore, créez le document qui autorise son compte :
| Collection | Document | Champ |
|---|---|---|
| sites | mon-site | — |
| └ members | l'UID noté à l'étape 1 | role (chaîne) = owner |
Sur chaque page du site, juste avant </body> :
<script src="/admin-config.js"></script> <script type="module" src="/admin/runtime.js"></script>
La page index.html livrée dans le dossier les contient déjà.
Si vous partez d'un site existant, c'est la seule modification à apporter à
son code.
Déposez admin-endpoint.php à la racine du site, ouvrez-le et
renseignez la première ligne de réglage :
$PROJECT_ID = 'votre-projet';
Créez à côté un dossier medias/ accessible en écriture
(chmod 755, 775 si votre hébergeur l'exige).
Authorization, ce qui ferait échouer toute écriture avec une
erreur 401. Dans le doute, ajoutez au .htaccess :
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Cette page peut interroger Firebase avec les valeurs saisies plus haut, et vous dire ce qui manque encore.
https://ledomaine/ — le site s'affiche normalementhttps://ledomaine/?admin — l'écran de connexion apparaît,
le compte du client ouvre l'éditeur?admin : la modification est en ligne pour tout le mondeindex.html contient la modification
en clair dans le HTML, et un index.src.html
est apparu à côté : la copie du code d'origine, gardée comme référence| Symptôme | Cause la plus probable |
|---|---|
| « Connexion impossible » avec le bon mot de passe | domaine non autorisé dans Authentication ▸ Settings ▸ Authorized domains |
| « Ce compte n'a pas accès à ce site » | document sites/<siteId>/members/<UID> absent, ou role ≠ owner |
Missing or insufficient permissions | règles de sécurité non publiées (étape 3) |
Rien ne se passe avec ?admin | siteId ou projectId erroné — la console du navigateur le dit |
| « Le serveur a répondu 401 » à la publication | en-tête Authorization supprimé par Apache (étape 4) |
| « Écriture impossible » | droits du dossier : le site doit être inscriptible par PHP |
| Le téléversement d'une vidéo échoue | upload_max_filesize et post_max_size du php.ini, souvent à 2 Mo |
| L'historique reste vide | Firestore réclame un index : le lien pour le créer en un clic est dans la console du navigateur |
Le module trace ce qu'il fait quand debug: true : ouvrez la
console du navigateur, elle dit combien d'éléments ont été détectés et ce
qui a été appliqué.
Documentation complète : docs/INSTALLATION.md ·
docs/ARCHITECTURE.md