Allineato a ARGOS v1.15.0 (16/05/2026) che introduce il bottone
'⬇️ Esegui update.sh' in Release Notes -> Impostazioni (admin only),
permettendo agli operatori di eseguire l'update dal browser senza
SSH al server.
Aggiunto in sezione 3 (utente argos + sudoers), dopo il blocco
argos-systemctl esistente, con stessa struttura:
- /etc/sudoers.d/argos-update con chmod 0440
- visudo -cf per validazione sintassi
- Comando esplicito (no wildcard, no shell generica):
argos ALL=(root) NOPASSWD: /usr/bin/bash /opt/argos/app/scripts/update.sh
argos ALL=(root) NOPASSWD: /bin/bash /opt/argos/app/scripts/update.sh
Necessario per nuove installazioni da bootstrap; per sistemi esistenti
l'auto-install e' garantito da update.sh sezione 5c (repo argos).
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
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.
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)
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.