Skip to content

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.

  1. Open your instance in the dashboard.
  2. Go to the Settings tab.
  3. Scroll to the odoo.conf Parameters card.
  4. Click Edit odoo.conf to open the editor.

The dialog shows every effective odoo.conf value with a source badge:

SourceWhat it means
🔒 PlatformManaged by Deploy Monkey (DB connectivity, addons paths, etc.). Read-only.
⚙️ PlanDriven by your plan and the dedicated Workers/Memory UI. Read-only here.
✏️ CustomAn override you have added. Editable and removable.
  1. Click + Add Parameter in the editor.
  2. Enter the Key (lowercase letters, digits, and underscore only — for example limit_request).
  3. Enter the Value (max 1024 characters; no shell metacharacters).
  4. Click Save & Apply.

Saving triggers a deployment run that:

  1. Backs up the current /etc/odoo/odoo.conf on the server.
  2. Regenerates the conf with your override appended.
  3. Restarts the Odoo container.
  4. Polls /web/login for a healthy response.
  5. 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.

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.

Some keys are managed by the platform and cannot be overridden:

  • DB connectivitydb_host, db_port, db_user, db_password, db_name
  • Multi-tenant safetydbfilter, list_db, admin_passwd
  • Path and runtime invariantsaddons_path, data_dir, logfile, pidfile, http_interface, http_port, longpolling_port, gevent_port
  • Already exposed in dedicated UIworkers, max_cron_threads, limit_memory_soft, limit_memory_hard, limit_time_cpu, limit_time_real, limit_time_real_cron
  • Topology requirementsproxy_mode, without_demo

If you try to add one of these, the dialog shows a clear error and rejects the value.

limit_request = 65536

Default is 8192 bytes per request line. Raise it for APIs that send large query strings.

log_level = warn

Default is info. Useful on noisy production instances.

osv_memory_count_limit = 50000

Default is 0 (unlimited). Cap if a poorly-written report is OOM-killing workers.

server_wide_modules = queue_job

Loads 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.

If Odoo does not start cleanly with the new value:

  1. The pipeline restores the previous odoo.conf.
  2. Odoo is restarted on the old config.
  3. The dialog shows an inline error block with the actual Odoo log tail (the real ParseError, ImportError, etc.).
  4. Your custom override is reverted in the database, so the bad value never sticks around for the next deploy or sync.