v2.0.0 — Installer Rust con rollback chirurgico
Odoo Auto-Installer v2.0.0
Riscrittura completa dell'installer da Bash a Rust. Stesso scopo — installare Odoo
(16/17/18/19) su Ubuntu/Debian — ma con una garanzia nuova: o l'installazione riesce
del tutto, o il sistema torna esattamente com'era prima. Niente stati intermedi, niente
residui.
⚠️ Release major, breaking. L'installer Bash (installer.sh+lib/*.sh) è stato
rimosso. Chi usava la vecchia versione passa al nuovo binario: l'invocazione cambia
(vedi sotto).
Novità principali
- Rollback transazionale (chirurgico). Ogni passo registra lo stato prima di agire e
sa disfarlo. Se qualcosa fallisce, i passi vengono annullati in ordine inverso,
best-effort, riportando il sistema allo stato iniziale. - Protezione delle risorse preesistenti. Ciò che c'era già — un database, l'utente di
sistema, un servizio — non viene mai toccato in rollback. Un DB preesistente non è
droppato in nessun caso (protezione anti-drop verificata da test dedicati). - Modalità interattiva e non-interattiva. Prompt guidati al primo uso, oppure
configurazione via file.env/ flag CLI per uso in CI e deploy ripetibili. Priorità di
risoluzione: CLI →.env→ prompt. - Nginx opzionale + SSL. Reverse proxy configurabile con
--with-nginx/
--server-name/--enable-ssl. - Sicurezza. Password e segreti con tipo dedicato, redatti nei log e mai stampati.
Checksum SHA-256 pinnati (TOFU) per il download di wkhtmltopdf. State file a permessi
0600. Lockfile per evitare esecuzioni concorrenti. - Logging strutturato su TTY e su file (senza codici ANSI nel file).
- Affidabilità dimostrata. Il confine
SystemOpsrende i comandi privilegiati
mockabili; una suite di test (incluso un modello di sistema stateful end-to-end) prova
che dopo un rollback lo stato finale coincide con quello iniziale.
Installazione
Tre modi (dettagli nel README):
- Binario precompilato (consigliato, niente Rust): scarica il
.tar.gzqui sotto —
...-muslè statico e gira su qualsiasi distro,...-gnuper sistemi con glibc
recente. Verifica con il file.sha256allegato. - Pacchetto
.deb(esperienzaaptnativa): scaricaodoo-installer_2.0.0_amd64.deb,
poisudo apt install ./odoo-installer_2.0.0_amd64.deb. Il comandoodoo-installer
finisce nelPATHed è rimovibile conapt remove odoo-installer. - Build da sorgente:
git clone+cargo build --release.
Esecuzione: via sudo da un utente normale.
sudo odoo-installer # guidato
sudo odoo-installer --config production.env --with-nginx # non-interattivo
sudo odoo-installer --dry-run # mostra il piano senza agire
Asset di questa release
- odoo-installer-x86_64-unknown-linux-musl.tar.gz (+ .sha256) — statico, portabile
- odoo-installer-x86_64-unknown-linux-gnu.tar.gz (+ .sha256) — glibc
- odoo-installer_2.0.0_amd64.deb (+ .sha256) — pacchetto Debian/Ubuntu
Solo Linux x86_64: l'installer usa useradd/apt/systemctl/sudo, quindi non esistono
target Windows/macOS sensati.
Note d'uso
- Prima di un uso reale, popola i pin dei checksum wkhtmltopdf (istruzioni nel README).
- Il .deb installa solo il tool: Odoo, PostgreSQL, systemd e Nginx vengono configurati
a runtime quando lanci odoo-installer, non dall'installazione del pacchetto.