Odoo

Odoo es un software de ERP integrado. Cuenta con una versión "comunitaria" de código abierto bajo licencia LGPLv3 y una versión empresarial bajo licencia comercial que complementa la edición comunitaria con características y servicios comerciales y desarrollada por la empresa belga Odoo S.A.
Enlaces de interés
Open Source ERP and CRM | Odoo
Requisitos
- Docker instalado siguiendo los pasos de instalar
- Portainer configurado siguiendo los pasos de instalar portainer.
- NGINX Proxy manager siguiendo los pasos de instalar NGINX Proxy Manager. (opcional)
- Traefik configurado siguiendo los pasos de instalar Traefik. (opcional)
Imagen
Repositorio de Docker Hub:
Portainer- Nuevo «stack»
Add a new stack – Portainer Documentation
Web editor
En Portainer «Stack» agregamos nuevo usando el editor WEB pegando el contenido del fichero «docker-compose.yml» y el contenido del fichero de variables
Fichero de variables «.env»
# postgresql environment variables
POSTGRES_DB=postgres
POSTGRES_PASSWORD=g88E56an^ztwMW
POSTGRES_USER=odoo
PGDATA=/var/lib/postgresql/data/pgdata
# odoo environment variables
HOST=db
USER=$POSTGRES_USER
PASSWORD=$POSTGRES_PASSWORD
# traefik variable
DOMAIN=mydomain.com
Fichero docker-compose
services:
db:
image: postgres:15
restart: unless-stopped
env_file:
- stack.env
volumes:
- db:/var/lib/postgresql/data/pgdata
networks:
- backend
web:
image: odoo
container_name: odoo
restart: unless-stopped
env_file:
- stack.env
depends_on:
- db
volumes:
- html:/var/lib/odoo
- config:/etc/odoo
- addons:/mnt/extra-addons
ports:
- "8069:8069"
networks:
- backend
- proxy
volumes:
db:
html:
config:
addons:
networks:
backend:
proxy:
external: true
Portainer- Agregar nuevo «stack»
Add a new stack – Portainer Documentation
Web editor
En Portainer «Stack» agregamos nuevo usando el editor WEB pegando el contenido del fichero «docker-compose.yml» y el contenido del fichero «.env» modificando los valores necesarios
En este punto ya puedes ir a http://my.docker.ip.address:8069
Publicando con Traefik
Para publicar el contenedor detrás del proxy Traefik, modifica el fichero docker-compose.yml añadiendo las líneas correspondientes:
version: '3.1'
services:
db:
image: postgres:15
env_file:
- stack.env
volumes:
- /var/data/odoo/pgdata:/var/lib/postgresql/data/pgdata
networks:
- backend
labels:
- traefik.enable=false
web:
image: odoo
depends_on:
- db
env_file:
- stack.env
volumes:
- /var/data/odoo/html:/var/lib/odoo
- /var/data/odoo/config:/etc/odoo
- /var/data/odoo/addons:/mnt/extra-addons
networks:
- backend
- traefik_public
labels:
- traefik.enable=true
- traefik.http.routers.odoo.rule=Host(`odoo.$DOMAIN`)
- traefik.http.routers.odoo.tls=true
- traefik.http.routers.odoo.tls.certresolver=letsencrypt
networks:
backend:
traefik_public:
external: true

Protegiendo el «stack»
Solo IPs privadas
Para proteger el «stack» de manera que solo accedan las IPs de red privada, modifica en la sección de «labels» del fichero docker-compose.yml la siguiente línea para añadir el «middleware» «privateIPs@file»
- traefik.http.routers.odoo.middlewares=privateIPs@file
Authelia
Para proteger el «stack» con doble factor de autenticación con «Authelia«, modifica en la sección de «labels» del fichero docker-compose.yml la siguiente línea para añadir el «middleware» «authelia@file»
- traefik.http.routers.odoo.middlewares=authelia@file
