Skip to content

v2.0.0 — Installer Rust con rollback chirurgico

Choose a tag to compare

@github-actions github-actions released this 26 Jul 13:25
· 116 commits to main since this release

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 SystemOps rende 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.gz qui sotto —
    ...-musl è statico e gira su qualsiasi distro, ...-gnu per sistemi con glibc
    recente. Verifica con il file .sha256 allegato.
  • Pacchetto .deb (esperienza apt nativa): scarica odoo-installer_2.0.0_amd64.deb,
    poi sudo apt install ./odoo-installer_2.0.0_amd64.deb. Il comando odoo-installer
    finisce nel PATH ed è rimovibile con apt 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.