# Instalacja OpenPlatform z Node.js i PostgreSQL, Dockerem lub Docker Compose

> Uruchom OpenPlatform ręcznie, z obrazem z Docker Hub lub z Docker Compose, co dzieje się przy pierwszym uruchomieniu i co skonfigurować zaraz po zalogowaniu.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: pl
Content-SHA256: fe98a9d1961129964f6f4b3f7ffe05f1bec0bd8f3f6b5c59e265a594268dc03f
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

OpenPlatform potrzebuje najnowszego **Node.js** i bazy danych **PostgreSQL**. Są trzy sposoby uruchomienia, wszystkie z README repozytorium. **Nie** uruchamiaj samodzielnie `database.sql`: OpenPlatform używa tego skryptu wewnętrznie przy pierwszym uruchomieniu.

## Ręcznie

1. Zainstaluj Node.js i PostgreSQL i utwórz pustą bazę danych dla OpenPlatform.
2. Pobierz [kod źródłowy](https://github.com/totaljs/openplatform).
3. Zainstaluj zależności w katalogu głównym aplikacji:

```bash
npm install
```

4. Wpisz ciąg połączenia do pliku `config` (plik ma jako wzór wiersz `database : postgresql://user:pass@localhost:5432/database` oraz wiersz `database (env) : DATABASE`, który odczytuje go ze zmiennej środowiskowej `DATABASE`).
5. Uruchom go (skrypt `start` w `package.json` uruchamia `node index.js 8000`):

```bash
node index.js
```

6. Otwórz `http://127.0.0.1:8000` i **przede wszystkim otwórz ustawienia i skonfiguruj platformę** (README oznacza ten krok jako ważny; ustawienia opisano w [ustawieniach i bazie danych](/en/openplatform/settings-and-database/)).

## Docker Hub

```bash
docker pull totalplatform/openplatform
docker run --env DATABASE='postgresql://user:pass@hostname/database' -p 8000:8000 totalplatform/openplatform
```

## Docker Compose

```bash
git clone https://github.com/totaljs/openplatform.git
cd openplatform
docker compose up
```

## Co robi pierwsze uruchomienie

Gdy baza danych nie ma jeszcze tabel OpenPlatform (szuka tabeli `cl_config` w schemacie `op`), aplikacja ładuje `database.sql`, zastępując jego symbole zastępcze wartościami, które generuje: identyfikatorem instalacji, nazwą cookie, sekretami i solami, tokenami oraz pierwszym użytkownikiem i grupą. Następnie ładuje konfigurację i uruchamia uwierzytelnianie (`definitions/init.js`). Przy zmiennej środowiskowej `DATABASE` (Docker) czeka przedtem trzy sekundy, aby baza danych mogła się uruchomić. W obu przypadkach serwer jest wstrzymany (`PAUSESERVER('Database')`), dopóki baza danych nie będzie gotowa.

## Pierwsze logowanie

README podaje domyślne konto:

```text
login : info@totaljs.com
password : admin
```

Zaloguj się, **zmień to hasło** (portal ma do tego akcję konta) i skonfiguruj ustawienia. Pamiętaj o regule z README: każda dodana aplikacja musi być przypisana do grupy, inaczej nikt jej nie widzi ([grupy i uprawnienia](/en/openplatform/groups-and-permissions/)).
