101 lines
2.5 KiB
Markdown
101 lines
2.5 KiB
Markdown
# Nexterm con Docker Compose
|
|
|
|
Questa cartella contiene una configurazione Docker Compose parametrizzata tramite file `.env`.
|
|
|
|
## Requisiti
|
|
|
|
- Docker Desktop (o Docker Engine)
|
|
- Docker Compose v2 (`docker compose`)
|
|
|
|
## File inclusi
|
|
|
|
- `docker-compose.yml`: configurazione del servizio
|
|
- `.env`: variabili di configurazione del deploy
|
|
|
|
## Configurazione
|
|
|
|
Modifica il file `.env` in base alle tue esigenze.
|
|
|
|
Variabili principali:
|
|
|
|
- `IMAGE`: immagine Docker da usare
|
|
- `CONTAINER_NAME`: nome del container nexterm
|
|
- `RESTART_POLICY`: policy di riavvio (condivisa da tutti i servizi)
|
|
- `PORT`: porta esposta sull'host
|
|
- `DATA_DIR`: directory dati persistenti
|
|
- `TZ`: timezone condivisa da tutti i servizi
|
|
- `ENCRYPTION_KEY`: chiave di cifratura obbligatoria per Nexterm
|
|
|
|
> `ENCRYPTION_KEY` deve essere una stringa esadecimale di **64 caratteri**.
|
|
|
|
Variabili Watchtower:
|
|
|
|
- `WATCHTOWER_IMAGE`: immagine Docker da usare (default: `containrrr/watchtower:latest`)
|
|
- `WATCHTOWER_CONTAINER_NAME`: nome del container Watchtower
|
|
- `WATCHTOWER_CLEANUP`: rimuove le vecchie immagini dopo l'aggiornamento (`true`/`false`)
|
|
- `WATCHTOWER_SCHEDULE`: schedule cron a 6 campi per il controllo aggiornamenti (default: ogni giorno alle 03:00)
|
|
- `WATCHTOWER_NOTIFICATIONS_LEVEL`: livello di log (`warn` consigliato)
|
|
|
|
Esempio rapido (PowerShell):
|
|
|
|
```powershell
|
|
$bytes = New-Object byte[] 32
|
|
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes)
|
|
($bytes | ForEach-Object { $_.ToString('x2') }) -join ''
|
|
```
|
|
|
|
Esempio rapido (Linux/macOS):
|
|
|
|
```bash
|
|
openssl rand -hex 32
|
|
```
|
|
|
|
## Avvio rapido con Make
|
|
|
|
```bash
|
|
make genkey # genera e scrive ENCRYPTION_KEY nel .env
|
|
make check # verifica prerequisiti e configurazione
|
|
make up # avvia i container
|
|
```
|
|
|
|
Altri comandi disponibili:
|
|
|
|
```bash
|
|
make logs # segue i log di nexterm
|
|
make ps # stato dei container
|
|
make update # aggiorna le immagini e ricrea i container
|
|
make down # ferma e rimuove i container
|
|
make help # lista completa dei comandi
|
|
```
|
|
|
|
## Avvio manuale
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
## Verifica
|
|
|
|
```bash
|
|
docker compose ps
|
|
docker compose logs -f nexterm
|
|
```
|
|
|
|
Apri poi il browser su:
|
|
|
|
- `http://localhost:${PORT}`
|
|
|
|
## Stop e rimozione
|
|
|
|
```bash
|
|
docker compose down
|
|
```
|
|
|
|
> I dati restano nel percorso indicato in `NEXTERM_DATA_DIR`.
|
|
|
|
## Migliorie applicate
|
|
|
|
- Parametrizzazione completa del servizio tramite `.env`
|
|
- Default sicuri nel `docker-compose.yml` usando `${VAR:-default}`
|
|
- Separazione chiara tra configurazione ( `.env` ) e orchestrazione (`docker-compose.yml`)
|