Skip to main content

Odoo

image.png

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 Previos

Descargar imagenImagen

Repositorio de Docker Hub:

docker

Portainer- pullNuevo postgres docker pull odoo

Creando directorios«stack»

mkdir

Add -pva /var/data/odoo/{pgdata,html,config,addons}new chownstack -Rv 101:101Portainer /var/data/odoo/{html,config,addons}Documentation

&&

Web chmodeditor

-Rv

En 750Portainer /var/data/odoo/{html,config,addons}

«Stack»

agregamos nuevo usando el editor WEB pegando el contenido del fichero «docker-compose.yml» y el contenido del fichero de variables2.15-docker_add_stack_web_editor.gif

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

version: '3.1'
services:
  db:
    image: postgres:15
    restart: unless-stopped
    env_file:
      - stack.env
    volumes:
      - /var/data/odoo/pgdata:db:/var/lib/postgresql/data/pgdata
    networks:
      - backend
      
  web:
    image: odoo
    depends_on:container_name: -odoo
    dbrestart: unless-stopped
    env_file:
      - stack.env
    depends_on:
      - db
    volumes:
      - /var/data/odoo/html:/var/lib/odoo
      - /var/data/odoo/config:/etc/odoo
      - /var/data/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

image.png

En este punto ya puedes ir a http://my.docker.ip.address:8069

Publicando con Traefik

Para publicar el contenedor detrás del proxy proxy Traefik, modifica el fichero fichero docker-compose.yml 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


image.png

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 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 fichero docker-compose.yml la siguiente línea para añadir el «middleware» «authelia@file»

- traefik.http.routers.odoo.middlewares=authelia@file