23 diciembre, 2025

Cómo instalar Odoo en tu ordenador con Linux (servidor local)

Por redacción puntocomunica
Share

Si estás buscando montar un sistema de gestión empresarial completo en tu equipo local, Odoo es una excelente opción. Es un software de código abierto que te permite manejar desde contabilidad hasta inventario, ventas y recursos humanos, todo en un mismo lugar. Aunque pueda parecer intimidante al principio, instalarlo en Linux no es tan complicado como parece. Vamos a hacerlo paso a paso. Y si quieres ver algunas anotaciones y ejemplos, navega hasta NOTAS.

Antes de empezar: lo que necesitas saber

Primero, una aclaración importante. Aunque hayas oído hablar de instalar aplicaciones web con LAMP (Linux, Apache, MySQL y PHP), Odoo funciona de manera diferente. En lugar de Apache, Odoo tiene su propio servidor web integrado. En vez de MySQL, utiliza PostgreSQL, una base de datos muy potente. Y está programado en Python, no en PHP. Así que olvídate del stack LAMP tradicional, aquí vamos con otra receta.

Durante la instalación crearemos dos usuarios diferentes llamados «odoo», y esto puede causar confusión:

  • Usuario odoo de PostgreSQL: es el usuario de la base de datos y SÍ necesita contraseña
  • Usuario odoo del sistema Linux: es el usuario que ejecutará el servicio y NO necesita contraseña

Tenerlo claro desde el principio te ahorrará dolores de cabeza.

Preparando el terreno

Lo primero que vamos a hacer es asegurarnos de que tu sistema está actualizado. Abre una terminal y ejecuta:

sudo apt update
sudo apt upgrade -y

Esto descargará e instalará las últimas actualizaciones disponibles para tu sistema. Es como hacer una limpieza general antes de empezar a cocinar.

Instalando la base de datos

Odoo necesita una base de datos para guardar toda su información. Vamos a instalar PostgreSQL:

sudo apt install postgresql postgresql-client -y

Creando el usuario de PostgreSQL (con contraseña)

Ahora viene la parte importante: crear el usuario odoo en la base de datos. Vamos a usar la forma más directa para evitar problemas:

sudo -u postgres psql -c "CREATE USER odoo WITH CREATEDB PASSWORD 'odoo123';"

Cambia ‘odoo123’ por la contraseña que quieras usar. Apúntala bien porque la necesitarás después en el archivo de configuración.

Nota importante: Puede que veas un mensaje como «could not change directory to /root: Permiso denegado«. No te preocupes, es normal y no afecta al funcionamiento. El comando se ejecuta correctamente.

Verificar que el usuario se creó correctamente

Para asegurarte de que todo salió bien:

sudo -u postgres psql -c "\du"

Deberías ver algo así:

Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
odoo | Create DB | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Si ves «odoo» con el atributo «Create DB», ¡perfecto! Ya tienes el usuario de base de datos listo.

Si algo salió mal con la contraseña

Si por alguna razón el usuario se creó pero sin contraseña, o quieres cambiarla, simplemente ejecuta:

sudo -u postgres psql -c "ALTER USER odoo WITH PASSWORD 'tu_nueva_contraseña';"

Esto establece o cambia la contraseña del usuario odoo en PostgreSQL sin complicaciones.

Resumen de lo que acabas de hacer

En este punto ya tienes:

  • PostgreSQL instalado y ejecutándose
  • Usuario «odoo» en PostgreSQL con contraseña y permisos para crear bases de datos

Estos son los cimientos. Ahora vamos a construir el resto.

Instalando las dependencias del sistema

Odoo necesita un montón de herramientas y bibliotecas para funcionar correctamente. Piénsalo como los ingredientes que necesitas tener en la despensa antes de cocinar. Vamos a instalarlos todos de una vez:


sudo apt install git python3-pip python3-dev python3-venv \
libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev \
pkg-config libtiff5-dev libjpeg-dev libopenjp2-7-dev zlib1g-dev \
libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev \
libfribidi-dev libxcb1-dev libpq-dev -y

Sí, es una lista larga. Estas bibliotecas se encargan de cosas como procesar imágenes, manejar XML, conectarse a directorios LDAP y otras funciones que Odoo utiliza internamente.

Creando un usuario del sistema para Odoo

Por seguridad, no queremos que Odoo se ejecute como el usuario root (el administrador del sistema). Vamos a crear un usuario específico del sistema:

sudo adduser --system --home=/opt/odoo --group odoo

Este comando crea un usuario llamado «odoo» cuya carpeta personal estará en /opt/odoo. Es ahí donde vivirá nuestra instalación.

Importante: Este usuario del sistema NO tiene ni necesita contraseña. Es diferente del usuario odoo de PostgreSQL que creamos antes. Este usuario solo sirve para ejecutar el servicio de Odoo de forma segura.

Descargando Odoo

Ahora viene la parte emocionante: descargar el código de Odoo. Vamos a usar Git para clonar el repositorio oficial. En este ejemplo usaremos la versión 17.0, pero puedes cambiar el número de versión según tus necesidades.

Cambiarse al usuario odoo del sistema

Para descargar Odoo, necesitamos trabajar como el usuario odoo del sistema:

