# Instalar o OpenPlatform com Node.js e PostgreSQL, Docker ou Docker Compose

> Inicie o OpenPlatform à mão, com a imagem do Docker Hub ou com o Docker Compose, o que acontece no primeiro arranque e o que configurar logo após iniciar sessão.

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

O OpenPlatform precisa da última versão do **Node.js** e de uma base de dados **PostgreSQL**. Há três formas de o iniciar, todas do README do repositório. **Não** execute você mesmo o `database.sql`: o OpenPlatform usa esse script internamente no primeiro arranque.

## À mão

1. Instale o Node.js e o PostgreSQL e crie uma base de dados vazia para o OpenPlatform.
2. Descarregue o [código-fonte](https://github.com/totaljs/openplatform).
3. Instale as dependências na raiz da aplicação:

```bash
npm install
```

4. Ponha a cadeia de ligação no ficheiro `config` (o ficheiro tem como modelo a linha `database : postgresql://user:pass@localhost:5432/database` e uma linha `database (env) : DATABASE` que a lê da variável de ambiente `DATABASE`).
5. Inicie-o (o script `start` de `package.json` executa `node index.js 8000`):

```bash
node index.js
```

6. Abra `http://127.0.0.1:8000` e, **antes de mais nada, abra as definições e configure a plataforma** (o README marca este passo como importante; as definições estão em [definições e base de dados](/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
```

## O que faz o primeiro arranque

Quando a base de dados ainda não tem tabelas do OpenPlatform (procura a tabela `cl_config` no esquema `op`), a aplicação carrega o `database.sql`, substituindo os seus marcadores por valores que gera: o identificador da instalação, o nome do cookie, os segredos e sais, os tokens, e o primeiro utilizador e grupo. Depois carrega a configuração e inicia a autenticação (`definitions/init.js`). Com a variável de ambiente `DATABASE` (Docker) espera três segundos antes, para que a base de dados possa estar de pé. Em ambos os casos o servidor fica em pausa (`PAUSESERVER('Database')`) até a base de dados estar pronta.

## O primeiro início de sessão

O README dá a conta predefinida:

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

Inicie sessão, **mude essa palavra-passe** (o portal tem a ação de conta para isso) e configure as definições. Lembre-se da regra do README: toda a aplicação que adicionar tem de ser atribuída a um grupo, ou ninguém a vê ([grupos e permissões](/en/openplatform/groups-and-permissions/)).
