Commit Graph

14 Commits

Author SHA1 Message Date
tecnotel 58f4bf9de4 chore(setup): rimuovi gen_config.py legacy
Script standalone con schema obsoleto (env-vars based, mancano
ai_context, console_url, network, vendor_heartbeat). Non piu'
richiamato da nessun altro file (verificato con grep).

Tutta la generazione argos.json e' ora inline in setup_server.py
nella funzione _build_config_dict().
2026-05-12 11:22:41 +02:00
tecnotel a68324725f feat(setup): Ubuntu 26.04 LTS support + cert autofirmato + 3 file .example
Modifiche di compatibilita' e miglioramenti UX dopo analisi del 12/05/26
del codice argos main repo vs argos-setup.

1. Multi-version Ubuntu (24.04 e 26.04 LTS):
   - first-setup.sh: SUPPORTED_VERSIONS array per check
   - Aggiunto openssl esplicito alle dipendenze apt
   - README aggiornato con compatibility matrix
   - ARGOS code (Python 3.14-ready: no distutils/imp/pkg_resources)
     gia' compatibile, requirements.txt pin gia' build 2026

2. Certificato SSL autofirmato come 3a opzione:
   - UI: bottone '🔐 Autofirmato' nel Tab Rete & SSL
   - Backend: openssl req -x509 -newkey rsa:4096 -days 3650
   - SAN dinamica: tutti i DNS (hostname + aliases) + IP server
   - Subject: C=IT, O=<cliente_full>, OU=ARGOS SOC, CN=<hostname>
   - Warning UI prominente sulla non-attendibilita' browser
   - Utile per installazioni LAN/dev senza DNS pubblico

3. Rimozione campi M365:
   - sp_tenant (SharePoint tenant) rimosso da Tab Cliente
   - sharepoint_tenant non piu' nel argos.json generato
   - M365/Entra ID configurabile dall'UI Integrazioni post-install

4. Textarea ai_context opzionale nel Tab Cliente:
   - Iniettato nei prompt AI per contestualizzare il cliente
   - Hint con esempio ASREM
   - Salvato in argos.json -> cliente.ai_context (letto da config.py)

5. Copia di 3 file .example che il setup non gestiva:
   - automations.json (config feed TI sources + cron daemon)
   - siem_integrations.json (catalogo SIEM Integration Builder)
   - subnet_registry.json (mapping sede/reparto da subnet)
   Necessari dopo i lavori marzo-maggio 2026.

6. Rimozione gen_config.py legacy:
   - Schema obsoleto (manca ai_context, console_url, network,
     vendor_heartbeat)
   - Non piu' richiamato da nessuno (verificato con grep)
   - Sostituito completamente da setup_server.py inline

7. README aggiornato:
   - Sezione 'Opzioni certificato SSL' con 3 modalita'
   - Requisiti: Ubuntu 24.04 LTS o 26.04 LTS
   - Tab 2 menziona contesto AI opzionale
2026-05-12 11:20:37 +02:00
tecnotel 6424c784f9 Update setup_server.py 2026-05-05 08:30:19 +02:00
tecnotel 5dddd82240 Update setup_server.py 2026-05-04 21:03:48 +02:00
tecnotel 42ec00bb40 Update setup_server.py 2026-05-04 20:37:17 +02:00
tecnotel 7443d431e5 Update setup_server.py 2026-05-03 22:48:59 +02:00
Tecnotel fb2984b7f7 fix(wizard): argos_users.json va scritto in CONFIG_DIR non DATA_DIR
Il wizard scriveva /opt/argos/data/argos_users.json ma auth.py del
backend lo legge da /opt/argos/config/argos_users.json. Risultato:
l'utente admin del wizard finiva in un file mai letto, e il backend
autogenerava un fallback con password ignota -> login impossibile.
2026-04-20 17:50:30 +02:00
Tecnotel 41cb97bea8 fix(wizard): aggiungi git safe.directory prima del clone
Ubuntu 24.04 ha git >= 2.35 che rifiuta operazioni sui repo con
ownership mista. Durante install /opt/argos/app/ preesiste come
argos:argos (creato da first-setup.sh) ma il clone come root
crea i file dentro come root:root. Il successivo 'git remote set-url'
(eseguito come root) falliva con 'dubious ownership'.

