5.1 KiB
NetGescon 0.9 - Installazione nodo locale da macchina vuota
Questo documento descrive la prova che ha senso fare adesso: una macchina Ubuntu nuova che installa NetGescon come nodo locale singolo, senza dipendere dai servizi cloud pubblici per funzionare nel quotidiano.
Obiettivo pratico:
- preparare una VM o macchina Ubuntu pulita;
- installare Docker e lo stack applicativo locale;
- avviare NetGescon come nodo singolo;
- ripristinare un backup proveniente dal sito;
- verificare che il nodo lavori in autonomia con DB, storage e servizi locali.
Cosa e incluso nel repository
Per questa prova sono pronti i seguenti file:
docker/docker-compose.node-local.ymldocker/.env.node-local.exampledocker/install-node-local.shdocker/restore-node-backup.shdocker/provision-vm.sh
Questo stack non usa il multisito www/app/demo. Porta su un solo nodo applicativo con:
appPHP-FPM Laravelnginxmysqlredis
Cosa serve dalla macchina remota
Per procedere senza perdere tempo mi servono solo queste informazioni:
- IP della macchina oppure hostname raggiungibile in LAN/VPN.
- Utente SSH e porta SSH.
- Conferma versione Ubuntu (
22.04o24.04va bene). - RAM, CPU e spazio disco disponibili.
- Path in cui vuoi installare il progetto, ad esempio
/opt/netgescon. - Se il nodo dovra rispondere solo in LAN o anche con DNS dedicato.
- Se hai gia pronto il backup da ripristinare:
- dump SQL del DB applicativo;
- archivio
storagedel sito; - eventuale archivio legacy MDB/Access da montare in
LEGACY_ARCHIVES_PATH.
Bootstrap da macchina vuota
1. Copia repository sulla macchina
Se la macchina vede Gitea:
cd /opt
git clone ssh://git@192.168.0.53:2222/michele/netgescon-day0.git netgescon-day0
cd /opt/netgescon-day0
Se non vuoi usare Git direttamente sul nodo, puoi copiare un archivio del repository gia allineato.
2. Provision base Ubuntu
cd /opt/netgescon-day0/docker
chmod +x provision-vm.sh install-node-local.sh restore-node-backup.sh
./provision-vm.sh
Poi fai logout/login per applicare il gruppo Docker.
3. Prepara env locale del nodo
cd /opt/netgescon-day0
cp docker/.env.node-local.example docker/.env.node-local
nano docker/.env.node-local
Campi da impostare subito:
APP_URLNODE_HTTP_PORTDB_PASSWORDDB_ROOT_PASSWORDLEGACY_ARCHIVES_PATH
APP_KEY puo restare vuota: viene generata automaticamente da install-node-local.sh al primo avvio.
4. Installa e avvia lo stack
cd /opt/netgescon-day0/docker
./install-node-local.sh
Lo script:
- valida il compose;
- genera
APP_KEYse manca; - builda l immagine applicativa;
- avvia DB e Redis;
- avvia app e nginx;
- crea anche il database
gescon_importper gli import legacy.
Restore backup del sito
Dopo aver copiato sul nodo il dump del database e l archivio storage:
cd /opt/netgescon-day0/docker
./restore-node-backup.sh --sql /percorso/backup.sql.gz --storage /percorso/storage.tar.gz
Note operative:
- il dump SQL puo essere
.sqloppure.sql.gz; - lo storage e opzionale, ma senza storage il nodo partira senza documenti/allegati storici;
- l archivio storage deve essere un
tar.gzestraibile con radice compatibile con/var/www/storage.
Verifiche minime dopo restore
cd /opt/netgescon-day0
docker compose --env-file docker/.env.node-local -f docker/docker-compose.node-local.yml ps
docker compose --env-file docker/.env.node-local -f docker/docker-compose.node-local.yml logs -f --tail=100
Controlli applicativi minimi:
- login backoffice;
- apertura dashboard;
- apertura di almeno una pagina contabile;
- verifica documenti/allegati storici;
- verifica accesso al DB applicativo;
- verifica che il nodo non dipenda da servizi cloud per il funzionamento base.
Spiegazione del messaggio visto su staging
Il pannello Supporto > Aggiornamento Nodo mostra due cose diverse:
- lo stato Git noto al nodo;
- l eventuale esecuzione dell update applicativo.
Per questo:
Ultima sync Gitindica quando il nodo ha registrato l ultima sync Git;Ultimo updateresta-se non e mai stato lanciato un update applicativo da quella pagina.
Dopo il push su Gitea di oggi, il nodo che ho verificato mostra gia:
- branch
main - commit
b3e626b - tracking
ahead 0 / behind 0 - working tree
pulito
Quindi il problema non era un guasto Git: era solo assenza di un update applicativo registrato, mentre la parte Git ora e allineata.
Limiti attuali da tenere presenti
Questa prova locale serve per installazione e ripristino operativo. Restano fuori, salvo configurazione dedicata:
- manifest distribution pubblico;
- licensing per canali;
- backup cloud esterni;
- servizi Google/Gmail/Drive lato studio;
- reverse proxy TLS pubblico multi-dominio.
Prossimo passo corretto
Appena mi dai i dati della macchina remota, facciamo in ordine:
- verifica accesso SSH e risorse;
- provisioning Docker;
- copia repository o clone da Gitea;
- creazione
docker/.env.node-local; - avvio stack;
- restore backup del sito;
- checklist di collaudo del nodo.