# iride-setup Bootstrap e primo install di un'istanza **IRIDE** (Tecnotel Servizi SRL), sullo schema di `argos-setup`. Il repository applicativo è `iride`; gli aggiornamenti successivi li fa `iride/scripts/update.sh`. ## Install su un server Ubuntu LTS pulito ```text curl -fsSL -H "Authorization: token " \ https://repo.argosdefense.io/tecnotel/iride-setup/raw/branch/main/bootstrap.sh \ | sudo bash -s -- --token ``` `` è un token Gitea di **sola lettura dedicato all'istanza** (uno per cliente, revocabile), mai un token personale. Resta in `/opt/iride/config/git-credentials` (0600, utente `iride`) e serve a `update.sh`. Non interattivo (VM di test, CI): ```text ... | sudo bash -s -- --token --client "Nome Cliente" --domain iride.cliente.it --admin-password '' ``` ## Cosa fa | Passo | Script | Esito | |---|---|---| | pacchetti, utente `iride`, `/opt/iride/*`, credenziali git | `bootstrap.sh` | clona questo repo in `/opt/iride/setup` | | clone di `iride` in `/opt/iride/app`, venv, dipendenze | `install.sh` | | | configurazione da `config/*.example` + wizard | `first_setup.py` | `iride.json`, `users.json` (0600) | | migrazioni, build frontend (se presente), unit systemd, nginx + certificato | `install.sh` | servizi abilitati e avviati | | verifica | `checks/health.sh` | exit 1 se qualcosa non va | Layout risultante: `/opt/iride/{app,config,data,logs,backups,certs,setup}`. ## Note - Il certificato generato è self-signed: **WhatsApp richiede un certificato valido** (Let's Encrypt o del cliente) in `/opt/iride/certs/{fullchain,privkey}.pem`. - Il wizard web (porta 8888, stile ARGOS) e la validazione della licenza all'install arrivano dopo il pilota (B-055 li collauda su VM di test). - Riesecuzione sicura: `bootstrap.sh` aggiorna il setup e rilancia `install.sh`, che non tocca configurazione, utenti e certificati già presenti.