{"id":19391,"date":"2025-10-23T11:17:10","date_gmt":"2025-10-23T08:17:10","guid":{"rendered":"https:\/\/unihost.com\/help\/?p=19391"},"modified":"2026-11-06T17:00:51","modified_gmt":"2026-11-06T14:00:51","slug":"installing-odoo-with-portainer","status":"publish","type":"post","link":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/","title":{"rendered":"How to Install Odoo with Portainer (Docker)"},"content":{"rendered":"<div class=\"unihost-odoo-article\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Odoo Community can be deployed on your VPS using the Unihost application template in Portainer. Open Templates, choose Odoo, enter the PostgreSQL credentials and deploy the stack. Then configure the database master password, persistent storage, a domain with HTTPS, and backups. This guide also covers custom addons and safe image updates.<\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Compatibility: Linux with Docker Engine, Portainer and the Odoo Community Docker image. Odoo 20.0 is the latest stable major release as of November 6, 2026.<\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:18pt;line-height:1.3;margin:24px 0 12px\">Requirements<\/h2>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">You need a VPS with Docker and Portainer, administrator access, PostgreSQL and a domain. The original Unihost deployment uses Nginx Proxy Manager (NPM); Traefik is an alternative for HTTPS. For a small installation, 2 vCPU, 4 GB RAM and 40 GB SSD are a starting estimate, not an official universal requirement.<\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">For Portainer basics, see <a href=\"https:\/\/unihost.com\/help\/what-is-portainer\/\">What is Portainer?<\/a>.<\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:18pt;line-height:1.3;margin:24px 0 12px\">Steps<\/h2>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 1. Select the Odoo template<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Sign in to Portainer, select the local environment and open <strong>Templates \u2192 Application \u2192 Odoo<\/strong>. Fill in the database username and a strong password, then deploy the application. The resulting stack is named <strong>odoo-app<\/strong> in the original Unihost template.<\/p>\n<p style=\"margin:12px 0 18px\"><img decoding=\"async\" alt=\"Select the local environment in Portainer\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png\" style=\"max-width:100%;height:auto\"\/ title=\"How to Install Odoo with Portainer (Docker) - Image 1\"><\/p>\n<p style=\"margin:12px 0 18px\"><img decoding=\"async\" alt=\"Choose the Odoo application template\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-36-01.png\" style=\"max-width:100%;height:auto\"\/ title=\"How to Install Odoo with Portainer (Docker) - Image 2\"><\/p>\n<p style=\"margin:12px 0 18px\"><img decoding=\"async\" alt=\"Enter PostgreSQL credentials and deploy\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-36-16.png\" style=\"max-width:100%;height:auto\"\/ title=\"How to Install Odoo with Portainer (Docker) - Image 3\"><\/p>\n<p style=\"margin:12px 0 18px\"><img decoding=\"async\" alt=\"Check the odoo-app stack\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-36-23.png\" style=\"max-width:100%;height:auto\"\/ title=\"How to Install Odoo with Portainer (Docker) - Image 4\"><\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">docker ps<\/pre>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 2. Set up PostgreSQL and storage<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">The official Odoo Docker image connects to PostgreSQL using these environment variables. The credentials must match the PostgreSQL container.<\/p>\n<table style=\"width:100%;border-collapse:collapse;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;margin:12px 0\">\n<thead>\n<tr>\n<th style=\"border:1px solid #ddd;padding:7px;text-align:left\">Variable<\/th>\n<th style=\"border:1px solid #ddd;padding:7px;text-align:left\">Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #ddd;padding:7px\">HOST<\/td>\n<td style=\"border:1px solid #ddd;padding:7px\">PostgreSQL service name<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:7px\">USER<\/td>\n<td style=\"border:1px solid #ddd;padding:7px\">PostgreSQL user<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:7px\">PASSWORD<\/td>\n<td style=\"border:1px solid #ddd;padding:7px\">PostgreSQL password<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">HOST=db\r\nUSER=odoo\r\nPASSWORD=YOUR_STRONG_DB_PASSWORD<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Keep Odoo data at <strong>\/var\/lib\/odoo<\/strong> and custom modules at <strong>\/mnt\/extra-addons<\/strong>. PostgreSQL also needs its own persistent data volume. Example mounts for the Odoo service:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">volumes:\r\n  - odoo_data:\/var\/lib\/odoo\r\n  - .\/addons:\/mnt\/extra-addons<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">This is a Compose fragment, not a replacement for the Unihost template. Do not remove existing volumes when recreating containers.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 3. Protect the master password and configure workers<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Set a unique master password in <strong>odoo.conf<\/strong> (normally mounted at \/etc\/odoo\/odoo.conf). It protects database management and is different from the Odoo user password. If the template supplies default admin credentials, change them before exposing the site.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">[options]\r\nadmin_passwd = YOUR_UNIQUE_MASTER_PASSWORD<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">For a reverse-proxied production deployment, enable proxy mode and size the number of workers to available CPU and RAM. The following is an example, not a universal tuning recommendation:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">[options]\r\nworkers = 2\r\nproxy_mode = True<\/pre>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 4. Configure a domain and HTTPS<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">To publish Odoo using Nginx Proxy Manager (NPM), follow these steps:<\/p>\n<ol style=\"list-style:decimal outside;padding-left:27px;margin:8px 0 14px;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Create a DNS A record for odoo.example.com pointing to your VPS public IP.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Open NPM \u2192 Hosts \u2192 Proxy Hosts \u2192 Add Proxy Host.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Set Domain Names to odoo.example.com and Scheme to http.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Set Forward Hostname \/ IP to the Odoo service hostname reachable from NPM, and Forward Port to 8069.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Enable Websockets Support when needed by your configuration. Under SSL, request a Let\u2019s Encrypt certificate, enable Force SSL and save.<\/li>\n<\/ol>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Use proxy_mode = True in odoo.conf when Odoo is behind a trusted proxy. With multiple workers, configure the evented\/WebSocket endpoint according to your Odoo version. NPM and Odoo must have Docker network connectivity. Avoid exposing 8069 directly to the internet.<\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\"><a href=\"https:\/\/unihost.com\/help\/nginx-proxy-manager\/\">Nginx Proxy Manager installation and HTTPS configuration<\/a><\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Traefik with Portainer is an alternative for HTTPS.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">odoo.example.com -&gt; SERVER_IP\r\nForward hostname: odoo-app\r\nForward port: 8069<\/pre>\n<p style=\"margin:12px 0 18px\"><img decoding=\"async\" alt=\"Configure an NPM Proxy Host\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-36-32.png\" style=\"max-width:100%;height:auto\"\/ title=\"How to Install Odoo with Portainer (Docker) - Image 5\"><\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Restrict direct access to port 8069. Do not treat the HTTP login screen shown in an older screenshot as the desired public configuration.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 5. Install custom addons<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Mount your trusted module folder at \/mnt\/extra-addons, confirm its presence in addons_path, restart Odoo, enable developer mode and update the Apps list before installing the module. Use only modules compatible with your Odoo version.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">\/mnt\/extra-addons\/my_custom_module\/<\/pre>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 6. Back up Odoo<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Use the Odoo Database Manager to download a ZIP backup that includes the filestore, or back up PostgreSQL with pg_dump. A database-only dump does not include attachments stored in the Odoo filestore.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">docker exec DB_CONTAINER pg_dump -U odoo -d DATABASE_NAME -Fc &gt; odoo-backup.dump<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Keep copies of PostgreSQL, the Odoo filestore and configuration outside the VPS. Verify restoration periodically.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Step 7. Update the Docker image<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Back up the database, filestore and configuration, then check the release notes and addon compatibility. For an installation already on the same major version, update the compatible image tag in Portainer and recreate the service without removing volumes. Upgrading from Odoo 19 to 20 requires a database migration, not just a new image.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">odoo:20.0<\/pre>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:18pt;line-height:1.3;margin:24px 0 12px\">Verify<\/h2>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Check that the Odoo and PostgreSQL containers are running, the site loads over HTTPS, users can sign in, modules are available and backups can be restored.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f4f6;padding:10px;margin:10px 0 15px;border-radius:4px\">docker ps\r\ndocker logs --tail 50 ODOO_CONTAINER<\/pre>\n<p style=\"margin:12px 0 18px\"><img decoding=\"async\" alt=\"Check the Odoo applications after installation\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-36-53.png\" style=\"max-width:100%;height:auto\"\/ title=\"How to Install Odoo with Portainer (Docker) - Image 6\"><\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:18pt;line-height:1.3;margin:24px 0 12px\">Troubleshooting<\/h2>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Odoo cannot connect to PostgreSQL<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Check HOST, USER, PASSWORD, the database service and the shared Docker network.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">The domain or HTTPS does not work<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Check DNS, NPM or Traefik, TLS and access to internal port 8069.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">A custom module is missing<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Check the mounted \/mnt\/extra-addons directory, addons_path, module compatibility and the refreshed Apps list.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Odoo responds slowly<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Check CPU, RAM, PostgreSQL performance and workers; increase VPS resources if necessary.<\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:18pt;line-height:1.3;margin:24px 0 12px\">FAQ<\/h2>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Can I run Odoo Enterprise in Docker?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Yes, with a valid Enterprise subscription and the corresponding addons. The official Odoo image primarily provides Community.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">How do I install custom modules?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Mount compatible addons at \/mnt\/extra-addons, add the path in Odoo configuration, restart and update the Apps list.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">How do I back up Odoo?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Use Database Manager with filestore included, or pg_dump plus a separate copy of \/var\/lib\/odoo and configuration.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">What server size do I need for Odoo?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">For a small deployment, 2 vCPU, 4 GB RAM and 40 GB SSD are a starting estimate. Size workers, RAM and storage for actual users and modules.<\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:18pt;line-height:1.3;margin:24px 0 12px\">Related Articles<\/h2>\n<ul style=\"list-style:disc outside;padding-left:27px;margin:10px 0 16px\">\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.5;margin:5px 0\"><a href=\"https:\/\/unihost.com\/help\/what-is-portainer\/\">What is Portainer?<\/a><\/li>\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.5;margin:5px 0\"><a href=\"https:\/\/unihost.com\/help\/installing-traefik-reverse-proxy-with-portainer\/\">Traefik with Portainer<\/a><\/li>\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.5;margin:5px 0\"><a href=\"https:\/\/unihost.com\/help\/installing-mariadb-with-portainer\/\">MariaDB with Portainer (Odoo itself uses PostgreSQL)<\/a><\/li>\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.5;margin:5px 0\"><a href=\"https:\/\/hub.docker.com\/_\/odoo\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">Official Odoo Docker image<\/a><\/li>\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:5px 0\"><a href=\"https:\/\/unihost.com\/help\/nginx-proxy-manager\/\">Nginx Proxy Manager setup<\/a><\/li>\n<\/ul>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px\">Deploy Odoo on Unihost infrastructure<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Use Unihost application templates and a VPS sized for your Odoo workload.<\/p>\n<ul style=\"list-style:disc outside;padding-left:27px;margin:10px 0 16px\">\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.5;margin:5px 0\"><a href=\"https:\/\/unihost.com\/solutions\/\">Unihost ready solutions<\/a><\/li>\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.5;margin:5px 0\"><a href=\"https:\/\/unihost.com\/vps\/\">Unihost VPS<\/a><\/li>\n<\/ul>\n<\/div>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"headline\":\"How to Install Odoo with Portainer (Docker)\",\"description\":\"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.\",\"inLanguage\":\"en\",\"author\":{\"@type\":\"Organization\",\"name\":\"Unihost\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Unihost\",\"url\":\"https:\/\/unihost.com\/\"},\"datePublished\":\"2025-10-23\",\"dateModified\":\"2026-11-06\"},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Can I run Odoo Enterprise in Docker?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, with a valid Enterprise subscription and the corresponding addons. The official Odoo image primarily provides Community.\"}},{\"@type\":\"Question\",\"name\":\"How do I install custom modules?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Mount compatible addons at \/mnt\/extra-addons, add the path in Odoo configuration, restart and update the Apps list.\"}},{\"@type\":\"Question\",\"name\":\"How do I back up Odoo?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use Database Manager with filestore included, or pg_dump plus a separate copy of \/var\/lib\/odoo and configuration.\"}},{\"@type\":\"Question\",\"name\":\"What server size do I need for Odoo?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For a small deployment, 2 vCPU, 4 GB RAM and 40 GB SSD are a starting estimate. Size workers, RAM and storage for actual users and modules.\"}}]}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Odoo Community can be deployed on your VPS using the Unihost application template in Portainer. Open Templates, choose Odoo, enter the PostgreSQL credentials and deploy the stack. Then configure the database master password, persistent storage, a domain with HTTPS, and backups. This guide also covers custom addons and safe image updates. Compatibility: Linux with Docker [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[158],"tags":[],"class_list":["post-19391","post","type-post","status-publish","format-standard","hentry","category-dedicated-servers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Install Odoo with Docker and Portainer: PostgreSQL, Addons, Backups | Unihost<\/title>\n<meta name=\"description\" content=\"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Install Odoo with Docker and Portainer: PostgreSQL, Addons, Backups | Unihost\" \/>\n<meta property=\"og:description\" content=\"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/\" \/>\n<meta property=\"og:site_name\" content=\"Unihost.FAQ\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unihost\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-23T08:17:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-06T14:00:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png\" \/>\n<meta name=\"author\" content=\"Unihost Support\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@unihost\" \/>\n<meta name=\"twitter:site\" content=\"@unihost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Unihost Support\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/\"},\"author\":{\"name\":\"Unihost Support\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/person\\\/bb5ae95f38577c920e6a7507888b715a\"},\"headline\":\"How to Install Odoo with Portainer (Docker)\",\"datePublished\":\"2025-10-23T08:17:10+00:00\",\"dateModified\":\"2026-11-06T14:00:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/\"},\"wordCount\":903,\"publisher\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot-from-2025-10-23-09-35-55.png\",\"articleSection\":[\"02. Dedicated servers\"],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/\",\"name\":\"Install Odoo with Docker and Portainer: PostgreSQL, Addons, Backups | Unihost\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot-from-2025-10-23-09-35-55.png\",\"datePublished\":\"2025-10-23T08:17:10+00:00\",\"dateModified\":\"2026-11-06T14:00:51+00:00\",\"description\":\"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#primaryimage\",\"url\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot-from-2025-10-23-09-35-55.png\",\"contentUrl\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot-from-2025-10-23-09-35-55.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-odoo-with-portainer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Unihost\",\"item\":\"https:\\\/\\\/unihost.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Help\",\"item\":\"https:\\\/\\\/unihost.com\\\/help\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Install Odoo with Portainer (Docker)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#website\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/\",\"name\":\"Unihost.FAQ\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/unihost.com\\\/help\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#organization\",\"name\":\"Unihost\",\"alternateName\":\"Unihost\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/minio.php?2026\\\/01\\\/minio.png\",\"contentUrl\":\"https:\\\/\\\/unihost.com\\\/help\\\/minio.php?2026\\\/01\\\/minio.png\",\"width\":300,\"height\":300,\"caption\":\"Unihost\"},\"image\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/unihost\\\/\",\"https:\\\/\\\/x.com\\\/unihost\",\"https:\\\/\\\/www.instagram.com\\\/unihost\\\/?hl=en\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/unihost-com\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCITKsxMDnslQY8brN3advgw\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/person\\\/bb5ae95f38577c920e6a7507888b715a\",\"name\":\"Unihost Support\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g\",\"caption\":\"Unihost Support\"},\"sameAs\":[\"https:\\\/\\\/unihost.com\\\/\"],\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/author\\\/support\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Install Odoo with Docker and Portainer: PostgreSQL, Addons, Backups | Unihost","description":"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/","og_locale":"en_US","og_type":"article","og_title":"Install Odoo with Docker and Portainer: PostgreSQL, Addons, Backups | Unihost","og_description":"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.","og_url":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/","og_site_name":"Unihost.FAQ","article_publisher":"https:\/\/www.facebook.com\/unihost\/","article_published_time":"2025-10-23T08:17:10+00:00","article_modified_time":"2026-11-06T14:00:51+00:00","og_image":[{"url":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png","type":"","width":"","height":""}],"author":"Unihost Support","twitter_card":"summary_large_image","twitter_creator":"@unihost","twitter_site":"@unihost","twitter_misc":{"Written by":"Unihost Support","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#article","isPartOf":{"@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/"},"author":{"name":"Unihost Support","@id":"https:\/\/unihost.com\/help\/#\/schema\/person\/bb5ae95f38577c920e6a7507888b715a"},"headline":"How to Install Odoo with Portainer (Docker)","datePublished":"2025-10-23T08:17:10+00:00","dateModified":"2026-11-06T14:00:51+00:00","mainEntityOfPage":{"@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/"},"wordCount":903,"publisher":{"@id":"https:\/\/unihost.com\/help\/#organization"},"image":{"@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#primaryimage"},"thumbnailUrl":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png","articleSection":["02. Dedicated servers"],"inLanguage":"en"},{"@type":"WebPage","@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/","url":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/","name":"Install Odoo with Docker and Portainer: PostgreSQL, Addons, Backups | Unihost","isPartOf":{"@id":"https:\/\/unihost.com\/help\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#primaryimage"},"image":{"@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#primaryimage"},"thumbnailUrl":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png","datePublished":"2025-10-23T08:17:10+00:00","dateModified":"2026-11-06T14:00:51+00:00","description":"Deploy Odoo Community on a VPS with the Unihost Portainer template: PostgreSQL container, master password, custom addons, HTTPS, backups and upgrades.","breadcrumb":{"@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#primaryimage","url":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png","contentUrl":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot-from-2025-10-23-09-35-55.png"},{"@type":"BreadcrumbList","@id":"https:\/\/unihost.com\/help\/installing-odoo-with-portainer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Unihost","item":"https:\/\/unihost.com\/"},{"@type":"ListItem","position":2,"name":"Help","item":"https:\/\/unihost.com\/help\/"},{"@type":"ListItem","position":3,"name":"How to Install Odoo with Portainer (Docker)"}]},{"@type":"WebSite","@id":"https:\/\/unihost.com\/help\/#website","url":"https:\/\/unihost.com\/help\/","name":"Unihost.FAQ","description":"","publisher":{"@id":"https:\/\/unihost.com\/help\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/unihost.com\/help\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/unihost.com\/help\/#organization","name":"Unihost","alternateName":"Unihost","url":"https:\/\/unihost.com\/help\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/help\/#\/schema\/logo\/image\/","url":"https:\/\/unihost.com\/help\/minio.php?2026\/01\/minio.png","contentUrl":"https:\/\/unihost.com\/help\/minio.php?2026\/01\/minio.png","width":300,"height":300,"caption":"Unihost"},"image":{"@id":"https:\/\/unihost.com\/help\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/unihost\/","https:\/\/x.com\/unihost","https:\/\/www.instagram.com\/unihost\/?hl=en","https:\/\/www.linkedin.com\/company\/unihost-com","https:\/\/www.youtube.com\/channel\/UCITKsxMDnslQY8brN3advgw"]},{"@type":"Person","@id":"https:\/\/unihost.com\/help\/#\/schema\/person\/bb5ae95f38577c920e6a7507888b715a","name":"Unihost Support","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/secure.gravatar.com\/avatar\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g","caption":"Unihost Support"},"sameAs":["https:\/\/unihost.com\/"],"url":"https:\/\/unihost.com\/help\/author\/support\/"}]}},"_links":{"self":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts\/19391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/comments?post=19391"}],"version-history":[{"count":12,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts\/19391\/revisions"}],"predecessor-version":[{"id":20565,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts\/19391\/revisions\/20565"}],"wp:attachment":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/media?parent=19391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/categories?post=19391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/tags?post=19391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}