sudo su - odoo -s /bin/bash

Importante: Este comando te pedirá tu contraseña de usuario normal (la que usas para hacer sudo), NO la contraseña del usuario odoo (que no tiene). Es tu sistema verificando que tienes permisos para cambiar de usuario.

Tu prompt debería cambiar de algo como:

tu_usuario@maquina:~$

A algo como:

odoo@maquina:~$

Si ves «odoo@» al principio, significa que ya estás dentro del usuario odoo. Si ya estás dentro, no vuelvas a ejecutar el comando o te pedirá una contraseña que no existe.

Descargar el código

Ahora, estando como usuario odoo, descarga Odoo:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo/odoo17

El parámetro –depth 1 hace que la descarga sea más rápida porque solo trae la última versión del código, sin todo el historial de cambios. El –branch 17.0 especifica que queremos la versión 17.

La descarga puede tardar varios minutos. Verás mensajes como:

Cloning into '/opt/odoo/odoo17'…
remote: Enumerating objects: 50000, done.
remote: Counting objects: 100% (50000/50000), done.

Una vez terminado, sal del usuario odoo:

exit

Tu prompt debería volver a mostrar tu usuario normal.

Instalando las dependencias de Python

Odoo está escrito en Python y necesita varios paquetes adicionales. Afortunadamente, los desarrolladores de Odoo han preparado una lista con todo lo necesario:

sudo pip3 install -r /opt/odoo/odoo17/requirements.txt

Este comando lee el archivo requirements.txt e instala automáticamente todas las bibliotecas de Python que Odoo necesita. Puede tardar unos minutos.

Preparando las carpetas de configuración

Necesitamos crear dos carpetas importantes:

sudo mkdir /etc/odoo
sudo mkdir /var/log/odoo
sudo chown odoo:odoo /var/log/odoo

La primera carpeta (/etc/odoo) guardará el archivo de configuración. La segunda (/var/log/odoo) almacenará los registros de actividad del sistema. El último comando asegura que el usuario odoo pueda escribir en la carpeta de logs.

Configurando Odoo

Ahora vamos a crear el archivo de configuración, que es como el manual de instrucciones que Odoo leerá cada vez que arranque:

sudo nano /etc/odoo/odoo.conf

Dentro de este archivo, copia el siguiente contenido:

[options]
admin_passwd = admin123
db_host = localhost
db_port = 5432
db_user = odoo
db_password = tu_contraseña_postgresql
addons_path = /opt/odoo/odoo17/addons
logfile = /var/log/odoo/odoo.log

Veamos qué significa cada línea:

  • admin_passwd: esta es la contraseña maestra para gestionar bases de datos desde la interfaz web. Cámbiala por algo seguro.
  • db_host y db_port: le dicen a Odoo dónde encontrar PostgreSQL (en este caso, en tu mismo ordenador, puerto 5432).
  • db_user y db_password: las credenciales del usuario de PostgreSQL que creamos antes.
  • addons_path: la ruta donde están los módulos de Odoo.
  • logfile: dónde se guardarán los registros.

Guarda el archivo (en nano, presiona Ctrl+X, luego Y y Enter).

Arrancando Odoo por primera vez

Es momento de la verdad. Vamos a iniciar Odoo manualmente para ver si todo funciona:

sudo su - odoo -s /bin/bash
cd /opt/odoo/odoo17
python3 odoo-bin -c /etc/odoo/odoo.conf

Si todo va bien, verás un montón de mensajes en la terminal y, al final, algo como «odoo.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069». Eso significa que Odoo está funcionando.

Abre tu navegador web favorito y ve a http://localhost:8069. Deberías ver la pantalla de bienvenida de Odoo, donde podrás crear tu primera base de datos.

Para detener Odoo, simplemente presiona Ctrl+C en la terminal.

Configurando Odoo como servicio (opcional pero recomendado)

Si quieres que Odoo arranque automáticamente cada vez que enciendes tu ordenador, podemos configurarlo como un servicio del sistema. Primero, sal del usuario odoo:

exit

Ahora crea el archivo de servicio:

sudo nano /etc/systemd/system/odoo.service

Y pega este contenido:

[Unit]
Description=Odoo
After=postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/usr/bin/python3 /opt/odoo/odoo17/odoo-bin -c /etc/odoo/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

Este archivo le dice a systemd (el gestor de servicios de Linux) cómo ejecutar Odoo. La línea After=postgresql.service asegura que la base de datos esté lista antes de que Odoo intente arrancar.

Guarda el archivo y activa el servicio:

sudo systemctl daemon-reload
sudo systemctl enable odoo
sudo systemctl start odoo

Para verificar que todo está funcionando correctamente:

sudo systemctl status odoo

Deberías ver algo como «active (running)» en verde. Si es así, ¡felicidades! Odoo ahora se ejecutará automáticamente cada vez que arranques tu ordenador.

Comandos útiles para gestionar el servicio

Una vez que Odoo está configurado como servicio, puedes controlarlo con estos comandos:

Ver el estado
sudo systemctl status odoo

Detener el servicio: sudo systemctl stop odoo

Iniciar el servicio: sudo systemctl start odoo

Reiniciar el servicio: sudo systemctl restart odoo

Ver los logs: sudo journalctl -u odoo -f

