# Installera Total.js CMS och logga in första gången

> Kör CMS med Node.js eller Docker på port 8000, logga in med det login och lösenord som genereras vid första starten, lär dig de tre sätten att autentisera administrationen och var webbplatsens data finns.

Framework: cms
Product: CMS (cms@8071e48)
Language: sv
Content-SHA256: 5607c4e88712873b93d45cef29564f94b5ed2d1c692b8b0049cdfbe96fe13193
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Köra det

CMS behöver bara Node.js: ingen databas, ingen extern tjänst.

```bash
git clone https://github.com/totaljs/cms.git
cd cms
npm install
npm run start
```

`npm run start` kör `node index.js 8000`; porten är valfri och standard är `8000`. Med Docker:

```bash
docker pull totalplatform/cms
docker run -p 8000:8000 totalplatform/cms
```

## Den första inloggningen

Vid första starten skapar CMS sin enda administratör med ett **slumpmässigt login och lösenord**. Öppna `http://localhost:8000/admin/`: fram till den första lyckade inloggningen visar sidan dem i en ruta med en knapp som fyller i formuläret. Därefter raderas klartextkopian av lösenordet ur inställningarna och rutan visas inte längre, så använd direkt administratörens profil för att ange ett eget login och lösenord, och gör den första inloggningen så fort du startar en ny installation.

Tills du skapar den första sidan omdirigerar adressen `/` till `/admin/` så länge lösenordet fortfarande är det genererade; när det finns en sida med adressen `/` serverar `/` din webbplats.

## Tre sätt att autentisera administrationen

Administrationen finns under adressen på raden `$api : /admin/` i filen `config`. Funktionen `AUTH` i `definitions/auth.js` avgör för begäranden till den sökvägen:

| Läge | När | Hur |
|---|---|---|
| Session | standard | en cookie krypterad med kontots `salt`; login och lösenord kontrolleras med SHA-256 och det saltet |
| Token | raden `token : <value>` finns i `config` | skicka den i headern `x-token`: begäran körs som en inbyggd användare som heter *Bot*, en administratör (`sa`). Tio felaktiga försök blockerar adressen, och en felaktig token får inget svar alls (begäran slutar med timeout) |
| OpenPlatform | inställningarna innehåller `op_reqtoken` och `op_restoken` | folk loggar in med [OpenPlatform](/en/openplatform/how-an-app-connects/) och dess grupper avgör behörigheterna `pages`, `layouts`, `widgets`, `navigation`, `posts`, `files`, `redirects`, `variables`, `settings` och `admin` |

De publika sidorna använder funktionen `FUNC.auth` om din kod definierar den (se [sidor, layouter och navigation](/en/cms/pages-layouts-and-navigation/)); utan den är varje besökare anonym.

## Var data finns

| Plats | Vad den innehåller |
|---|---|
| `databases/config.json` | genererade värden för installationen |
| `databases/memorize_account.json` | administratören: namn, login, lösenordshash, cookiens namn och salt |
| `databases/fs-db/` | fillagret: webbplatsens metadata (sidor, layouter, widgetar, navigation, omdirigeringar, variabler, konfiguration) och HTML för varje sida och layout, uppladdade filer och inlägg |

För att flytta webbplatsen kopierar du mappen `databases/` eller använder administrationens säkerhetskopia ([administrations-API:et](/en/cms/the-admin-api/)).
