# Installazione passo passo

L’intera installazione la fa un solo comando, `./draften install`, eseguito nel
pacchetto scompattato. Ecco la procedura da un server vuoto al primo accesso.
Che cosa contiene un’installazione e dove si trova cosa è descritto in
[Installare sul tuo server](/it/admin/self-hosting).

## Passo 1: prepara il server

- x86-64 con Linux (va bene anche un Synology o un altro NAS con Docker),
- Docker Engine 24 o più recente con il plugin compose – verificalo con
  `docker compose version`,
- 4 GB di memoria e 20 GB di spazio su disco,
- gli strumenti `tar`, `base64` e `sha256sum` (o `shasum`), che ha quasi ogni
  sistema.

Per l’installazione il server non ha bisogno di internet: il pacchetto porta con
sé tutte le immagini.

## Passo 2: verifica che il pacchetto venga da noi

Per ogni pacchetto di release `draften-<version>.tar` pubblichiamo il suo
checksum. Calcolalo e confrontalo:

```
sha256sum draften-<version>.tar
```

Ogni aggiornamento successivo l’installazione lo verifica da sola con le nostre
chiavi. La prima installazione però non ha niente con cui confrontarsi – questa
è la sua verifica. Se i checksum non coincidono, non installare il pacchetto e
contattaci.

## Passo 3: scompatta il pacchetto ed esegui l’installer

Scegli la cartella in cui vivrà l’installazione, scompatta lì il pacchetto ed
esegui l’installer:

```
mkdir /srv/draften
tar -xf draften-<version>.tar -C /srv/draften
cd /srv/draften
./draften install
```

L’installer carica le immagini, verifica il pacchetto e chiede ciò che gli
serve.

## Passo 4: rispondi alle domande dell’installer

- **L’indirizzo** a cui le persone aprono draften, come
  `https://draften.firma.cz`. Deve essere l’indirizzo che usano davvero – da
  esso si costruiscono gli indirizzi di reindirizzamento per l’accesso con
  Microsoft e Google.
- **L’organizzazione** e il suo **nome breve** (lettere minuscole, cifre,
  trattini).
- **Il primo amministratore**: email, nome e lingua (`cs` o `en`). Diventa il
  proprietario dell’organizzazione e l’operatore dell’intera installazione.
- **L’updater** (sì / no) – un servizio che ti permette di aggiornare, cambiare
  il numero di processi e sostituire la chiave di cifratura dall’interfaccia
  web. Ha accesso a Docker, il che significa diritti di root su questa
  macchina. Senza updater, tutto funziona dalla riga di comando.
- **Il certificato HTTPS** – il file del certificato e la sua chiave (PEM), se
  l’HTTPS deve terminare direttamente in draften. Lascialo vuoto quando
  dell’HTTPS si occupa un reverse proxy o un tunnel davanti a draften (vedi il
  passo 7).

Ogni risposta si può dare anche direttamente nel comando, così puoi
automatizzare l’installazione con uno script; `./draften help` elenca le
opzioni. Per esempio:

```
./draften install --url https://draften.firma.cz --org "Firma S.r.l." \
  --admin-email jan@firma.cz --admin-name "Jan Novák" --locale cs --updater yes
```

## Passo 5: tieni una copia di `.env` fuori dal server

L’installer scrive le impostazioni e i segreti nel file `.env` nella cartella
dell’installazione. **Copialo – almeno il valore di `MASTER_KEY` – in un posto
sicuro fuori dal server.** Questa chiave cifra l’accesso alle caselle, le
chiavi dei modelli e le password per l’invio della posta. Senza di essa nessuno
può leggerli, nemmeno da un backup – e noi non la abbiamo.

## Passo 6: imposta la password e accedi

Alla fine l’installer stampa un link per impostare la password del primo
amministratore. Aprilo in un browser, imposta la password e hai già effettuato
l’accesso. Il link funziona una sola volta ed è valido per 7 giorni. Come
appare la pagina della password lo mostra la guida [Accedere](/it/signing-in).

!> Solo l’installer stampa il link. Non copiarlo da nessuna parte e non
mandarlo a nessuno – chi lo ha imposta la password dell’amministratore.

## Passo 7: pubblica l’indirizzo

A seconda di ciò che hai scelto al passo 4:

- **Con un certificato**, draften stesso ascolta sulla porta 443 e reindirizza
  dalla porta 80 all’HTTPS. Basta che nel DNS l’indirizzo porti a questo
  server.
- **Senza certificato**, draften ascolta su `127.0.0.1:8085` e l’HTTPS lo
  termina il tuo reverse proxy o tunnel davanti a esso. Quando il proxy gira su
  un’altra macchina, imposta `WEB_BIND=0.0.0.0:8085` in `.env`.
- **Con un Cloudflare Tunnel** non serve nessuna porta aperta: metti il token
  del tunnel in `.env` (`CLOUDFLARE_TUNNEL_TOKEN`), aggiungi `tunnel` a
  `COMPOSE_PROFILES` (per esempio `COMPOSE_PROFILES=updater,tunnel`) ed esegui
  `docker compose up -d`. In Cloudflare, fai puntare il tunnel a
  `http://127.0.0.1:8085`.

Un certificato si può aggiungere anche in seguito:

```
./draften certificate cert.pem key.pem --url https://draften.firma.cz
```

## Passo 8: carica la licenza

Ti inviamo la licenza come file `licence-<number>.json`. Nell’interfaccia apri
**Installazione → Installazione**, scegli il file nel riquadro **Licenza** in
fondo e caricalo. Finché l’installazione non ha una licenza, gli assistenti non
elaborano posta e non si possono creare caselle né assistenti. Di più in
[La licenza](/it/admin/licence).

## Passo 9: imposta le chiavi predefinite e l’invio della posta

Nella stessa pagina **Installazione**, imposta le **Chiavi API predefinite**
per i modelli e l’**Invio della posta predefinito** (da dove partono gli inviti
e i link per la password). Valgono per ogni organizzazione che non imposta i
propri. Dettagli: [Chiavi API dei modelli](/it/admin/api-keys) e
[Invio della posta](/it/admin/outgoing-mail).

## Passo 10: collega una casella e configura un assistente

Da qui prosegui come in qualsiasi altra installazione:

1. [Aggiungere e collegare una casella](/it/admin/adding-a-mailbox).
2. [Configura un assistente con la procedura guidata](/it/new-assistant).
3. Invita altre persone – [Persone e ruoli](/it/admin/people-and-roles).

## Passo 11: verifica che tutto funzioni

```
./draften status
```

stampa la versione, lo stato di salute del web e dei worker, lo stato
dell’HTTPS e i dump del database. Nell’interfaccia, la pagina **Gestione**
mostra se i worker si fanno vivi – vedi
[Gestione e capacità](/it/admin/operations).

## Passo 12: occupati dei backup

Con l’updater il database si salva da solo, ogni giorno alle 01:00, nella
cartella `backups/` della cartella dell’installazione; l’ora la cambi in
**Installazione → Installazione**, nel riquadro **Backup del database**. Senza
l’updater, esegui `./draften backup` da cron. I backup però stanno sullo stesso
disco del database: **imposta la copia di `backups/` e di `.env` fuori dal
server.** Dettagli: [Backup e ripristino](/it/admin/backup-and-restore).

## Prossimi passi

- [Aggiornare con l’updater](/it/admin/updating-with-the-updater) – una nuova
  versione con un solo pulsante,
- [Aggiornare dalla riga di comando](/it/admin/updating),
- [Backup e ripristino](/it/admin/backup-and-restore),
- [Risoluzione dei problemi](/it/admin/troubleshooting).