El último comando es especialmente útil cuando algo no funciona, porque te muestra en tiempo real lo que está pasando.

Primeros pasos en Odoo

Cuando accedas por primera vez a http://localhost:8069, Odoo te pedirá que crees una base de datos. Necesitarás:

  • Un nombre para tu base de datos (por ejemplo, «mi_empresa»)
  • Un correo electrónico (será el usuario administrador)
  • Una contraseña
  • La contraseña maestra que configuraste en odoo.conf

Una vez creada la base de datos, tendrás acceso a la interfaz principal de Odoo, donde podrás instalar los módulos que necesites: contabilidad, ventas, inventario, fabricación, recursos humanos y muchos más.

Solución de problemas comunes

Problema: «sudo me pide la contraseña del usuario odoo»

Síntoma: Al ejecutar sudo su – odoo -s /bin/bash te pide una contraseña que no tienes.

Causa: Ya estás dentro del usuario odoo. Mira tu prompt – si dice «odoo@…» ya estás donde necesitas estar.

Solución: Simplemente ejecuta los comandos directamente sin sudo. Si quieres volver a tu usuario normal:

exit

Problema: «El usuario odoo de PostgreSQL no tiene contraseña»

Síntoma: Creaste el usuario pero no estableciste contraseña correctamente.

Solución rápida:

sudo -u postgres psql -c "ALTER USER odoo WITH PASSWORD 'tu_contraseña';"
Luego verifica:

sudo -u postgres psql -c "\du"

Deberías ver el usuario «odoo» con el atributo «Create DB».

Odoo no arranca

Si el servicio no inicia, revisa los logs:
sudo journalctl -u odoo -n 50

Los errores más comunes son:

  • Contraseña incorrecta de PostgreSQL: Revisa el archivo /etc/odoo/odoo.conf y asegúrate de que db_password coincide con la que estableciste
  • Puerto 8069 ya en uso: Verifica que no haya otra instancia de Odoo ejecutándose con sudo lsof -i :8069
  • Falta alguna dependencia: Revisa que instalaste todo correctamente, especialmente las dependencias de Python

No puedo crear una base de datos desde la web

Asegúrate de que:

  • PostgreSQL está ejecutándose: sudo systemctl status postgresql
  • El usuario odoo tiene permisos para crear bases de datos (verificar con \du como vimos antes)
  • La contraseña maestra en odoo.conf es correcta (la de admin_passwd)

Odoo funciona pero los módulos no aparecen

Verifica que la ruta addons_path en tu archivo de configuración apunte correctamente a la carpeta de addons:

ls /opt/odoo/odoo17/addons

Deberías ver un montón de carpetas con nombres de módulos.

Referencia rápida: comandos esenciales

Si necesitas resolver algo rápido, aquí tienes los comandos más útiles:

SituaciónComando
Establecer/cambiar contraseña PostgreSQLsudo -u postgres psql -c «ALTER USER odoo WITH PASSWORD ‘nueva_pass’;»
Verificar usuario PostgreSQLsudo -u postgres psql -c «\du»
Ver estado de Odoosudo systemctl status odoo
Ver logs en tiempo realsudo journalctl -u odoo -f
Reiniciar Odoosudo systemctl restart odoo
Iniciar Odoo manualmentesudo su – odoo -s /bin/bash luego python3 /opt/odoo/odoo17/odoo-bin -c /etc/odoo/odoo.conf
Verificar si el puerto 8069 está libresudo lsof -i :8069

Conclusión

Aunque el proceso tiene varios pasos, instalar Odoo en Linux no es difícil si lo haces con calma. Ahora tienes un sistema de gestión empresarial completo funcionando en tu ordenador local, perfecto para hacer pruebas, desarrollo o incluso para gestionar un pequeño negocio.

Recuerda que esta instalación es para entornos locales o de desarrollo. Si quieres usar Odoo en producción para tu empresa, necesitarás considerar aspectos adicionales de seguridad, respaldos y rendimiento. Pero para empezar a conocer el sistema y experimentar con sus posibilidades, esta instalación es perfecta.

+ info

NOTAS (se irán ampliando). Haz clic para expandir el contenido de cada tema, otro clic para contraerlo:

¿Puedo ver una base de datos de Odoo en phpmyadmin, servidor local en Linux?

No directamente. Odoo usa PostgreSQL como sistema de gestión de bases de datos, no MySQL/MariaDB, por lo que phpMyAdmin no funcionará para ver las bases de datos de Odoo (phpMyAdmin solo funciona con MySQL/MariaDB).

Para ver y administrar tu base de datos de Odoo en Linux, tienes estas opciones:

pgAdmin (recomendado) Es el equivalente de phpMyAdmin pero para PostgreSQL:

# Importar la clave del repositorio
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg

# Agregar el repositorio (Ubuntu/Debian)
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list'

# Actualizar e instalar
sudo apt update
sudo apt install pgadmin4-desktop

Si no te funciona, ejecuta: sudo snap install pgadmin4

Y luego ejecutar: pgadmin4

Acceso directo por línea de comandos

# Conectarse a PostgreSQL
sudo -u postgres psql

# Listar bases de datos
\l

# Conectarse a una base de datos específica de Odoo
\c nombre_base_datos_odoo

