DOCKER Odoo Synology

Installing Odoo14 on a Synology (using Docker)

In this blog I will show you how to install Odoo version 14 on your Synology NAS. I have another post where I installed Odoo 13 on Synology and this is an updated version for the version 14, posted in october 2020.

Docker is amazing. Odoo is also amazing. It’s a cool open source ERP project which keeps adding cool functionality, initially known as openERP.

They also have a paid solution which is hosted at their servers and you will get access to all functionallity with a Mobile App.

The free version however is fully functional and great to use as a test, development or sandbox environment.

Lets get started.

Step 1. Login to you Synology NAS

Log into your synology nas. Do I need to say more? Business As Usual I expect :-).

Loginscreen Synology NAS

Step 2. Install or Start Docker

If you have an older NAS (for this blog post I’m using the Synology 710+) you have to install the Docker package first. Open the Package Center, search for docker and install the package.

Synology NAS Package Center

If you have a modern Synology NAS you will have the Docker package installed per default. You can then just hit Menu, next Docker. The dockerscreen will now appear. If you cannot find the Docker Package, please check if you NAS is supported on the Synology website.

Synology Docker Management Screen

Step 3. Download Docker Images

The Odoo installation will consist of two docker containers. One container will hold the database and the second container will hold the Application. The data will be persistent on you NAS. Synology has created a Docker share where you can store data.

We can start a container from an image. Lets start by downloading the images. We do this by searching the docker hub. This is configured by default in your Synology.

Download the odoo image:

Search for odoo in the docker hub

Click on download to select the version you want. In our case we want version Odoo version 14.

Download Odoo version 14 Image

Next we will search in the Register for ‘postgres’. Postgres is an open source database solution that is popular among many projects.

Search for it and press Download. For Postgres we will choose the latest version (latest Tag).

Download latest version of Postgres

We are now complete and have downloaded everything we need to our Synology NAS, at least, when the download is finished. You can monitor that in the images tab.

Overview of downloaded images that you can use for creating a container

Lets start and spin up some containers :-). A container is created from an image. Adding some parameters can customize it. Once created you can start and stop it individually.

Step 4. Start Database – Postgres

In the image tab, select Postgres, then click Launch. The first thing we need to do is give it a good name. We don’t have to expose ports because this database will not be reachable outside the Docker network.

Give the container a good name

Next we can provide limitations to the container, you can play around with that later, or not. You can also create a shortcut on the desktop. You can do that and that is a perfect assignment for when you want to do it again.

Limit the container and create a shortcut

On the summary screen, check the ‘Run this container after the wizard is finished’

Create database container Summary

Before we can apply we need to add some environment variables. This will configure the database to your needs. In this example we set three variables: POSTGRES_USER. POSTGRES_PASSWORD and POSTGRES_DB. These are the default settings of the Odoo image that we are using so we don’t need this configuration there.

Setup postgres environment variables

If you want you data to persist (meaning it will not be gone when you delete this container) you can add a volume within Advance Settings. Below is an example where the data will be stored in /docker/odoo-pgdata on the NAS. If you just want to play around, leave it as it is.

Mount a file inside the docker container

For now we will leave that so we go to the summary postgres screen.

Postgress Summary Screen

After clicking apply, the container will try to start immediately. You can check the status of the container going to the Container tab.

Overview of running postgres container

This all seems oke, and we now have successfully installed a postgress database with (maybe) no knowledge of postgres, linux or docker. How great is that?

Step 5. Start Odoo 14

Now that you already had such a thorough walkthrough, the Odoo container we’ll do a little bit more compact. Click on the image and press Launch.

To be able to access the container we need to expose a port from inside the container to the outside. Add 8069 as local and container port.

Create the Odoo container

Skip step 2 of the Docker wizard. After clicking next we can start configuring the advanced settings.

The odoo container will look for the hostname db for the connection. It’s built into the odoo image. However our container is called odoo-postgres so we have to make a link in the wizard.

Creating a link from db to odoo-postgres

With this link created the container is almost ready to start. Check the ‘Run this container after the wizard is finished’ and press apply.

Container Odoo 14 Summary

To monitor the status of the odoo application go to the container tab. The container and the application should start in a couple of seconds.

Overview Docker Containers

We are now done with out activities. We have now installed a postgres database and an Odoo container that can connect to the database by providing a link to it. You did this without the need to know anything about linux, databases or installation scripts :-). Very good.

Step 6. Test Odoo Installation

Time to test the application. Goto the ip address of you Synology and add goto the exposed port. In our case this is 8069. After a clouple of seconds you should get the following screen where you can start you Odoo adventure.

The first time it failed with me with that port, what I did was have docker map the ports, once that worked, I put it back to the 8069 port.

Odoo 14 First time start page

Further reading

More information on the specific docker images and their parameters can be found below.

Docker images

Links to the different docker images

Hope you enjoyed this, step by step instruction to get up and running with Odoo and Docker. Did you try it, did I mis a step, let me know in the comments.

While you are here, drop your email address so I can mail you upon a new awesome post.

Subscribe to my newsletter!

By Stuart Eight

Love automation and virtualisation. Have a passion for programming.

7 replies on “Installing Odoo14 on a Synology (using Docker)”

Hi stuart,

I tried to follow your steps installing docker, postgres and odoo 14 on synology nas. My synology is DS1817+ . After i install postgres in docker, i start the container it will automaticly closed. Any solution for this problem?

Thank you

Try not touse the Execution commands that you see on the postgre config. do not use them.
I had the same issue…I tryed it without this “/usr/bin/……
Now it works.

But now I have the problem, after creat ddbb under oddo web, the app asked for login…did it…..but: the web site is all time blank!, no reaction anymore…..


Even it’s been my first time configuring it, following your steps made it easy and all is working perfectly.

I have a question though:

How can I make backups of Odoo configurations and contents (database…).

I’ve linked the postgres to a folder inside docker, but I’ve not done it with odoo.

Is it enough to backup the linked database folders?

And a comment on the tutorial, there are spaces after the _ in the environment variables in your tutorial (marked in green).

Thank you in advance!

I think for the database it’s oke. For the odoo you could map the following directories as well:

– /docker/odoo-web-data:/var/lib/odoo
– /docker/odoo-config:/etc/odoo
– /docker/odoo-addons:/mnt/extra-addons

Hope this helps a bit.

Thank you for your great information. You mentioned that you only would recommed the self hosted odoo for development and/or testing. That implies that you wouldn’t recommend it for a business solution. Why is that?

Hi Manuel,

In my reply to Joan I already added some additons for making sure you can safeguard your installation. I think you can use it for production if you have set your synology up in a production manner. Off course this depends on the use case.

A few examples:
– have a mirror of the data in case a disk fails
– have a backup in case someone deletes the data
– have all connections work through SSL so it’s secure
– have a second backup in case the synology burns

If you set this up, at least the first 3 items I think you should be oke to run it on your synology for lots of use cases.

Kind regards,

Leave a Reply

Your email address will not be published. Required fields are marked *