iride-setup/README.md

45 lines
1.9 KiB
Markdown

# 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 <TOKEN>" \
https://repo.argosdefense.io/tecnotel/iride-setup/raw/branch/main/bootstrap.sh \
| sudo bash -s -- --token <TOKEN>
```
`<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 <TOKEN> --client "Nome Cliente" --domain iride.cliente.it --admin-password '<min 12 caratteri>'
```
## 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.