Custom odoo.conf Parameters
Deploy Monkey lets you add custom odoo.conf parameters from the Settings UI. Useful for tuning runtime knobs (request limits, log levels, server-wide modules, OSV cache size) without SSH access. Changes are versioned, applied through a safe pipeline that backs up the previous config, restarts Odoo, and rolls back automatically if Odoo fails to come up healthy.
Where to find it
Section titled “Where to find it”- Open your instance in the dashboard.
- Go to the Settings tab.
- Scroll to the odoo.conf Parameters card.
- Click Edit odoo.conf to open the editor.
The dialog shows every effective odoo.conf value with a source badge:
| Source | What it means |
|---|---|
| 🔒 Platform | Managed by Deploy Monkey (DB connectivity, addons paths, etc.). Read-only. |
| ⚙️ Plan | Driven by your plan and the dedicated Workers/Memory UI. Read-only here. |
| ✏️ Custom | An override you have added. Editable and removable. |
Adding a parameter
Section titled “Adding a parameter”- Click + Add Parameter in the editor.
- Enter the Key (lowercase letters, digits, and underscore only — for example
limit_request). - Enter the Value (max 1024 characters; no shell metacharacters).
- Click Save & Apply.
Saving triggers a deployment run that:
- Backs up the current
/etc/odoo/odoo.confon the server. - Regenerates the conf with your override appended.
- Restarts the Odoo container.
- Polls
/web/loginfor a healthy response. - Rolls back the conf and restarts again if the health check fails, with the actual Odoo error surfaced in the dialog.
Expect roughly 10 to 15 seconds of downtime per change.
Editing or removing
Section titled “Editing or removing”Custom rows have edit and delete icons on the right. Both actions trigger the same backup-restart-healthcheck pipeline. The key itself cannot be changed; remove and re-add if you need a different name.
Reserved keys
Section titled “Reserved keys”Some keys are managed by the platform and cannot be overridden:
- DB connectivity —
db_host,db_port,db_user,db_password,db_name - Multi-tenant safety —
dbfilter,list_db,admin_passwd - Path and runtime invariants —
addons_path,data_dir,logfile,pidfile,http_interface,http_port,longpolling_port,gevent_port - Already exposed in dedicated UI —
workers,max_cron_threads,limit_memory_soft,limit_memory_hard,limit_time_cpu,limit_time_real,limit_time_real_cron - Topology requirements —
proxy_mode,without_demo
If you try to add one of these, the dialog shows a clear error and rejects the value.
Common use cases
Section titled “Common use cases”Bigger request payload
Section titled “Bigger request payload”limit_request = 65536Default is 8192 bytes per request line. Raise it for APIs that send large query strings.
Quieter logs
Section titled “Quieter logs”log_level = warnDefault is info. Useful on noisy production instances.
Higher recordset cache
Section titled “Higher recordset cache”osv_memory_count_limit = 50000Default is 0 (unlimited). Cap if a poorly-written report is OOM-killing workers.
Server-wide modules
Section titled “Server-wide modules”server_wide_modules = queue_jobLoads additional modules at server startup. Make sure the module is actually installed (via a connected Git repo or as a custom addon); Odoo silently ignores entries for modules it cannot find.
When applies fail
Section titled “When applies fail”If Odoo does not start cleanly with the new value:
- The pipeline restores the previous
odoo.conf. - Odoo is restarted on the old config.
- The dialog shows an inline error block with the actual Odoo log tail (the real
ParseError,ImportError, etc.). - Your custom override is reverted in the database, so the bad value never sticks around for the next deploy or sync.