4.0 KiB
NetGescon - Macchina Git e Distribuzione (Blueprint 2026)
Questo file e un blueprint evolutivo. Non descrive il processo operativo minimo gia in uso oggi, ma la direzione target verso cui convergere senza confondere lo stato attuale del progetto.
1. Stato reale attuale
Oggi la situazione concreta e questa:
- esiste un workspace autorevole Day0;
- il repository sorgente canonico e Gitea;
- il branch operativo e
main; - staging deve ricevere gli aggiornamenti partendo da cio che e stato prima pubblicato su Gitea;
- il motore update Laravel esiste gia ed e utilizzabile anche da browser;
- la distinzione
freeelicensede tecnica e preparatoria, non un prodotto commerciale formalizzato.
Per il flusso operativo quotidiano fare riferimento prima alla documentazione Day0/Gitea e ai runbook di distribuzione, non a questo blueprint.
2. Obiettivo del blueprint
L obiettivo 2026 resta costruire una piattaforma unica per piu progetti con:
- repository Git self-hosted;
- distribuzione aggiornamenti centralizzata;
- controllo accessi e abilitazioni per nodo;
- moduli opzionali e, se necessario in futuro, gestione commerciale separata.
3. Stack consigliato
Stack consigliato per l evoluzione:
- Gitea o Forgejo per Git, issue, release e accessi team;
- API update/licensing separata in Laravel per manifest, package, autorizzazioni e audit;
- storage oggetti dedicato, ad esempio MinIO, per pacchetti release e asset;
- reverse proxy Nginx o Caddy con TLS e domini separati;
- Keycloak solo se emergera una reale esigenza SSO multi-progetto.
4. Architettura target
Separazione logica consigliata:
git.netgescon.it: repository, review, release, chiavi SSH;updates.netgescon.it: manifest, package, audit applicazione update;storage.netgescon.it: bucket privati per pacchetti e snapshot pubblicabili;registry.netgescon.it: opzionale, solo se entrano in gioco immagini container.
Questa architettura va letta come destinazione, non come prerequisito immediato per il flusso corrente Day0 -> Gitea -> staging.
5. Modello canali update
I canali oggi esistono nel codice per compatibilita tecnica:
free: percorso standard attuale;licensed: percorso riservato per futuri controlli piu stretti.
Se e quando il modello verra attivato davvero, i controlli consigliati sono:
- scadenza licenza
expires_at; - limite nodi
max_nodes; - moduli abilitati
modules[]; - versione minima supportata
min_supported; - revoca immediata
revoked_at.
Fino a quel momento il canale free non deve essere comunicato come offerta commerciale finale.
6. Governance minima da mantenere gia ora
Anche prima della piattaforma completa, conviene mantenere da subito queste regole:
- Gitea come unica sorgente canonica dei rilasci approvati.
- Backup giornaliero di repository e snapshot applicativi.
- Backup pre-update obbligatorio sui nodi sensibili.
- Seconda copia su Google Drive dove il nodo ha gia integrazione Google disponibile.
- Separazione netta fra ambiente Day0, staging e futuri siti cliente.
7. Evoluzioni consigliate
Passi coerenti con il codice gia presente:
- pipeline Gitea per creare zip release e manifest in modo ripetibile;
- firma manifest e validazione lato nodo;
- audit centralizzato di check, download e apply;
- retention formalizzata dei backup pre-update locali e Drive;
- eventuale catalogo moduli/licenze solo dopo stabilizzazione del flusso tecnico.
8. Tema commerciale
Il progetto e predisposto per scenari con moduli o accessi differenziati, ma al momento non bisogna confondere predisposizione tecnica e modello commerciale attivo.
Se in futuro servira davvero una gestione commerciale, le entita minime lato backend saranno probabilmente:
customers;licenses;license_modules;payments;entitlements_audit.
Fino ad allora la priorita resta consolidare il flusso tecnico unico:
- sviluppo in Day0;
- push su Gitea;
- aggiornamento controllato di staging;
- solo dopo, eventuale estensione verso altri nodi o clienti.