# Ver tablas
\dt

DBeaver (alternativa multiplataforma) Es un gestor universal de bases de datos que soporta PostgreSQL y tiene interfaz gráfica.

Para conectarte necesitarás:

  • Base de datos: el nombre de tu base de datos de Odoo
  • Host: localhost (o 127.0.0.1)
  • Puerto: 5432 (por defecto de PostgreSQL)
  • Usuario: generalmente «odoo» o el que configuraste
  • Contraseña: la que definiste en la instalación
Cómo actualizar Odoo (versión 17.0, en mi caso y usando Python global)

Proceso completo de actualización:

Backup: (supongamos que la base de datos se llama odoo)

sudo su – postgres
pg_dump odoo > /tmp/odoo_backup_$(date +%Y%m%d).sql
exit

Detener servicio:

sudo systemctl stop odoo

Actualizar código:

cd /opt/odoo/odoo17
sudo git pull origin 17.0

Actualizar dependencias:

sudo pip3 install -r /opt/odoo/odoo17/requirements.txt

Actualizar base de datos:

sudo -u odoo /usr/bin/python3 /opt/odoo/odoo17/odoo-bin -c /etc/odoo/odoo.conf -d odoo -u all --stop-after-init

Reiniciar servicio:

sudo systemctl start odoo
sudo systemctl status odoo

Ver logs (opcional):

sudo journalctl -u odoo -f
# O si tienes logs en archivo:
sudo tail -f /var/log/odoo/odoo-server.log

Recomendación: Como estás en la rama 17.0, solo recibirás actualizaciones menores, correcciones de seguridad y bugs. Son actualizaciones seguras, pero siempre es buena idea tener el backup por si acaso.

Configuración de Soporte IT con Odoo Community

1. Instalar los módulos necesarios

Ve a Aplicaciones e instala:

  • Mantenimiento (maintenance) – Para gestionar equipos y solicitudes
  • Proyecto (project) – Para tickets de soporte
  • Inventario (stock/inventory) – Para rastrear hardware
  • Empleados (hr) – Para asignar responsables
  • Portal – Para que los usuarios puedan crear tickets (probablemente ya esté instalado)

2. Configurar módulo de Mantenimiento

a) Crear equipos IT:

  • Ve a Mantenimiento > Configuración > Equipos
  • Crea categorías de equipos como:
    • Ordenadores portátiles
    • Ordenadores de sobremesa
    • Servidores
    • Impresoras
    • Routers/Switches
    • Teléfonos

b) Registrar tu hardware:

  • Mantenimiento > Equipos
  • Haz clic en «Crear»
  • Completa la información:
    • Nombre del equipo (ej: «Portátil-001»)
    • Categoría de equipo
    • Ubicación
    • Asignado a (empleado)
    • Número de serie
    • Fecha de compra
    • Proveedor
    • Notas adicionales

c) Crear tipos de solicitudes:

  • Mantenimiento > Configuración > Tipos de Solicitud de Mantenimiento
  • Ejemplos de tipos:
    • Reparación
    • Instalación de software
    • Problema de red
    • Cambio de hardware
    • Soporte técnico general
    • Configuración de cuenta
    • Problema de impresora

3. Configurar Proyecto para tickets

a) Crear proyecto de Soporte IT:

  • Ve a Proyecto > Configuración > Proyectos
  • Haz clic en «Crear»
  • Nombre: «Soporte IT» o «Help Desk IT»
  • Activa las opciones:
    • Hojas de servicio (para registrar tiempo)
    • Tareas recurrentes (para mantenimientos programados)

b) Configurar etapas del ticket:

  • Dentro del proyecto, crea columnas (etapas) en la vista Kanban:
    • Nuevo
    • En progreso
    • Esperando respuesta del usuario
    • Esperando repuestos
    • Resuelto
    • Cerrado

c) Configurar prioridades:

  • Edita las tareas para usar prioridades:
    • Baja – Consultas generales
    • Normal – Problemas estándar
    • Alta – Afecta al trabajo
    • Urgente – Bloqueo completo

4. Integrar Inventario para hardware

a) Crear categoría de productos IT:

  • Inventario > Configuración > Categorías de Producto
  • Crea «Hardware IT» como categoría principal
  • Subcategorías opcionales:
    • Equipos principales
    • Periféricos
    • Componentes
    • Consumibles (cables, adaptadores, etc.)

b) Registrar hardware como productos:

  • Inventario > Productos > Productos
  • Crea productos para cada tipo de hardware:
    • Portátiles (por modelo: «Dell Latitude 5420»)
    • Monitores (por modelo: «Samsung 24″ S24R350»)
    • Teclados y ratones
    • Cables y adaptadores
    • Repuestos (discos duros, memorias RAM, etc.)

c) Configurar trazabilidad:

  • En cada producto de hardware principal, activa:
    • Trazabilidad > Por Número de Serie Único
  • Esto permite rastrear cada equipo individualmente
  • Al recibir o entregar un equipo, registra su número de serie

d) Crear ubicaciones de almacén:

  • Inventario > Configuración > Ubicaciones
  • Ejemplos:
    • Almacén IT
    • Asignado a empleados
    • En reparación
    • Equipos obsoletos

5. Configurar el Portal para usuarios

