---
title: Installing Odoo on Kubernetes with the Scaleway Easy Deploy feature
description: Discover how to effortlessly install Odoo, a powerful suite of open-source business apps, on Scaleway Kubernetes Kapsule with Easy-Deploy in this tutorial.
tags: Odoo easy-deploy docker
hero: assets/scaleway_odoo_easydeploy.webp
dates:
  validation: 2025-04-08
  posted: 2020-12-01
  validation_frequency: 12
products:
  - instances
  - kubernetes
  - container-registry
  - postgresql-and-mysql
difficulty: beginner
usecase:
  - application-hosting
ecosystem:
  - third-party
---
import image from './assets/scaleway-registry_home.webp'
import image2 from './assets/scaleway-create-namespace.webp'
import image3 from './assets/scaleway-namespace-created.webp'
import image4 from './assets/scaleway-image-pushed.webp'
import image5 from './assets/scaleway-kapsule_splashscreen.webp'
import image6 from './assets/scaleway-create-cluster.webp'
import image7 from './assets/scaleway-cluser-created.webp'
import image8 from './assets/scaleway-easy-deploy-01.webp'
import image9 from './assets/scaleway-easy-deploy-03.webp'
import image10 from './assets/scaleway-easy-deploy-04.webp'
import image11 from './assets/scaleway-db-create-instance.webp'
import image12 from './assets/scaleway-create-db1.webp'
import image13 from './assets/scaleway-create-db2.webp'
import image14 from './assets/scaleway-create-db3.webp'
import image15 from './assets/scaleway-db-created.webp'
import image16 from './assets/scaleway-edit-cluster.webp'
import image17 from './assets/scaleway-edit-cluster2.webp'
import image18 from './assets/scaleway-expose-port.webp'
import image19 from './assets/scaleway-edit-container2.webp'
import image20 from './assets/scaleway-update-container.webp'
import image21 from './assets/scaleway-load-balancer1.webp'
import image22 from './assets/scaleway-load-balancer2.webp'
import image23 from './assets/scaleway-odoo-landing1.webp'
import image24 from './assets/scaleway-odoo-landing2.webp'
import image25 from './assets/scaleway-odoo-demo.webp'

import Requirements from '@macros/iam/requirements.mdx'


Are you prepared to elevate your business operations using the capabilities of open-source technology? Look no further than Odoo! This collection of business applications, coded in Python, encompasses a wide range of functionalities, including website development, e-commerce, HR management, and accounting, all conveniently bundled into an accessible and cost-effective package. With a user base exceeding 2 million worldwide, enterprises of all scales are capitalizing on Odoo's harmonious integration and modular structure to streamline their processes and enhance their profitability.

