# NetGescon – RUNBOOK (Linux) ## Ambiente - OS: Ubuntu (VM Proxmox) – host: `netgescon-master` – IP: `192.168.0.200` - Path progetto: `/home/michele/netgescon/netgescon-laravel` - Shell: bash - Repo: Gitea `http://192.168.0.200:3000/` (ssh) ## Obiettivo - Questo file contiene i comandi e le procedure per ripartire velocemente dopo reboot/crash senza rispiegare tutto. ## Avvio rapido (checklist) 1) Vai nel progetto: `cd /home/michele/netgescon/netgescon-laravel` 2) Verifica mount produzione (RO): `mount | egrep -i 'gescon-archives|cifs' || true` 3) Avvia stack / servizi (scegli in base a come lo usi oggi): - Docker: `docker compose up -d` - Nginx/PHP-FPM: `sudo systemctl status nginx php8.3-fpm --no-pager` - MySQL/MariaDB: `sudo systemctl status mysql --no-pager` 4) App Laravel: - `php -v ; composer -V` - `php artisan --version` - Avvio server (DEV): - VS Code Task: "Start Laravel Server" - CLI equivalente: `php artisan serve --host=0.0.0.0 --port=8000` ## VS Code / Prestazioni - Workspace settings: `.vscode/settings.json` (exclude watcher/search già impostati) - IMPORTANT: apri un workspace che punti direttamente a `netgescon-laravel`. - OK: `Miki-Bug-workspace/NetGescon-Laravel.code-workspace` - OK: `Miki-Bug-workspace/NetGescon-Development.code-workspace` (ora allineato: non punta più alla cartella padre) - DA EVITARE: workspace che includono `/home/michele/netgescon` (troppo grande → indicizzazione/estensioni possono inchiodare VS Code) - Nota: evitare di indicizzare `node_modules/`, `vendor/`, `storage/`, `bootstrap/cache/` ## Database (DEV/TEST) - Dove gira il DB di test (scegli una sola verità): - Local service: `mysql` (systemd) oppure container docker - Comandi utili: - Stato: `sudo systemctl status mysql --no-pager` - Connessione: `mysql -u -p -h ` ## Produzione (dati in sola lettura) - Mount RO: `/mnt/gescon-archives` (CIFS) - Scopo: leggere dati aggiornati per import/estrazioni - Verifica rapida: - `ls /mnt/gescon-archives | head` - Se la share non risponde, NON deve bloccare il boot (automount/timeout configurati) ## Estrarre dati (procedura standard) - Script/entrypoint da usare (scegli e mantieni 1 procedura): - `./manage-database.sh ` - oppure `php artisan ` - Esempi (riempi con quelli che usi davvero): - Query/estrazione anagrafiche: `` - Import dati legacy: `` - Verifica integrità: `` ## Stato attuale (da aggiornare dopo ogni sessione) - Ultimo focus: - `` - Cose fatte: - `` - Cose da fare: - `` - Decisioni importanti: - `` ## “Se il sistema salta” (ripartenza) - 1) fsck solo se serve (initramfs), poi reboot - 1) controlla mount produzione - 1) avvia servizi/docker - 1) apri VS Code e riparti da “Stato attuale” ## Continuità chat (anti-blocco contesto) - La chat può comunque raggiungere un limite di contesto: non si elimina del tutto, ma si evita di perdere il filo con checkpoint brevi. - Regola pratica: ogni blocco di lavoro importante aggiorna `docs/ai/SESSION_HANDOFF.md` con: - obiettivo corrente, - file toccati, - comandi reali eseguiti + output sintetico, - prossimo step immediato. - Prompt di ripartenza standard: - `Riparti da docs/ai/SESSION_HANDOFF.md e continua dal prossimo step senza rieseguire analisi generale.` ### Regola di utilizzo consigliata - Evita chat infinite: usa 1 chat per argomento/capitolo. - Apri una nuova chat quando: - chiudi un blocco funzionale, - cambi argomento, - superi ~80-120 richieste, - noti rallentamenti. - Prima di cambiare chat, esegui sempre task: `AI: Continuity Auto (Safe)`. ### Ripartenza veloce - Esegui task: `AI: Restart Brief`. - Fai leggere all'agent in ordine: 1) `docs/ai/SESSION_HANDOFF.md` 2) `docs/ai/TOPICS_INDEX.md` 3) `docs/ai/LATEST_2_CHATS_RECOVERY.md` 4) `docs/ai/topics/.md` - Per guida completa: `docs/ai/START-HERE-AGENT.md`