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

> Arranca Todomator a mano, con la imagen de Docker Hub o con Docker Compose, qué hace el primer arranque, la cuenta por defecto y cómo actualizar una base de datos existente.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: es
Content-SHA256: c62ef2acb4157af79dd2a77627f455d7ec66709e599c2f6deb840b7b48654621
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Todomator necesita la última versión de **Node.js** y una base de datos **PostgreSQL**. **No** ejecutes tú mismo `database.sql`: Todomator usa ese script internamente cuando arranca sobre una base de datos vacía.

## A mano

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

```bash
npm install
```

4. Define la conexión en el archivo `config`. Lee la variable de entorno `DATABASE` (línea `database (env) : DATABASE`) y tiene una línea `database : postgresql://total:platform@127.0.0.1:5432/todomator` como modelo. El mismo archivo tiene `$api : /api/` (la dirección de la API) y una línea `mail` con la configuración SMTP como objeto JSON.
5. Ejecútalo (el script `start` es `node index.js 8000`):

```bash
node index.js
```

6. Abre `http://127.0.0.1:8000`.

## Docker Hub

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

## Docker Compose

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

## El primer arranque

Si la tabla `tbl_ticket` no existe en el esquema `public`, Todomator ejecuta `database.sql` con un identificador generado, un secreto y el hash de la contraseña del primer usuario, y después carga la configuración y las etiquetas. Con la variable de entorno `DATABASE` (Docker) espera antes tres segundos. El script crea los estados, el primer usuario y la configuración. El servidor permanece 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
```

La cuenta se crea con el nombre John Connor y derechos de administrador (`sa`). **Cambia la contraseña** después de iniciar sesión y configura los [ajustes](/en/todomator/settings-and-database/).

## Actualizar

Para una instalación existente, el README remite a los scripts de actualización del repositorio en lugar de `database.sql`: `database_1-3.sql`, `database_1-4.sql`, `database_1-5.sql`, `database_1-6.sql` y `database-20240119.sql`. Aplica los que sean más nuevos que tu versión; el archivo `version` del repositorio lista lo que cambió cada versión (por ejemplo, la 1.7 añadió la autenticación de dos factores y mejoró la búsqueda y los plugins de informes, marcadores y usuarios).
