# Εγκατάσταση του CMS του Total.js και πρώτη σύνδεση

> Εκτελέστε το CMS με Node.js ή Docker στη θύρα 8000, συνδεθείτε με το login και τον κωδικό που δημιουργεί στην πρώτη εκκίνηση, μάθετε τους τρεις τρόπους ταυτοποίησης της διαχείρισης και πού βρίσκονται τα δεδομένα του ιστότοπου.

Framework: cms
Product: CMS (cms@8071e48)
Language: el
Content-SHA256: d2d4074e7e32d2ec4d9744131aec3bf4fda5a27a81575c5a28cb768b072ef1ad
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 δημιουργεί τον μοναδικό διαχειριστή του με **τυχαίο login και κωδικό**. Ανοίξτε το `http://localhost:8000/admin/`: μέχρι την πρώτη επιτυχή σύνδεση η σελίδα τα εμφανίζει σε ένα πλαίσιο με ένα κουμπί που συμπληρώνει τη φόρμα. Μετά το αντίγραφο του κωδικού σε απλό κείμενο διαγράφεται από τις προτιμήσεις και το πλαίσιο δεν εμφανίζεται πια, γι’ αυτό χρησιμοποιήστε αμέσως το προφίλ του διαχειριστή για να ορίσετε δικό σας login και κωδικό και κάντε την πρώτη σύνδεση μόλις ξεκινήσετε μια νέα εγκατάσταση.

Μέχρι να δημιουργήσετε την πρώτη σελίδα, η διεύθυνση `/` ανακατευθύνει στο `/admin/` όσο ο κωδικός είναι ακόμη ο παραγόμενος· όταν υπάρχει σελίδα με διεύθυνση `/`, το `/` σερβίρει τον ιστότοπό σας.

## Τρεις τρόποι ταυτοποίησης της διαχείρισης

Η διαχείριση ζει κάτω από τη διεύθυνση της γραμμής `$api : /admin/` του αρχείου `config`. Η συνάρτηση `AUTH` του `definitions/auth.js` αποφασίζει για τα αιτήματα αυτής της διαδρομής:

| Τρόπος | Πότε | Πώς |
|---|---|---|
| Συνεδρία | η προεπιλογή | ένα cookie κρυπτογραφημένο με το `salt` του λογαριασμού· το login και ο κωδικός ελέγχονται με SHA-256 και αυτό το salt |
| Token | η γραμμή `token : <value>` υπάρχει στο `config` | στείλτε το στην κεφαλίδα `x-token`: το αίτημα εκτελείται ως ένας ενσωματωμένος χρήστης με όνομα *Bot*, διαχειριστής (`sa`). Δέκα λάθος προσπάθειες μπλοκάρουν τη διεύθυνση και ένα λάθος token δεν παίρνει καθόλου απάντηση (το αίτημα τελειώνει με 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` | ο διαχειριστής: όνομα, login, hash κωδικού, όνομα cookie και salt |
| `databases/fs-db/` | ο χώρος αρχείων: τα μεταδεδομένα του ιστότοπου (σελίδες, διατάξεις, widgets, πλοήγηση, ανακατευθύνσεις, μεταβλητές, διαμόρφωση) και το HTML κάθε σελίδας και διάταξης, τα αρχεία που μεταφορτώθηκαν και οι αναρτήσεις |

Για να μεταφέρετε τον ιστότοπο, αντιγράψτε τον φάκελο `databases/` ή χρησιμοποιήστε το αντίγραφο ασφαλείας της διαχείρισης ([το API διαχείρισης](/en/cms/the-admin-api/)).
