netgescon-day0/docs/000-FILAMENT/07-DISTRIBUZIONE-UPDATE.md

2.6 KiB
Raw Blame History

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 Lets 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