Fix: registriamo /opt/argos/app come safe.directory globale prima
del clone, cosi' i comandi git successivi non sono bloccati.
2026-04-20 17:32:46 +02:00
Tecnotel ec1b284527 fix(first-setup): rimuove loop cp verso /opt/argos/setup/
Il commit precedente ha modificato ExecStart del service ma ha lasciato
intatto il loop 'for' che copiava setup_server.py/setup.html/gen_config.py
in /opt/argos/setup/. Risultato: durante install il cp falliva con
'Not a directory' perche' quella cartella non viene piu' creata.

Rimosso completamente il blocco di copia. Il service gira direttamente
da /opt/argos-setup-pkg/ come da refactor precedente.
2026-04-20 17:23:36 +02:00
Tecnotel 1537b23aa4 refactor(wizard): service gira da -pkg + auto-cleanup fine install
Architettura precedente:
- first-setup.sh copiava setup_server.py/setup.html/gen_config.py
  da /opt/argos-setup-pkg/ verso /opt/argos/setup/
- Service girava da /opt/argos/setup/
- Doppia cartella: git pull su -pkg non aggiornava il service

Architettura nuova:
- Service gira direttamente da /opt/argos-setup-pkg/ (nessuna copia)
- A fine install _schedule_cleanup() lancia systemd-run --scope che:
  1. attende 5s (permette risposta HTTP al browser)
  2. stop+disable+rm argos-setup.service
  3. chiude porta 8888 nel firewall
  4. rm -rf /opt/argos-setup-pkg/
- Cartella /opt/argos/setup/ non viene piu' creata (rimossa da mkdir glob)
2026-04-20 17:18:55 +02:00
Tecnotel 37876443df fix(wizard): correzione numeri goTab() dopo shift step Licenza
Il refactor Fase 6 ha inserito 'Licenza' come step 1 shiftando tutti
gli altri step +1, ma i numeri hardcoded dei bottoni Avanti/Indietro
erano rimasti con la vecchia numerazione. Effetto: dallo step
'Rete & SSL' il bottone Avanti saltava direttamente a 'Utente admin'
scavalcando 'SIEM'.

Panel -> Indietro -> Avanti:
  panel-2 (Rete&SSL): 4 -> 1   |   4 -> 3
  panel-3 (SIEM):     1 -> 2   |   3 -> 4
  panel-4 (Admin):    2 -> 3   |   (goToInstall invariato)
  panel-5 (Install):  3 -> 4   |   (-)
2026-04-20 17:06:37 +02:00
Tecnotel dd9e50697e feat(wizard): genera argos.json completo al primo install
- system.vendor_heartbeat abilitato di default (install_key shared secret)
- system.anthropic_key vuoto (valorizzabile dopo da UI)
- paths.analytics_exclude_entities per coerenza con runtime

NON genera system.update (codice morto dopo Fase 5, credenziali Gitea
ora vivono nella licenza firmata).
2026-04-20 15:06:49 +02:00
Tecnotel 5e9a916515 feat(phase6): wizard licenza + bootstrap one-liner
- first-setup.sh: rimosso token hardcoded + clone/venv spostati nel wizard
- setup_server.py: step licenza (verify Ed25519, machine_id match) + clone
  argos con URL autenticato da license.json
- setup.html: nuovo step 1 'Licenza ARGOS' con machine_id display + upload
- bootstrap.sh: one-liner installer per setup rapido su VM vergine
- README: documentazione flusso nuovo
2026-04-20 14:27:10 +02:00
Tecnotel 7d2c1d8809 chore: initial commit
Sposta installer di prima fase e Web Setup Wizard dal repo argos
al nuovo repo pubblico argos-setup.

File provenienti da argos/scripts/:
- install.sh -> first-setup.sh (rinominato)
- setup_server.py
- setup.html
- gen_config.py

Rimane in argos/scripts/:
- update.sh (continua a vivere nel codice runtime)

Il nuovo repo e' pubblico: il contenuto non include secret ne' codice
proprietario di ARGOS, solo il tooling di installazione.
2026-04-20 10:28:40 +02:00