Installer le CMS de Total.js et se connecter la première fois
L’exécuter
Le CMS n’a besoin que de Node.js : ni base de données, ni service externe.
git clone https://github.com/totaljs/cms.git
cd cms
npm install
npm run startnpm run start exécute node index.js 8000 ; le port est facultatif et la valeur par défaut est 8000. Avec Docker :
docker pull totalplatform/cms
docker run -p 8000:8000 totalplatform/cmsLa première connexion
Au premier démarrage, le CMS crée son unique administrateur avec un identifiant et un mot de passe aléatoires. Ouvrez http://localhost:8000/admin/ : jusqu’à la première connexion réussie, la page les affiche dans un cadre avec un bouton qui remplit le formulaire. Ensuite, la copie en clair du mot de passe est supprimée des préférences et le cadre n’apparaît plus ; utilisez donc tout de suite le profil de l’admin pour définir votre propre identifiant et mot de passe, et faites la première connexion dès que vous démarrez une nouvelle installation.
Tant que vous n’avez pas créé la première page, l’adresse / redirige vers /admin/ tant que le mot de passe est encore celui qui a été généré ; dès qu’une page avec l’adresse / existe, / sert votre site.
Trois façons d’authentifier l’admin
L’admin vit sous l’adresse de la ligne $api : /admin/ du fichier config. La fonction AUTH de definitions/auth.js décide pour les requêtes de ce chemin :
| Mode | Quand | Comment |
|---|---|---|
| Session | par défaut | un cookie chiffré avec le salt du compte ; l’identifiant et le mot de passe sont vérifiés avec SHA-256 et ce sel |
| Jeton | la ligne token : <value> existe dans config | envoyez-le dans l’en-tête x-token : la requête s’exécute comme un utilisateur intégré appelé Bot, un administrateur (sa). Dix tentatives erronées bloquent l’adresse, et un mauvais jeton ne reçoit aucune réponse (la requête se termine par un timeout) |
| OpenPlatform | les réglages contiennent op_reqtoken et op_restoken | les personnes se connectent avec OpenPlatform et ses groupes décident des permissions pages, layouts, widgets, navigation, posts, files, redirects, variables, settings et admin |
Les pages publiques utilisent la fonction FUNC.auth si votre code la définit (voir pages, layouts et navigation) ; sans elle, tout visiteur est anonyme.
Où vivent les données
| Emplacement | Ce qu’il contient |
|---|---|
databases/config.json | valeurs générées de l’installation |
databases/memorize_account.json | l’administrateur : nom, identifiant, hachage du mot de passe, nom du cookie et sel |
databases/fs-db/ | le stockage de fichiers : les métadonnées du site (pages, layouts, widgets, navigation, redirections, variables, configuration) et le HTML de chaque page et layout, les fichiers envoyés et les articles |
Pour déplacer le site, copiez le dossier databases/ ou utilisez la sauvegarde de l’admin (l’API de l’admin).