a) Verificar que el módulo Portal esté instalado:

  • Ve a Aplicaciones
  • Busca «Portal»
  • Si no está instalado, haz clic en «Instalar»

b) Dar acceso portal a los empleados:

  • Ve a Configuración > Usuarios y Compañías > Usuarios
  • Selecciona un usuario
  • En la pestaña «Derechos de acceso», asigna el grupo «Portal»
  • El usuario recibirá un email para activar su cuenta

c) Configurar acceso al proyecto:

  • Ve a tu proyecto «Soporte IT»
  • En la configuración del proyecto, pestaña «Privacidad»:
    • Selecciona «Portal» o «Visible por todos los usuarios internos»
  • Esto permite que los usuarios del portal creen tareas (tickets)

d) Personalizar la vista del portal (opcional):

  • Los usuarios verán sus tickets en el portal
  • Pueden comentar y ver el estado de sus solicitudes

6. Flujo de trabajo diario

Cuando llega una solicitud de soporte:

Opción 1 – Desde Mantenimiento:

  1. El usuario o técnico crea una Solicitud de Mantenimiento
  2. Selecciona el equipo afectado
  3. Elige el tipo de solicitud
  4. Describe el problema
  5. Asigna a un técnico (o deja que el responsable lo asigne)

Opción 2 – Desde Proyecto:

  1. El usuario crea una Tarea en «Soporte IT» (desde el portal o internamente)
  2. Completa título y descripción
  3. Añade prioridad si es necesario
  4. Se asigna automáticamente o manualmente a un técnico

Proceso de resolución:

  1. El técnico recibe la notificación
  2. Cambia el estado a «En progreso»
  3. Trabaja en la solución
  4. Registra el tiempo invertido (en hojas de servicio)
  5. Si necesita repuestos:
    • Va a Inventario
    • Realiza un movimiento de stock
    • Vincula el movimiento con el ticket
  6. Añade notas internas sobre la solución aplicada
  7. Cambia el estado a «Resuelto»
  8. Solicita confirmación al usuario (opcional)
  9. Cierra el ticket cuando se confirme

7. Mantenimientos preventivos

Configurar mantenimientos programados:

  • Ve a Mantenimiento > Equipos
  • Selecciona un equipo
  • Pestaña «Mantenimiento»
  • Haz clic en «Añadir una línea»
  • Configura:
    • Tipo de mantenimiento (preventivo)
    • Responsable
    • Frecuencia (días entre mantenimientos)
    • Próxima fecha prevista
    • Duración estimada

Ejemplos de mantenimientos preventivos:

  • Limpieza de equipos – cada 3 meses
  • Actualización de software – cada mes
  • Revisión de servidores – cada semana
  • Backup de datos – cada día
  • Revisión de impresoras – cada 2 meses

8. Reportes y seguimiento

Estadísticas en Mantenimiento:

  • Mantenimiento > Reportes
  • Métricas disponibles:
    • Solicitudes por equipo
    • Solicitudes por técnico
    • Tiempo medio de resolución
    • Solicitudes por tipo
    • Equipos con más fallos

Estadísticas en Proyecto:

  • Proyecto > Reportes
  • Métricas disponibles:
    • Tareas por estado
    • Productividad del equipo
    • Tiempo por tarea
    • Tareas completadas vs pendientes

Estadísticas en Inventario:

  • Inventario > Reportes
  • Métricas disponibles:
    • Stock de repuestos
    • Movimientos de hardware
    • Valoración de inventario
    • Historial de equipos por número de serie

9. Ejemplo práctico completo

Escenario: Un empleado reporta que su portátil no enciende

Paso 1 – Creación de la solicitud:

  • El empleado entra al portal de Odoo
  • Va a «Mantenimiento» o «Proyectos»
  • Crea una nueva solicitud:
    • Título: «Portátil no enciende»
    • Equipo: «Portátil-Marketing-003»
    • Tipo: «Reparación»
    • Prioridad: «Alta»
    • Descripción: «El portátil no enciende, no se ven luces ni sonidos»

Paso 2 – Asignación:

  • El sistema notifica al responsable de mantenimiento
  • Se asigna automáticamente o manualmente al técnico disponible
  • El técnico recibe un email de notificación

Paso 3 – Diagnóstico:

  • El técnico cambia el estado a «En progreso»
  • Revisa el equipo
  • Añade notas internas: «Probado con otro cargador, no funciona. Posible problema de placa base.»
  • Cambia estado a «Esperando repuestos»

Paso 4 – Gestión de repuestos:

  • Va a Inventario > Productos
  • Busca el repuesto necesario
  • Si hay stock, realiza un movimiento interno
  • Si no hay stock, crea una orden de compra

Paso 5 – Reparación:

  • Recibe el repuesto
  • Cambia estado a «En progreso»
  • Realiza la reparación
  • Registra el tiempo invertido (ej: 2 horas)

Paso 6 – Cierre:

  • Prueba el equipo
  • Cambia estado a «Resuelto»
  • Notifica al usuario vía email automático
  • Usuario confirma que funciona
  • Técnico cierra el ticket

Paso 7 – Trazabilidad:

  • Queda registrado en el historial del equipo
  • Se puede consultar después en «Portátil-Marketing-003»
  • Ayuda a detectar patrones de fallos

