# Instalace Flow a první přihlášení

> Spusťte Flow přes Node.js nebo Docker, otevřete jej na portu 8000, přihlaste se loginem a heslem, které Flow vygeneruje při prvním spuštění, a zjistěte, ve kterých složkách jsou vaše data.

Framework: flow
Product: Flow (flow@11.1)
Language: cs
Content-SHA256: f039903459f5cd4bb984b29c54e4a62aa569fe83549761427ca59d9d3d0c6359
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Spuštění přes Node.js

Flow potřebuje jen Node.js: žádnou databázi ani externí službu.

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

`npm run start` spustí `node index.js 8000`. Port je v příkazové řádce volitelný a výchozí je `8000`, takže otevřete `http://localhost:8000`. Přidáním `--release` jej spustíte v režimu release.

## Spuštění přes Docker

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

`docker-compose.yaml` v repozitáři mapuje port 8000 a udržuje dva svazky: složku `databases` (nastavení a uživatel) a složku `flowstream` (vaše toky). Ponechte tyto dva svazky a kontejner můžete při každé aktualizaci vyměnit.

## První přihlášení

Při prvním spuštění Flow vytvoří jediného uživatele aplikace s **náhodným loginem a náhodným heslem**. Dokud se poprvé úspěšně nepřihlásíte, přihlašovací stránka je zobrazuje v rámečku (*Default account*) s tlačítkem **Fill in the form**: klikněte na něj a přihlaste se. Od té chvíle Flow smaže z preferencí čistou kopii hesla a rámeček se přestane zobrazovat, proto hned otevřete formulář hesla v aplikaci a nastavte si vlastní login a heslo. První přihlášení proveďte hned po spuštění nové instalace, dříve než se k adrese dostane někdo jiný.

Několik podrobností přihlášení, přečtených ze zdrojového kódu:

- Heslo se ukládá jako hash SHA-256 s `cookie_secret` instalace jako solí a relace je cookie na jeden měsíc zašifrované stejným tajemstvím. Flow vygeneruje název cookie a tajemství poprvé a uloží je do `databases/config.json`.
- Po opakovaných neúspěšných pokusech se adresa zablokuje (blokace se maže každých 15 minut).
- Když nastavení obsahuje tokeny OpenPlatform (`op_reqtoken`, `op_restoken`), přihlašovací stránka se nahradí přihlášením do tohoto [OpenPlatform](/en/openplatform/how-an-app-connects/) a oprávnění *Create Flows* a *Remove Flows* řídí, kdo smí toky vytvářet a odstraňovat.

## Kde jsou data

| Složka | Co obsahuje |
|---|---|
| `databases/` | `config.json` (název a tajemství cookie) a `memorize_preferences.json` (název, tokeny, uživatel, `env`, adresy komponent) |
| `flowstream/` | `database.json` s každým FlowStreamem: jeho návrh, komponenty, proměnné a poznámky |
| `private/` | soubory, které toky zapisují a které můžete vypsat tokenem Flow |
| `public/cdn/` | mezipaměť komponent uživatelského rozhraní, které Flow stáhne při první potřebě |

Chcete-li Flow přesunout na jiný počítač, zkopírujte `databases/` a `flowstream/`.

## Aktualizace

Stáhněte novou verzi repozitáře (soubor `version` říká, kterou spouštíte: `11.1` v zde dokumentované revizi) nebo stáhněte nový obraz Docker a spusťte jej se stejnými svazky.
