Odoo19
OfficialDocker app from Eurotimmy's Repository
Overview
Odoo is an open-source suite of integrated business applications that includes various modules for different business functions such as accounting, project management, inventory management, human resources, and more. It provides a comprehensive and modular solution for businesses to manage and streamline their processes.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP
:: IMPORTANT NOTES ::
*** BETA - NOT YET TESTED ON Unraid ***
Do NOT use with production data without testing first. Provided as-is with no warranty; use at your own risk. The template author accepts no responsibility for any loss of data. Keep backups and do your own due diligence.
Odoo 19 requires PostgreSQL 13 or later. A separate PostgreSQL container is required.
See the README.md file at https://github.com/Eurotimmy/Unraid-templates/blob/main/Odoo19/README.md
Readme
View on GitHubNotes for using Odoo19 on an Unraid server via the CA installation
[!CAUTION] BETA – NOT YET TESTED ON UNRAID. DO NOT USE WITH PRODUCTION DATA WITHOUT TESTING FIRST.
This Odoo19 template is new and has not been fully tested on Unraid. It is based on the earlier Odoo templates and the official Odoo 19 Docker image. Test it on a separate, non-production setup first, and keep backups of your PostgreSQL database and filestore.
These templates and notes are provided as-is, free of charge, with no warranty of any kind. You use them at your own risk. I accept no responsibility for any loss of data, downtime or other issues arising from their use, or for any due diligence you choose not to do beforehand.
Please report anything that does or doesn't work in the support thread.
- Installing the Odoo container in Unraid... the template defaults are expected to work as-is (as they did for Odoo18), but this has not yet been confirmed for Odoo19
- Odoo19 requires PostgreSQL 13 or later (PostgreSQL 16 or 17 from CA is a good choice)
- Installing PostgreSQL was also straight-forward and you'll only need to note down the settings you select here to transpose into the 'odoo.conf' file (detailed below)
- The support thread for this container is located in the Unraid Forums here, please post any questions or contributions
IMPORTANT NOTE 
Permissions on the mapped volumes
I needed to use the Extra Parameters in the Unraid template 'ADVANCED VIEW', with the value set as --user=100:101 due to having some issues with the container being able to write to the 3 mapped volumes
The process I followed was to check the uid and gid in the Odoo19 container with docker exec -it Odoo19 sh -c 'echo "uid=$(id -u) gid=$(id -g)"' which returned uid=100 gid=101
I then manually made the folder I had seen in the error logs with mkdir -p /mnt/user/appdata/odoo19/data/sessions
Then to CHOWN the folders with chown -R 100:101 /mnt/user/appdata/odoo19
And, finally CHMOD the folders with chmod -R 775 /mnt/user/appdata/odoo19
I was good from the next restart of the Odoo19 container
After installing Odoo, return to Unraid to view the container template in 'ADVANCED VIEW'
We will need to make a change to the Post Arguments section to avoid having a security exposure open via a default Admin account
The Post Arguments need to be removed after the initial first successful boot
- I have used the
-i basecommand as Odoo (17 & 18) wouldn't initialise its DB during its first startup without it - The
-i basecommand must be removed to make for a safe environment
DEMO DATA (changed in Odoo19) 
- Unlike Odoo17 / Odoo18, Odoo19 does not install demo data by default, so the default
-i basegives you a clean database - If you want demo data (handy for a test instance), change your
Post Argumentsto be-i base --with-demo --stop-after-init - This will initialise Odoo19 with the demo data, and then stop Odoo19 from running.
- Please restart your container after removing
-i base --with-demo --stop-after-initfrom yourPost Arguments - Alternatively, set
with_demo = Trueinodoo.confbefore the first start-up
INSTALLATION STEPS 
The odoo.conf file needs to be copied in to the
Config Locationpath on Unraid server
TheConfig Locationpath is selected by you in the Odoo19 settings when installing in Unraid CA
Your typicalConfig Locationpath may be at/mnt/user/appdata/odoo19/configMy odoo.conf file if you'd like to use it
For my path (above), within the Unraid Shell / CLI:
-
cd /mnt/user/appdata/odoo19/config -
wget https://raw.githubusercontent.com/Eurotimmy/unraid-templates/main/Odoo19/odoo.conf -
nano odoo.conf
- The
odoo.conffile needs to be edited and then your Odoo Docker container needs to be started / restarted:
admin_passwd = (This password will become hashed on first start-up, for security reasons)
db_host = (Use the IP address assigned to the PostgreSQL container, in the 'Docker' tab)
db_port = (Enter what your PostgreSQL 'Container Port' is set to, from your PostgreSQL install)
db_user = (Enter what your PostgreSQL 'POSTGRES_USER' is set to, from your PostgreSQL install)
db_password = (Enter what your PostgreSQL 'POSTGRES_PASSWORD' is set to, from your PostgreSQL install)
db_name = (Enter what your PostgreSQL 'POSTGRES_DB' is set to, from your PostgreSQL install)
- Once your container starts, open the Odoo Web UI from your Odoo icon
Change the admin password straight away (Settings > Users)
- Username: admin
- Password: admin
NPM (Nginx Proxy Manager) - Reverse Proxy settings 
I am using NPM to reverse proxy my Odoo instance via my own domain name
You will need to edit your odoo.conf file (in your Config Location) to include proxy_mode = True
In NPM on my odoo.example.com domain I use the following in my location settings (within the 'Advanced' tab)
proxy_pass $forward_scheme://$server:$port;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
}
If you run Odoo19 with workers above 0 (multi-process mode), the live chat / notification websocket is served on port 8072.
Map the Live Chat / WebSocket Port in the template (ADVANCED VIEW) and add a second location in NPM:
location /websocket {
proxy_pass $forward_scheme://$server:8072;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
With workers = 0 (the default) you don't need this.
Upgrading from Odoo18 
- Odoo major versions cannot be upgraded by just changing the image tag. Pointing an Odoo18 database at Odoo19 will not work
- Install Odoo19 as a separate container with its own appdata folders and its own (new) database
- To migrate existing data use the official Odoo Upgrade service or the community OpenUpgrade project, then restore into Odoo19
- Any custom / community addons in
extra-addonsmust be Odoo 19 compatible versions - Back up your PostgreSQL database and filestore before trying any upgrade
Additional Resources 
Theres a great GitHub Gist here with well documented options you can use in the odoo.conf file if you want greater control
Requirements
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allLinks
Details
Runtime arguments
- Web UI
http://[IP]:[PORT:8069]- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--user=100:101
Template configuration
Port to access the Odoo web interface
- Target
- 8069
- Default
- 8069
- Value
- 8069
Only needed if you set workers above 0 in odoo.conf (multi-process mode). Route /websocket to this port in your reverse proxy.
- Target
- 8072
- Default
- 8072
Odoo filestore (attachments, sessions, etc.)
- Target
- /var/lib/odoo
- Default
- /mnt/user/appdata/odoo19/data
- Value
- /mnt/user/appdata/odoo19/data
Directory containing odoo.conf
- Target
- /etc/odoo
- Default
- /mnt/user/appdata/odoo19/config
- Value
- /mnt/user/appdata/odoo19/config
Custom/community addons (must be Odoo 19 compatible)
- Target
- /mnt/extra-addons
- Default
- /mnt/user/appdata/odoo19/extra-addons
- Value
- /mnt/user/appdata/odoo19/extra-addons