# Instalar OpenPlatform con Node.js y PostgreSQL, Docker o Docker Compose

> Arranca OpenPlatform a mano, con la imagen de Docker Hub o con Docker Compose, qué ocurre en el primer arranque y qué configurar justo después de iniciar sesión.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: es
Content-SHA256: 7f1187ff277d7b6be5174dadc0b497a9f2c1f908ce13bb69f6a23dd219c13830
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

OpenPlatform necesita la última versión de **Node.js** y una base de datos **PostgreSQL**. Hay tres maneras de arrancarlo, todas tomadas del README del repositorio. **No** ejecutes tú mismo `database.sql`: OpenPlatform usa ese script internamente en el primer arranque.

## A mano

1. Instala Node.js y PostgreSQL y crea una base de datos vacía para OpenPlatform.
2. Descarga el [código fuente](https://github.com/totaljs/openplatform).
3. Instala las dependencias en la raíz de la aplicación:

```bash
npm install
```

4. Pon la cadena de conexión en el archivo `config` (el archivo tiene como modelo la línea `database : postgresql://user:pass@localhost:5432/database` y una línea `database (env) : DATABASE` que la lee de la variable de entorno `DATABASE`).
5. Arráncalo (el script `start` de `package.json` ejecuta `node index.js 8000`):

```bash
node index.js
```

6. Abre `http://127.0.0.1:8000` y, **antes que nada, abre los ajustes y configura la plataforma** (el README marca este paso como importante; los ajustes están en [ajustes y base de datos](/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
```

## Qué hace el primer arranque

Cuando la base de datos aún no tiene tablas de OpenPlatform (busca la tabla `cl_config` en el esquema `op`), la aplicación carga `database.sql`, sustituyendo sus marcadores por valores que genera: el identificador de la instalación, el nombre de la cookie, los secretos y sales, los tokens, y el primer usuario y grupo. Después carga la configuración e inicia la autenticación (`definitions/init.js`). Con la variable de entorno `DATABASE` (Docker) espera tres segundos antes, para que la base de datos pueda estar levantada. En ambos casos el servidor queda en pausa (`PAUSESERVER('Database')`) hasta que la base de datos está lista.

## El primer inicio de sesión

El README da la cuenta por defecto:

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

Inicia sesión, **cambia esa contraseña** (el portal tiene la acción de cuenta para ello) y configura los ajustes. Recuerda la regla del README: toda aplicación que añadas debe asignarse a un grupo, o nadie la ve ([grupos y permisos](/en/openplatform/groups-and-permissions/)).
