Skip to content

ADR-0003: Railway Environments Odoo.sh-like

Status

Superseded by ADR-0004

Context

Ez FactoryOS richiede una gestione progetto simile a Odoo.sh: branch separati, istanze isolate, deploy automatici e promozione controllata tra sviluppo, validazione e produzione.

Il flusso branch gia' approvato e' dev -> staging -> main. Railway puo' fornire ambienti persistenti, deploy da branch GitHub, variabili per ambiente, domini separati, Redis e database gestiti o collegati.

Frappe v16 richiede MariaDB, Redis, processi worker/scheduler, storage persistente per sites e una procedura affidabile di backup/restore.

Decision

Usare Railway come piattaforma candidata per gestire ambienti persistenti stile Odoo.sh:

Railway EnvironmentBranch GitScopoDominio
developmentdevSviluppo integrato continuodev.<dominio>
stagingstagingValidazione cliente e test migrazionistaging.<dominio>
productionmainProduzione<dominio>

Ogni environment deve avere configurazione isolata:

  • database dedicato
  • Redis dedicato
  • variabili ambiente dedicate
  • dominio dedicato
  • storage persistente dedicato
  • backup e restore separati

La promozione resta solo dev -> staging -> main. Il deploy diretto dev -> main resta vietato.

Implementation Notes

La prima integrazione Railway e' un POC controllato su development e staging.

Prima di usare Railway in produzione devono essere verificati:

  • compatibilita' Frappe v16 con MariaDB gestito da Railway
  • persistenza di sites, file privati e file pubblici dopo redeploy
  • esecuzione corretta di bench migrate
  • funzionamento di worker, scheduler e Redis
  • backup produzione e restore verso staging/development
  • rollback deployment e rollback dati

Consequences

  • Railway diventa il candidato per istanze cloud persistenti stile Odoo.sh.
  • Coolify/VPS resta fallback operativo finche' il POC Railway non e' validato.
  • Le variabili sensibili devono essere configurate solo in Railway, mai nel repository.
  • Le procedure operative Dokploy sono documentate in docs/infrastructure/dokploy-setup.md.
  • Ogni passaggio verso produzione richiede verifica manuale e backup.

Documentazione Ez FactoryOS — Ortobellina / EzBit