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 Environment | Branch Git | Scopo | Dominio |
|---|---|---|---|
development | dev | Sviluppo integrato continuo | dev.<dominio> |
staging | staging | Validazione cliente e test migrazioni | staging.<dominio> |
production | main | Produzione | <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.