# Installare Todomator con Node.js e PostgreSQL, Docker o Docker Compose

> Avvia Todomator a mano, con l’immagine di Docker Hub o con Docker Compose, cosa fa il primo avvio, l’account predefinito e come aggiornare un database esistente.

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

Todomator richiede l’ultima versione di **Node.js** e un database **PostgreSQL**. **Non** eseguire tu stesso `database.sql`: Todomator usa quello script internamente quando parte su un database vuoto.

## A mano

1. Installa Node.js e PostgreSQL e crea un database per Todomator.
2. Scarica il [codice sorgente](https://github.com/totaljs/todomator).
3. Installa le dipendenze nella radice dell’applicazione:

```bash
npm install
```

4. Imposta la connessione nel file `config`. Legge la variabile d’ambiente `DATABASE` (riga `database (env) : DATABASE`) e ha una riga `database : postgresql://total:platform@127.0.0.1:5432/todomator` come modello. Lo stesso file ha `$api : /api/` (l’indirizzo dell’API) e una riga `mail` con le impostazioni SMTP come oggetto JSON.
5. Eseguilo (lo script `start` è `node index.js 8000`):

```bash
node index.js
```

6. Apri `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
```

## Il primo avvio

Se la tabella `tbl_ticket` non esiste nello schema `public`, Todomator esegue `database.sql` con un identificativo generato, un segreto e l’hash della password del primo utente, poi carica la configurazione e i tag. Con la variabile d’ambiente `DATABASE` (Docker) attende prima tre secondi. Lo script crea gli stati, il primo utente e la configurazione. Il server resta in pausa (`PAUSESERVER('Database')`) finché il database non è pronto.

## Il primo accesso

Il README indica l’account predefinito:

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

L’account è creato con il nome John Connor e diritti di amministratore (`sa`). **Cambia la password** dopo l’accesso e configura le [impostazioni](/en/todomator/settings-and-database/).

## Aggiornamento

Per un’installazione esistente il README rimanda agli script di aggiornamento del repository invece di `database.sql`: `database_1-3.sql`, `database_1-4.sql`, `database_1-5.sql`, `database_1-6.sql` e `database-20240119.sql`. Applica quelli più recenti della tua versione; il file `version` del repository elenca ciò che ogni rilascio ha cambiato (per esempio la versione 1.7 ha aggiunto l’autenticazione a due fattori e migliorato la ricerca e i plugin di report, segnalibri e utenti).