10. Configuraciones adicionales útiles

a) Notificaciones por email:

  • Configuración > Técnico > Email
  • Configura el servidor SMTP saliente
  • Activa notificaciones automáticas:
    • Cuando se asigna un ticket
    • Cuando cambia el estado
    • Cuando se añade un comentario

b) Plantillas de email:

  • Personaliza los mensajes automáticos
  • Configuración > Técnico > Plantillas de Email

c) Equipos de trabajo:

  • Proyecto > Configuración > Equipos de Proyecto
  • Crea equipos por especialidad:
    • Hardware
    • Software
    • Redes
    • Soporte general

d) SLAs (opcional, con desarrollo personalizado):

  • Define tiempos máximos de respuesta
  • Ejemplos:
    • Urgente: 2 horas
    • Alta: 4 horas
    • Normal: 1 día
    • Baja: 3 días

11. Mejores prácticas

  1. Documenta soluciones comunes: Crea una base de conocimiento en la descripción de tareas cerradas
  2. Etiquetas: Usa etiquetas en los tickets para clasificarlos mejor (hardware, software, red, etc.)
  3. Fotos: Permite que los usuarios adjunten fotos del problema
  4. Códigos QR: Imprime códigos QR en los equipos con enlace directo al equipo en Odoo
  5. Revisiones periódicas: Programa reuniones para revisar tickets pendientes
  6. Encuestas de satisfacción: Pregunta al usuario si quedó satisfecho con la solución
  7. Backups regulares: No olvides hacer backups de tu base de datos Odoo

12. Ejemplo de código QR para equipos

Si quieres facilitar la creación de tickets, puedes:

  1. Obtener la URL del equipo en Odoo (ej: http://tu-servidor:8069/web#id=123&model=maintenance.equipment)
  2. Generar un código QR con esa URL
  3. Imprimir y pegar el código QR en el equipo físico
  4. Los usuarios escanean el QR y acceden directamente al equipo para reportar problemas

Con esta configuración tendrás un sistema completo de soporte IT usando solo módulos Community de Odoo.

Enlaces a la documentación oficial de Odoo

Instalar Odoo – Documentación de Odoo
También es posible instalarlo en Windows, según la documentación oficial)

Administrar la base de datos

Si has instalado los datos de ejemplo de Odoo y quieres eliminarlos para crear una base de datos vacía, sigue estos pasos:

Accede al gestor de bases de datos de Odoo:

  • Ve a tu navegador y accede a: http://localhost:8069/web/database/manager
  • O desde la pantalla de login, haz clic en «Manage Databases» (Gestionar bases de datos)

Introduce la contraseña maestra:

  • Por defecto suele ser admin (si no la has cambiado)
  • Esta contraseña está en el archivo de configuración odoo.conf en el parámetro admin_passwd

Haz copia de seguridad de tu base de datos actual (si quieres):

  • Selecciona la base de datos
  • Haz clic en «Backup» (Respaldar)
  • Descarga el archivo .zip generado

Elimina la base de datos:

  • Selecciona la base de datos que quieres eliminar
  • Haz clic en «Delete» (Eliminar)

Crear una nueva base de datos vacía:

En el mismo gestor de bases de datos:

  • Haz clic en «Create Database» (Crear base de datos)

Completa el formulario:

  • Master Password: La contraseña maestra
  • Database Name: Nombre para tu nueva base de datos
  • Email: Correo del administrador
  • Password: Contraseña del usuario administrador
  • Language: Selecciona tu idioma
  • Country: Selecciona tu país
  • Demo data: Desmarca esta casilla para crear una base de datos vacía sin datos de ejemplo
Cuáles son las tecnologías que utiliza Odoo

Backend:

  • Python – El núcleo de Odoo está escrito en Python (versiones recientes usan Python 3.8+)
  • Tiene su propio framework web propietario construido sobre Python

Base de datos:

  • PostgreSQL – Es el único sistema de base de datos soportado (no funciona con MySQL ni otros)

Servidor web:

  • Servidor integrado: Odoo incluye su propio servidor web basado en Werkzeug (una biblioteca WSGI de Python)
  • Proxy inverso: En producción se recomienda usar Nginx o Apache como proxy inverso delante del servidor de Odoo para:
    • Gestión de SSL/HTTPS
    • Balanceo de carga
    • Servir archivos estáticos más eficientemente
    • Mayor seguridad

Frontend:

  • JavaScript – Para la interfaz de usuario (usa su propio framework JS propietario)
  • XML – Para definir vistas y estructuras de datos
  • QWeb – Motor de plantillas propio de Odoo para renderizar vistas
  • CSS/SCSS – Para estilos
  • Bootstrap – Para componentes de UI

Otras tecnologías:

Babel – Para internacionalización
Werkzeug – Biblioteca WSGI para Python
lxml – Para procesamiento XML

¿Por qué necesita Odoo un proxy inverso?

Un proxy inverso es un servidor que se coloca entre los clientes (navegadores) y tu servidor de aplicaciones (Odoo). Actúa como intermediario que recibe las peticiones y las reenvía al servidor backend.

¿Cómo funciona?

Cliente (navegador) → Nginx/Apache → Odoo (puerto 8069)
                     (puerto 80/443)