But how can you initiate your Odoo journey? Our guide will walk you through the process of setting up Odoo on a [Scaleway Kubernetes Kapsule](/kubernetes/quickstart/) using the [easy-deploy](/kubernetes/how-to/enable-easy-deploy/) feature, easily accessible right from the [Scaleway console](https://console.scaleway.com). In minimal time, you will have Odoo up and operational, primed to advance your business endeavors. Just adhere to the steps outlined in the sidebar on the right to get started.

<Requirements />

- A Scaleway account logged into the [console](https://console.scaleway.com)
- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization
- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/)
- A valid [API key](/iam/how-to/create-api-keys/)
- Installed [Docker](https://www.docker.com/) on your local computer

## Creating a Scaleway Container Registry namespace

1. Go to the **Container Registry** dashboard in the [Scaleway console](https://console.scaleway.com), and click **Create a namespace**.
    <Lightbox image={image} alt="" />
2. Complete the required information:
    - **Namespace name**: any unique name of your choice (must contain only alphanumeric characters, dots, and dashes)
    - **Namespace description**: a description for your Namespace
    - **Region**: a geographical region for your namespace.
    - **Privacy Policy**: you must select **Public** (currently the Easy-Deploy feature only works on public images)
3. Check the summary, then click **Create a namespace**.
    <Lightbox image={image2} alt="" />

    The following screen displays:

    <Lightbox image={image3} alt="" />

## Using Docker to get the official Odoo image and pushing it to your Scaleway Container Registry

1. Open a terminal window on your local machine, and log in to your namespace with Docker.
    <Message type="note">
      Replace `odoo-tutorial-namespace` with the name of your namespace and $SCW_SECRET_KEY with the corresponding [secret key](/iam/how-to/create-api-keys/).
    </Message>

    ```
    docker login rg.fr-par.scw.cloud/odoo-tutorial-namespace -u nologin -p $SCW_SECRET_KEY
    ```
2. Pull the latest official Odoo image.
    ```
    docker pull odoo:latest
    ```
3. Tag the image, ready to push it to your Container Registry.
    ```
    docker tag odoo:latest rg.fr-par.scw.cloud/odoo-tutorial-namespace/odoo:latest
    ```
4. Push the image to your Container Registry.
    ```
    docker push rg.fr-par.scw.cloud/odoo-tutorial-namespace/odoo:latest
    ```

    This process takes some minutes to complete.
5. Wait a minute, then go to the Container Registry dashboard to make sure the image has been successfully created.
    <Lightbox image={image4} alt="" />

    Now that the Odoo image is in our Container Registry, we can deploy it with Kubernetes.

## Creating a Kubernetes Kapsule cluster and deploying Odoo

1. Go to the Kubernetes dashboard in the Scaleway console.
2. Click **Create a cluster**.
    <Lightbox image={image5} alt="" />
3. Enter the required information:
    - **Cluster type**: select one between [Kapsule](/kubernetes/concepts/#kubernetes-kapsule) or [Kosmos (Multi-AZ)](/kubernetes/concepts/#kubernetes-kosmos)
    - **Cluster name**: any identifying name of your choice (must contain only alphanumeric characters and dashes)
    - **Cluster description** a description for your cluster
    - **Region**: a geographical region for your cluster.
    - **Node type**: the type of Instance you want for your cluster
    - **Node options**: choose your required options, or leave at the default values

    <Lightbox image={image6} alt="" />
4. Check the summary, then click **Create a cluster**.

    A process screen displays to inform you that your cluster is being created. You may also see an additional warning that some of your pools are not yet ready. After a few minutes, your cluster should be up and running and ready to use.

    <Lightbox image={image7} alt="" />
5. Click the **Easy Deploy** tab on the cluster information page. Select the **Registry** option.
    <Lightbox image={image8} alt="" />
6. Select the namespace, the container, and its version to deploy:
    <Lightbox image={image9} alt="" />
7. Select the **Deployment** type for the container.
    <Lightbox image={image10} alt="" />

    You can leave the other settings at the default values; we will return to them later.
8. Enter a name and a namespace for your application.
    - **Container name**: any identifying name of your choice for your container (must contain only alphanumeric characters and dashes)
    - **Kubernetes namespace** any identifying name of your choice for the Kubernetes namespace on which your container will run (must contain only alphanumeric characters and dashes)
9. Click **Deploy a container**. The Easy Deploy overview page displays.

## Installing a PostgreSQL database

The Odoo image [documentation](https://hub.docker.com/_/odoo) specifies that it requires a running PostgreSQL server, which we will now create:

1. Go to the **Database** dashboard in the Scaleway console.
2. Click **Create an Instance**.
    <Lightbox image={image11} alt="" />
3. Enter your Database Instance information. Select **PostgreSQL-12** as your database engine. Select your **region** and **node type** (we recommend minimum `DB-DEV-L`).
    <Lightbox image={image12} alt="" />
4. Enter a **username** and **password** in the **Credentials** section. Then, enter a **name** for your Database Instance. Note all of these down, as you will need them in a future step.
    <Lightbox image={image13} alt="" />
5. Check the summary and click **Create an Instance**.
    <Lightbox image={image14} alt="" />

    A screen reports the progress of the Database creation. After a minute or two, a screen similar to the following should confirm the creation of your Database Instance.

    <Lightbox image={image15} alt="" />
6. Take note of the endpoint information, as you will need it in the next step.

## Connecting the Odoo application to the PostgreSQL server

The Odoo image [documentation](https://hub.docker.com/_/odoo) tells us that by modifying the application's environment variables `HOST`, `PORT`, `USER`, and `PASSWORD` we can easily connect it to a PostgreSQL server. We will expose our Odoo application with a Load Balancer, and set these environment variables so that it can connect to our newly created database.

1. Go to the **Kubernetes** dashboard in the Scaleway console and select the cluster you created and deployed your Odoo image on.
    <Lightbox image={image16} alt="" />
2. Click the **Easy Deploy** tab. Then click <Icon name="[more]" /> **> Edit** next to your Odoo container.
    <Lightbox image={image17} alt="" />
3. Click <Icon name="[toggle]" /> to **Add Load Balancer**.
4. Under **Container port to expose**, enter `80:8069` and click **Add**.

    Your Load Balancer will map incoming traffic ports (80 is the default for `http`, and you can use 443 for `https`) to your exposed container port (8069 being the default Odoo port).

    <Lightbox image={image18} alt="" />
5. Leave the **Number of replicas** option at 1 (default) to avoid session token conflicts.
6. Click **Add Variable** under **Environment Variables**. Add four variables.
    <Lightbox image={image19} alt="" />
7. Add the following information for your variables.
    - **USER**: the username that you set when creating your PostgreSQL database
    - **PASSWORD**: the password that you set when creating your PostgreSQL database
    - **HOST**: the first part of your database's endpoint, which you previously noted down. If your endpoint was `123.456.78.91:1011`, then the host is `123.456.78.91`
    - **PORT**: the second part of your database's endpoint. If your endpoint was `123.456.78.91:1011`, then the port is `1011`
8. Click **Update Container**. The container information page displays.
    <Lightbox image={image20} alt="" />
9. Click **Load Balancer** on the side menu of the Scaleway console. A list of your Load Balancers displays.
    <Lightbox image={image21} alt="" />
10. Click the name of the Load Balancer you added. Note the Load Balancer IP.
    <Lightbox image={image22} alt="" />

## Launching Odoo in a browser

1. Enter the `Load Balancer IP` in a new browser window. It will take you to the Odoo landing page:
    <Lightbox image={image23} alt="" />
2. Enter the required information:
    - **Master Password**: Odoo generates and auto-completes a master password for you (displayed at the top of the page), which you can change if you wish
    - **Database Name**: Your choice of name
    - **Email**: Your email address
    - **Password**: Choose a password
    - **Phone Number**: Your phone number
    - **Language**: Your choice of language
    - **Country**: Your country
    - **Demo data**: If you check this box, the application will be populated with demo data (which you can later overwrite with your own data) as a guide.

    <Lightbox image={image24} alt="" />

    The application may take a few minutes to launch.

    <Lightbox image={image25} alt="" />

You can now start installing apps, configuring your settings, and using Odoo. Check out the [official Odoo documentation](https://www.odoo.com/documentation/16.0/) for more help.

<Message type="note">
  Keep in mind that the Easy Deploy feature was designed to help you get started with Kubernetes. We do not recommend using this feature for production, firstly because it requires your container image to be publicly available, i.e., without access restrictions. In addition, it does not allow you to perform tasks such as adding persistent volumes and linking multiple containers, for example, without manually adjusting specific settings.
</Message>