Instalar el CMS de Total.js e iniciar sesión por primera vez
Ejecutarlo
El CMS solo necesita Node.js: ni base de datos ni servicio externo.
git clone https://github.com/totaljs/cms.git
cd cms
npm install
npm run startnpm run start ejecuta node index.js 8000; el puerto es opcional y el valor por defecto es 8000. Con Docker:
docker pull totalplatform/cms
docker run -p 8000:8000 totalplatform/cmsEl primer inicio de sesión
En el primer arranque el CMS crea a su único administrador con un login y una contraseña aleatorios. Abre http://localhost:8000/admin/: hasta el primer inicio de sesión correcto la página los muestra en un cuadro con un botón que rellena el formulario. Después se borra de las preferencias la copia en claro de la contraseña y el cuadro deja de aparecer, así que usa enseguida el perfil del admin para definir un login y una contraseña propios, y haz el primer inicio de sesión en cuanto arranques una instalación nueva.
Hasta que crees la primera página, la dirección / redirige a /admin/ mientras la contraseña siga siendo la generada; cuando existe una página con la dirección /, / sirve tu sitio.
Tres formas de autenticar el admin
El admin vive bajo la dirección de la línea $api : /admin/ del archivo config. La función AUTH de definitions/auth.js decide para las peticiones de esa ruta:
| Modo | Cuándo | Cómo |
|---|---|---|
| Sesión | es el modo por defecto | una cookie cifrada con la salt de la cuenta; el login y la contraseña se comprueban con SHA-256 y esa sal |
| Token | existe la línea token : <value> en config | envíalo en la cabecera x-token: la petición se ejecuta como un usuario integrado llamado Bot, un administrador (sa). Diez intentos erróneos bloquean la dirección, y un token incorrecto no recibe respuesta alguna (la petición acaba en timeout) |
| OpenPlatform | los ajustes contienen op_reqtoken y op_restoken | las personas inician sesión con OpenPlatform y sus grupos deciden los permisos pages, layouts, widgets, navigation, posts, files, redirects, variables, settings y admin |
Las páginas públicas usan la función FUNC.auth si tu código la define (consulta páginas, layouts y navegación); sin ella todos los visitantes son anónimos.
Dónde viven los datos
| Lugar | Qué contiene |
|---|---|
databases/config.json | valores generados de la instalación |
databases/memorize_account.json | el administrador: nombre, login, hash de la contraseña, nombre de la cookie y sal |
databases/fs-db/ | el almacén de archivos: los metadatos del sitio (páginas, layouts, widgets, navegación, redirecciones, variables, configuración) y el HTML de cada página y layout, los archivos subidos y los posts |
Para mover el sitio, copia la carpeta databases/ o usa la copia de seguridad del admin (la API del admin).