El usuario accede a tu dominio (ejemplo.com), pero en realidad está hablando con Nginx/Apache, no directamente con Odoo. Nginx recibe la petición y la reenvía internamente a Odoo.

Ventajas principales:

1. SSL/HTTPS centralizado

  • Nginx gestiona los certificados SSL
  • Odoo solo recibe tráfico HTTP interno (más simple)
  • Un solo punto para configurar la seguridad

2. Mayor rendimiento

  • Nginx sirve archivos estáticos (CSS, JS, imágenes) directamente sin molestar a Odoo
  • Compresión gzip de respuestas
  • Caché de contenido

3. Seguridad

  • Odoo no está expuesto directamente a Internet
  • Nginx filtra peticiones maliciosas
  • Protección contra ataques DDoS básicos

4. Balanceo de carga

  • Puedes tener varias instancias de Odoo corriendo
  • Nginx distribuye las peticiones entre ellas

5. Múltiples aplicaciones

  • Puedes tener Odoo en /odoo y otras apps en el mismo dominio
  • Un solo servidor web gestiona todo

Ejemplo simple:

Sin proxy inverso:

  • http://tu-servidor.com:8069 (tienes que especificar el puerto)

Con proxy inverso:

  • https://tu-empresa.com (puerto estándar, con SSL, más profesional)

En resumen: es como tener un recepcionista eficiente que filtra, organiza y optimiza todas las peticiones antes de que lleguen a tu aplicación principal.

Enlaces principales para la gestión de Odoo local

Estos son los enlaces principales para gestionar Odoo en un servidor local:

Enlaces de acceso principal

  1. Interfaz principal de Odoo:
    • http://localhost:8069
    • Si configuraste un puerto diferente: http://localhost:[tu-puerto]
  2. Gestor de Bases de Datos:
    • http://localhost:8069/web/database/manager
    • Permite crear, duplicar, eliminar y restaurar bases de datos
  3. Acceso desde otros dispositivos en la red local:
    • http://[IP-del-servidor]:8069
    • Ejemplo: http://192.168.1.100:8069

Recursos de documentación oficial

  1. Documentación general de instalación local:
  2. Instalación desde código fuente:
  3. Configuración del sistema:

Información importante

  • Base de datos PostgreSQL: Puerto 5432 por defecto
  • Puerto por defecto: 8069 (HTTP)
  • Usuario administrador inicial: admin
  • Contraseña por defecto: admin (cámbiala tras el primer acceso)
Instalar Odoo 18 en un entorno virtual bajo Windows 11

Para instalar Odoo 18 en un entorno virtual en Windows 11, primero necesitas configurar un entorno adecuado utilizando Virtualenv y Python. A continuación, se describen los pasos clave para realizar la instalación.

Requisitos previos

  1. Python 3.8 o superior: Asegúrate de tener instalada una versión compatible de Python.
  2. Pip: Herramienta de gestión de paquetes de Python.
  3. PostgreSQL: Base de datos que utiliza Odoo.
  4. Git: Para descargar el código de Odoo.

Pasos de instalación

  1. Instalar Python y pip:
    • Descarga e instala Python desde python.org.
    • Durante la instalación, selecciona la opción para añadir Python al PATH.
  2. Instalar PostgreSQL:
    • Descarga e instala PostgreSQL desde postgresql.org.
    • Configura un usuario postgres y recuerda la contraseña.
  3. Instalar Git:
  4. Crear un entorno virtual:
    • Abre la terminal de Windows (cmd) y ejecuta los siguientes comandos:
mkdir odoo-18
cd odoo-18
python -m venv venv
.\venv\Scripts\activate

Instalar dependencias:

  • Con el entorno virtual activado, instala las dependencias necesarias:
pip install wheel
pip install -r https://raw.githubusercontent.com/odoo/odoo/16.0/requirements.txt

Descargar Odoo 18:

  • Clona el repositorio de Odoo:
git clone https://github.com/odoo/odoo --branch 18.0 --single-branch .

Configurar Odoo:

  • Crea un archivo de configuración odoo.conf en la carpeta de Odoo con el siguiente contenido:
[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = False
db_port = False
db_user = your_postgres_user
db_password = your_postgres_password
addons_path = addons
logfile = odoo.log

Iniciar Odoo:

  • En la terminal con el entorno virtual activado, ejecuta:
    python odoo-bin -c odoo.conf

Acceder a Odoo:
Abre un navegador y ve a http://localhost:8069 para acceder a Odoo.

Consideraciones finales

Asegúrate de verificar que todos los servicios necesarios estén funcionando correctamente. Si experimentas problemas con las dependencias, puedes consultarlos en la comunidad de Odoo o revisar la documentación oficial.

¿Puedo subir una tabla personalizada en Odoo?

Sí, puedes crear tablas personalizadas en Odoo. Hay varias formas de hacerlo:

1. Crear un módulo personalizado (Método recomendado)

Esta es la forma más profesional y mantenible. Necesitas:

a) Crear la estructura del módulo:

mi_modulo/
├── __init__.py
├── __manifest__.py
├── models/
│   ├── __init__.py
│   └── mi_tabla.py
└── security/
    └── ir.model.access.csv

