106 lines
2.9 KiB
Markdown
106 lines
2.9 KiB
Markdown
# NetGescon - Macchina Git e Distribuzione (Blueprint 2026)
|
|
|
|
Obiettivo: una piattaforma unica per piu progetti con:
|
|
|
|
- repository Git self-hosted,
|
|
- distribuzione aggiornamenti,
|
|
- accesso selettivo con scadenza,
|
|
- moduli premium con pagamento.
|
|
|
|
## Scelta consigliata
|
|
|
|
Stack consigliato:
|
|
|
|
- Forgejo (o Gitea) per Git, issue, release e accessi team.
|
|
- API Update/Licensing separata (Laravel) per manifest, package, code/auth e policy licenza.
|
|
- MinIO per storage pacchetti release e asset aggiornamenti.
|
|
- Reverse proxy (Caddy o Nginx) con TLS e domini separati.
|
|
- Keycloak opzionale se vuoi SSO enterprise multi-progetto.
|
|
|
|
## Perche Forgejo/Gitea
|
|
|
|
1. Leggero rispetto a GitLab e facile da mantenere.
|
|
2. Multi-progetto nativo con org/team/permessi granulari.
|
|
3. Runner CI disponibili per pipeline build package.
|
|
4. Facile integrazione con API esterne per licenze e billing.
|
|
|
|
## Architettura consigliata
|
|
|
|
- `git.netgescon.it`: Forgejo UI/API/SSH.
|
|
- `updates.netgescon.it`: API update/licensing (manifest/package/license).
|
|
- `storage.netgescon.it`: MinIO S3 (privato, firmato).
|
|
- `registry.netgescon.it` opzionale: container registry.
|
|
|
|
## Modello accessi aggiornamenti
|
|
|
|
Canali:
|
|
|
|
- `free`: accesso manifest/package pubblico o con token base.
|
|
- `licensed`: accesso con `code+auth` e controlli avanzati.
|
|
|
|
Controlli raccomandati:
|
|
|
|
- scadenza licenza (`expires_at`),
|
|
- limite nodi (`max_nodes`),
|
|
- modulo abilitato (`modules[]`),
|
|
- versione minima consentita (`min_supported`),
|
|
- revoca immediata (`revoked_at`).
|
|
|
|
## Modello commerciale moduli premium
|
|
|
|
Dati minimi backend licenze:
|
|
|
|
- `customers`
|
|
- `licenses`
|
|
- `license_modules`
|
|
- `payments`
|
|
- `entitlements_audit`
|
|
|
|
Flusso:
|
|
|
|
1. Cliente acquista piano base o modulo.
|
|
2. Payment provider invia webhook.
|
|
3. Sistema aggiorna entitlement e scadenza.
|
|
4. Nodo client chiama endpoint license-check.
|
|
5. Feature gate lato app abilita/disabilita moduli.
|
|
|
|
Provider pagamento consigliati:
|
|
|
|
- Stripe (piu rapido per subscription e webhook).
|
|
- Paddle se vuoi gestione VAT UE piu assistita.
|
|
|
|
## Sicurezza minima obbligatoria
|
|
|
|
1. 2FA obbligatoria per admin Forgejo.
|
|
2. Backup giornaliero DB+repository+bucket MinIO.
|
|
3. Firma manifest release (Ed25519) e verifica lato client.
|
|
4. Logging audit su download package e apply update.
|
|
5. Secrets solo da vault/env sicuri, mai nel repo.
|
|
|
|
## Setup rapido locale
|
|
|
|
La base Docker e in:
|
|
|
|
- `scripts/ops/git-stack/docker-compose.yml`
|
|
- `scripts/ops/git-stack/.env.example`
|
|
|
|
Avvio:
|
|
|
|
```bash
|
|
cd scripts/ops/git-stack
|
|
cp .env.example .env
|
|
# modifica password, domini e secret
|
|
|
|
docker compose --env-file .env up -d
|
|
```
|
|
|
|
## Roadmap operativa consigliata
|
|
|
|
1. Porta online Forgejo + TLS + backup.
|
|
2. Crea org/progetti NetGescon e branch policy.
|
|
3. Attiva API update/licensing su `updates.netgescon.it`.
|
|
4. Pubblica primo pacchetto baseline e manifest firmato.
|
|
5. Aggiorna staging con `php artisan netgescon:update --apply`.
|
|
6. Integra billing moduli premium (Stripe webhook).
|
|
7. Estendi stessa piattaforma agli altri progetti.
|