netgescon-day0/docs/support/OPERATORE-200-KB-PRODUZIONE-DEMO.md

6.2 KiB
Executable File

Operatore .200 -> KB .53 -> Produzione/Demo

Documento operativo unico per la macchina .200 usata da sviluppo e test.

Ruoli macchina

  • .200 resta postazione di sviluppo e test: Laravel locale su :8000, staging locale su :80/:443.
  • 192.168.0.157 (svr-netgescon) ospita la produzione Docker multisito: www.netgescon.it, app.netgescon.it, demo.netgescon.it.
  • 192.168.0.53 ospita KB centrale e Gitea.

Regola fissa: gli aggiornamenti dei nodi remoti devono partire dall'interfaccia web Supporto > Aggiornamento Nodo, non da shell manuale sul nodo applicativo.

Stato macchina operatore verificato

Verificato su .200 il 2026-05-18:

  • VS Code presente: code 1.119.0
  • sshfs presente
  • Git presente
  • chiave SSH macchina presente: ~/.ssh/id_ed25519_netgescon_machine
  • accesso SSH a .53 funzionante
  • orchestrator locale installato in ~/netgescon-orchestrator/.venv

Bootstrap locale per KB e share LAN

Script operativo:

  • scripts/ops/netgescon-client-kb-bootstrap.sh

Comando standard:

bash scripts/ops/netgescon-client-kb-bootstrap.sh --install-orchestrator

Cosa prepara:

  • mount SSHFS da .53 in ~/mnt/netgescon-ssh
  • link workspace in ~/netgescon-sshfs-workspace
  • orchestrator locale in ~/netgescon-orchestrator/.venv
  • check health del KB su http://192.168.0.53:3838

Mount attesi:

  • ~/mnt/netgescon-ssh/documenti
  • ~/mnt/netgescon-ssh/progetti
  • ~/mnt/netgescon-ssh/scambio

Link workspace attesi:

  • ~/netgescon-sshfs-workspace/documenti
  • ~/netgescon-sshfs-workspace/progetti
  • ~/netgescon-sshfs-workspace/scambio-200

Configurazione KB locale

Per rendere persistente l'accesso KB autenticato creare il file locale non versionato:

mkdir -p ~/.config/netgescon
cat > ~/.config/netgescon/kb.env <<'EOF'
export NETGESCON_KB_API_KEY=INSERISCI_API_KEY
export NETGESCON_KB_URL=http://192.168.0.53:3838
EOF

Gli script seguenti leggono automaticamente quel file se esiste:

  • scripts/ops/netgescon-client-kb-bootstrap.sh
  • scripts/ops/netgescon-orchestrator-kb-run.sh

Stato verificato il 2026-05-23 sulla .200:

  • KB .53 raggiungibile su http://192.168.0.53:3838/api/v1/health
  • binary locale ~/netgescon-orchestrator/.venv/bin/agent-orchestrator presente
  • blocco residuo lato orchestrator/KB: ~/.config/netgescon/kb.env non ancora creato, quindi le query KB autenticate non partono finche non viene inserita API key locale

Invio backlog a orchestrator con contesto KB

Script operativo:

  • scripts/ops/netgescon-orchestrator-kb-run.sh

Esempio:

bash scripts/ops/netgescon-orchestrator-kb-run.sh \
  --backlog docs/support/WORKFLOW-KB-ORCHESTRATOR-PRODUTTIVO.md \
  --query "aggiornamenti distribuzione" \
  --query "demo netgescon" \
  --mode analyze

Uso previsto:

  • .200 prepara backlog e contesto tecnico
  • il KB su .53 fornisce conoscenza condivisa
  • l'altro agent opera sul nodo produzione seguendo il launcher web del nodo

Produzione: punto di aggiornamento consentito

Pagina da usare sul nodo applicativo:

  • https://app.netgescon.it/admin-filament/supporto/aggiornamento-nodo
  • staging locale equivalente: http://192.168.0.200:8000/admin-filament/supporto/aggiornamento-nodo

Il launcher applicativo governa:

  • sync Git/Gitea
  • maintenance mode
  • backup pre-update quando abilitato
  • migrate, clear cache, rebuild view
  • riapertura automatica del servizio

Demo pronta per messa in linea

Nel compose multisito la demo usa gia:

  • dominio demo.netgescon.it
  • RUN_SEEDERS=demo
  • seeder aggregato Database\\Seeders\\DemoEnvironmentSeeder

Il seeder demo richiama:

  • DemoUsersSeeder
  • DocumentiDemoSeeder
  • DemoTicketsSeeder

Credenziali demo seedate:

  • superadmin@demo.netgescon.it / demo12345
  • amministratore@demo.netgescon.it / demo12345
  • collaboratore@demo.netgescon.it / demo12345
  • condomino@demo.netgescon.it / demo12345
  • inquilino@demo.netgescon.it / demo12345
  • fornitore@demo.netgescon.it / demo12345

Stato operativo verificato su 192.168.0.157 il 2026-05-23:

  • https://demo.netgescon.it/admin-filament/login risponde 200
  • https://app.netgescon.it/admin-filament/login risponde 200
  • il deploy multisito genera APP_KEY in docker/.env.multisite se manca
  • il bootstrap demo ora carica utenti, ticket, documenti demo ed etichette protocollo sul DB demo esistente
  • un controllo HTTP fatto troppo presto dopo up -d puo mostrare 502 per pochi secondi durante il warm-up iniziale dei container app

Pagina update demo dopo login:

  • /admin-filament/supporto/aggiornamento-nodo

Google Analytics da tenere nel KB

Misurazioni gia censite nel progetto:

  • DEMO -> G-26FSLQY2RL
  • WWW -> G-3HH17HY982
  • APP -> G-6P649ETW4F
  • STAGING -> G-KF9PX1PQVG

Percorso corretto lato Google:

  • Google Analytics 4: https://analytics.google.com/
  • Google Search Console: https://search.google.com/search-console/

Modello consigliato:

  • una proprieta GA4 NetGescon
  • tre data stream separati almeno per APP, DEMO, STAGING

Nota applicativa: il progetto ha gia una mappa host -> measurement id in config/services.php e il componente view resources/views/components/google-analytics.blade.php sceglie automaticamente l'ID giusto in base all'host o al site mode.

Sorgente base per import dati da censire nel KB

Documento sorgente da riusare come base conoscitiva import:

  • docs/07-DATABASE-NETGESCON.md

Punti chiave da promuovere nel KB:

  • archivi legacy in /mnt/gescon-archives/gescon solo lettura
  • staging tecnico MySQL gescon_import per normalizzazione
  • mapping generale_stabile.mdb -> anni -> nome_dir
  • tabelle import principali: condomini_totali, tabelle, dett_tab

Comandi minimi di verifica

code --version
ssh -i ~/.ssh/id_ed25519_netgescon_machine michele@192.168.0.53 'hostname && whoami'
curl -fsS http://192.168.0.53:3838/api/v1/health
bash scripts/ops/netgescon-client-kb-bootstrap.sh

Per la demo/produzione pubblica:

curl -I -H 'Host: app.netgescon.it' http://195.110.133.78/admin-filament/login
curl -kI --resolve app.netgescon.it:443:195.110.133.78 https://app.netgescon.it/admin-filament/login
curl -I -H 'Host: demo.netgescon.it' http://195.110.133.78/admin-filament/login
curl -kI --resolve demo.netgescon.it:443:195.110.133.78 https://demo.netgescon.it/admin-filament/login