b) Definir el modelo en models/mi_tabla.py:

from odoo import models, fields, api

class MiTabla(models.Model):
    _name = 'mi.tabla'
    _description = 'Mi Tabla Personalizada'

    name = fields.Char(string='Nombre', required=True)
    descripcion = fields.Text(string='Descripción')
    fecha = fields.Date(string='Fecha')
    activo = fields.Boolean(string='Activo', default=True)

c) Configurar permisos en security/ir.model.access.csv:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mi_tabla,access.mi.tabla,model_mi_tabla,base.group_user,1,1,1,1

d) Instalar el módulo desde la interfaz de Odoo (Apps → actualizar lista → buscar tu módulo)

2. Usar Odoo Studio (solo versión Enterprise)

Si tienes Odoo Enterprise, puedes usar Studio para crear modelos visualmente sin programar.

3. Importar datos mediante CSV/Excel

Puedes importar datos a modelos existentes, pero no crear tablas nuevas directamente.

Visualizar la base de datos de Odoo con pgadmin4

Para visualizar tu base de datos de Odoo en pgAdmin4, sigue estos pasos:

1. Abre pgAdmin4

Inicia la aplicación pgAdmin4 en tu sistema.

2. Crea una nueva conexión al servidor

  • Haz clic derecho en «Servers» en el panel izquierdo
  • Selecciona «Register» → «Server»

3. Configura la conexión

En la pestaña General:

  • Name: Ponle un nombre descriptivo (ej: «Odoo Local»)

En la pestaña Connection:

  • Host name/address: localhost (o la IP de tu servidor si es remoto)
  • Port: 5432 (puerto por defecto de PostgreSQL)
  • Maintenance database: postgres
  • Username: Generalmente es «odoo» o «postgres» (depende de tu instalación)
  • Password: La contraseña del usuario de PostgreSQL
  • Marca «Save password» si quieres guardarla

4. Guarda y conéctate

Haz clic en «Save». El servidor aparecerá en el panel izquierdo.

5. Accede a tu base de datos

  • Expande el servidor que acabas de crear
  • Expande «Databases»
  • Busca y haz clic en «odoo»
  • Ahora puedes explorar las tablas en «Schemas» → «public» → «Tables»

Tip: Si necesitas ejecutar consultas SQL, haz clic derecho en la base de datos «odoo» y selecciona «Query Tool«.

¿Cómo conectar Odoo con un servicio de autenticación CAS?

NOTA: Ver también https://www.odoo.com/documentation/17.0/applications/general/users/ldap.html

Para conectar Odoo con un servicio de autenticación CAS, necesitas implementar un módulo de autenticación personalizado o usar uno existente. Aquí te explico las opciones principales:

Opciones de Integración

1. Módulo auth_cas (si existe para tu versión) Algunas versiones de Odoo tienen módulos comunitarios disponibles en GitHub o en el Odoo App Store que implementan la autenticación CAS.

2. Implementación personalizada Si no existe un módulo compatible, puedes crear uno siguiendo estos pasos:

Estructura básica del módulo

python

# __manifest__.py
{
    'name': 'CAS Authentication',
    'version': '1.0',
    'category': 'Authentication',
    'depends': ['base', 'web'],
    'data': [
        'views/res_config_settings_views.xml',
    ],
}

Configuración del cliente CAS

# models/res_config_settings.py
from odoo import fields, models

class ResConfigSettings(models.TransientModel):
    _inherit = 'res.config.settings'
    
    cas_server_url = fields.Char(
        string='CAS Server URL',
        config_parameter='auth_cas.server_url'
    )
    cas_service_url = fields.Char(
        string='Service URL',
        config_parameter='auth_cas.service_url'
    )

Controlador de autenticación

# controllers/main.py
from odoo import http
from odoo.http import request
import requests

class CASAuth(http.Controller):
    
    @http.route('/auth_cas/login', type='http', auth='none')
    def cas_login(self, **kwargs):
        cas_server = request.env['ir.config_parameter'].sudo().get_param('auth_cas.server_url')
        service_url = request.env['ir.config_parameter'].sudo().get_param('auth_cas.service_url')
        
        ticket = kwargs.get('ticket')
        
        if not ticket:
            # Redirigir al servidor CAS
            cas_login_url = f"{cas_server}/login?service={service_url}"
            return request.redirect(cas_login_url)
        
        # Validar el ticket
        validate_url = f"{cas_server}/serviceValidate?service={service_url}&ticket={ticket}"
        response = requests.get(validate_url)
        
        if self._validate_cas_response(response):
            username = self._extract_username(response)
            # Autenticar al usuario en Odoo
            return self._authenticate_user(username)
        
        return request.redirect('/web/login?error=cas_auth_failed')

Consideraciones importantes

  • Librerías necesarias: Instala el cliente CAS de Python
   pip install python-cas
  • Seguridad: Usa HTTPS para todas las comunicaciones CAS
  • Configuración de URLs: Asegúrate de que el service_url sea la URL de callback de tu instancia de Odoo
  • Sincronización de usuarios: Decide si crear usuarios automáticamente o solo permitir login a usuarios existentes
  • Atributos CAS: Configura qué atributos del CAS mapear a campos de Odoo (email, nombre, grupos, etc.)