99 lines
2.6 KiB
Markdown
99 lines
2.6 KiB
Markdown
# Distribuzione e aggiornamenti (Open Source)
|
||
|
||
## Obiettivo
|
||
Linee guida per pubblicare NetGescon e distribuire aggiornamenti, con focus su Docker.
|
||
|
||
## Specifiche demo online
|
||
- Dominio: `demo.netgescon.it` (o `.org`)
|
||
- TLS: certificato Let’s Encrypt
|
||
- Server consigliato: 2 vCPU / 4 GB RAM / 40+ GB SSD
|
||
- Porta HTTP: 80 → Nginx
|
||
- Porta HTTPS: 443 → Nginx
|
||
- Stack: Docker Engine + Docker Compose
|
||
|
||
## Setup online (end-to-end)
|
||
- Guida completa: `docs/000-FILAMENT/10-ONLINE-SETUP.md`
|
||
- Compose online (Traefik + app): `docker/docker-compose.online.yml`
|
||
- Env online: `.env.online.example`
|
||
|
||
## Opzione consigliata: Docker + Versioning
|
||
### Struttura immagini
|
||
- `netgescon/app` → PHP + Laravel + Filament
|
||
- `netgescon/nginx` → Nginx
|
||
- `netgescon/mysql` → DB (opzionale per demo)
|
||
|
||
### Versionamento
|
||
- Tag immagine: `vX.Y.Z`
|
||
- `latest` solo per preview
|
||
- Release notes su GitHub
|
||
|
||
### Aggiornamento
|
||
- Pull nuova immagine
|
||
- `php artisan migrate --force`
|
||
- `php artisan optimize:clear`
|
||
|
||
## Docker (distribuzione pronta)
|
||
- Dockerfile: `docker/Dockerfile.prod`
|
||
- Compose: `docker/docker-compose.prod.yml`
|
||
- Compose demo: `docker/docker-compose.demo.yml`
|
||
- Nginx: `docker/nginx/default.conf`
|
||
- Init DB staging: `docker/mysql/init.sql`
|
||
|
||
### Installazione base
|
||
1. Configura file `.env` per DB e APP_URL.
|
||
2. Avvia:
|
||
- `docker compose -f docker/docker-compose.prod.yml up -d`
|
||
|
||
### DNS (esempio)
|
||
- `A` record → IP del server
|
||
- `CNAME` (opzionale) → `demo` → root
|
||
|
||
### TLS (Nginx esterno)
|
||
- Termina TLS su reverse proxy (Nginx/Traefik) davanti al container
|
||
- Forward verso `http://127.0.0.1:8080`
|
||
|
||
### Demo online
|
||
- Avvio demo: `scripts/deploy-demo.sh`
|
||
- Compose demo: `docker/docker-compose.demo.yml`
|
||
|
||
### Aggiornamento autonomo
|
||
- Script: `scripts/update-docker.sh`
|
||
- Azioni: pull immagine → restart → migrate → clear cache
|
||
|
||
## Database e dati
|
||
- Volume persistente per DB
|
||
- Volume persistente per storage
|
||
- Backup obbligatorio prima di update
|
||
|
||
## Strategie aggiornamento
|
||
1) **Rolling update** (prod)
|
||
2) **Blue/Green** (consigliata per installazioni grandi)
|
||
|
||
## Distribuzione archivi legacy
|
||
- Non includere in immagini
|
||
- Montare `/mnt/gescon-archives/gescon` come volume read-only
|
||
|
||
## Checklist update
|
||
- backup DB
|
||
- backup storage
|
||
- pull immagine
|
||
- migrate
|
||
- clear cache
|
||
- health check
|
||
|
||
## Note d'aggiornamento
|
||
- File: `CHANGELOG.md`
|
||
- Versione: `VERSION`
|
||
|
||
## Materiale Open Source minimo
|
||
- `README.md` con setup e run
|
||
- `CONTRIBUTING.md` con workflow PR e standard
|
||
- `CHANGELOG.md`
|
||
- `LICENSE`
|
||
- Documentazione in `docs/` aggiornata
|
||
|
||
## Note sicurezza
|
||
- Non pubblicare credenziali
|
||
- Configurare `.env` esterno
|
||
- Permessi minimi sui volumi
|