# Инсталиране на CMS на Total.js и първо влизане

> Стартирайте CMS с Node.js или Docker на порт 8000, влезте с потребителското име и паролата, които генерира при първото стартиране, научете трите начина за удостоверяване на администрацията и къде са данните на сайта.

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

## Стартиране

CMS се нуждае само от Node.js: без база данни и без външна услуга.

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

`npm run start` изпълнява `node index.js 8000`; портът е по избор, а по подразбиране е `8000`. С Docker:

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

## Първото влизане

При първото стартиране CMS създава единствения си администратор със **случайно потребителско име и парола**. Отворете `http://localhost:8000/admin/`: до първото успешно влизане страницата ги показва в поле с бутон, който попълва формата. След това нешифрираното копие на паролата се изтрива от предпочитанията и полето вече не се появява, затова веднага използвайте профила на администратора, за да зададете собствено потребителско име и парола, и направете първото влизане щом стартирате нова инсталация.

Докато не създадете първата страница, адресът `/` пренасочва към `/admin/`, докато паролата е още генерираната; когато съществува страница с адрес `/`, `/` сервира вашия сайт.

## Три начина за удостоверяване на администрацията

Администрацията живее под адреса от реда `$api : /admin/` във файла `config`. Функцията `AUTH` в `definitions/auth.js` решава за заявките към този път:

| Режим | Кога | Как |
|---|---|---|
| Сесия | по подразбиране | бисквитка, шифрована със `salt` на акаунта; потребителското име и паролата се проверяват със SHA-256 и тази сол |
| Токен | редът `token : <value>` съществува в `config` | изпратете го в заглавката `x-token`: заявката се изпълнява като вграден потребител на име *Bot*, администратор (`sa`). Десет грешни опита блокират адреса, а грешен токен не получава никакъв отговор (заявката завършва с timeout) |
| OpenPlatform | настройките съдържат `op_reqtoken` и `op_restoken` | хората влизат с [OpenPlatform](/en/openplatform/how-an-app-connects/), а неговите групи определят правата `pages`, `layouts`, `widgets`, `navigation`, `posts`, `files`, `redirects`, `variables`, `settings` и `admin` |

Публичните страници използват функцията `FUNC.auth`, ако вашият код я дефинира (вижте [страници, шаблони и навигация](/en/cms/pages-layouts-and-navigation/)); без нея всеки посетител е анонимен.

## Къде са данните

| Място | Какво съдържа |
|---|---|
| `databases/config.json` | генерирани стойности на инсталацията |
| `databases/memorize_account.json` | администраторът: име, потребителско име, хеш на паролата, име на бисквитката и сол |
| `databases/fs-db/` | файловото хранилище: метаданните на сайта (страници, шаблони, уиджети, навигация, пренасочвания, променливи, конфигурация) и HTML на всяка страница и шаблон, качените файлове и публикациите |

За да преместите сайта, копирайте папката `databases/` или използвайте резервното копие на администрацията ([API на администрацията](/en/cms/the-admin-api/)).
