# 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 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: ```bash 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 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 ```bash 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: ```bash 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 ```