Deploy Odoo on TurboStack
Run the Odoo Python ERP and business application suite on TurboStack with PostgreSQL behind a managed Nginx reverse proxy.
Odoo is a Python-based suite of open-source business applications covering enterprise resource planning (ERP), customer relationship management (CRM), accounting, inventory and e-commerce. TurboStack runs Odoo as its own service and places an Nginx reverse proxy in front of it, so you only have to declare the application in your host YAML.
Requirements
Note
Odoo requires PostgreSQL. There is no PHP and no Varnish in an Odoo deployment.
Configure it
- Set
webserver: nginxat the host level so TurboStack provisions the reverse proxy. - Set
postgresql_versionto the PostgreSQL release Odoo should use (for example"17"). - Add a system user, then define a vhost with
app_type: odoo. TurboStack starts the Odoo service and proxies traffic to it. - Request a certificate with
cert_type: letsencryptfor automatic HTTPS. - (Optional) Override the Odoo ports under an
odoo:block only if you do not use the defaults.
See Applications for the full list of supported app types and Publish for how to apply your host configuration.
Example configuration
webserver: nginx
postgresql_version: "17" # Odoo requires PostgreSQL
system_users:
- username: prod
vhosts:
- server_name: odoo.example.com
app_type: odoo # TurboStack runs Odoo behind nginx for you
cert_type: letsencrypt
# Optional - only if you run Odoo on non-default ports:
# odoo:
# main_port: 8069
# websocket_port: 8072
Why these choices
app_type: odootells TurboStack to run the Odoo service and configure the Nginx reverse proxy for it automatically.postgresql_versionis mandatory because Odoo stores all of its data in PostgreSQL.webserver: nginxprovides the reverse proxy layer that fronts the Odoo process.cert_type: letsencryptissues and renews Transport Layer Security (TLS) certificates without manual steps.- The
odoo.main_port(default 8069) andodoo.websocket_port(default 8072) settings are advanced overrides; leave them out unless you have a specific reason to change the ports.
Related
-
Technologies used: Python, PostgreSQL, Reverse proxy.
-
Best practices - performance & stability.
-
Troubleshooting - logs & common fixes.