1. Fases de la implantación
Implantar un ERP no es instalar un programa: es cambiar cómo trabaja una empresa. Muchos proyectos fracasan no por la tecnología, sino por no analizar bien los procesos, migrar datos sucios o no formar a los usuarios.
Implantar un ERP es como mudarse de casa con la familia dentro 🏡
- Análisis de requisitos: entrevistas por departamento, procesos actuales (AS-IS) y deseados (TO-BE), informes necesarios.
- Selección de la solución y del socio implantador.
- Planificación: alcance, fases, calendario, equipo (jefe de proyecto, usuarios clave), riesgos y presupuesto.
- Instalación de los entornos: desarrollo, pruebas y producción.
- Parametrización: empresa, contabilidad, impuestos, almacenes, tarifas, flujos (sin programar).
- Personalización: desarrollos a medida solo donde el estándar no llega (RA4 y RA5).
- Migración de datos: limpieza e importación de clientes, productos, saldos y stock inicial.
- Pruebas con casos reales por parte de los usuarios clave.
- Formación de todos los usuarios por perfil.
- Arranque (go-live) y soporte intensivo las primeras semanas.
| Estrategia de arranque | Cómo | Riesgo |
|---|---|---|
| Big bang | Toda la empresa pasa al nuevo sistema el mismo día | Alto: si algo falla, afecta a todo; pero es rápido |
| Por fases / módulos | Primero ventas y facturación, después almacén, luego producción… | Medio: más largo, con integraciones temporales |
| En paralelo | Se trabaja con el sistema viejo y el nuevo a la vez durante un tiempo | Bajo, pero duplica el trabajo |
| Piloto | Primero una sede o departamento | Bajo; permite aprender antes de extenderlo |
2. Instalar Odoo en un servidor
Para pruebas basta con Docker (lo viste en Lenguajes de Marcas). Para producción se instala en un servidor Ubuntu con PostgreSQL, Odoo como servicio del sistema y Nginx delante como proxy inverso con HTTPS.
1# 1. Sistema actualizado y PostgreSQL
2sudo apt update && sudo apt upgrade -y
3sudo apt install -y postgresql
4sudo -u postgres createuser -d -R -S odoo # usuario de base de datos sin superusuario
5
6# 2. Odoo desde el repositorio oficial de paquetes (Community)
7wget -qO - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
8echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/18.0/nightly/deb/ ./' \
9 | sudo tee /etc/apt/sources.list.d/odoo.list
10sudo apt update && sudo apt install -y odoo
11sudo apt install -y wkhtmltopdf # versión con Qt parcheado para los PDF
12
13# 3. Servicio
14systemctl status odoo
15journalctl -u odoo -f # registro del servicio1[options]
2admin_passwd = <contraseña-maestra-larga> ; protege el gestor de bases de datos
3db_host = False ; PostgreSQL local por socket
4db_user = odoo
5list_db = False ; no mostrar la lista de bases de datos
6dbfilter = ^empresa$ ; solo esta base de datos
7proxy_mode = True ; detrás de Nginx
8http_interface = 127.0.0.1 ; no exponer el puerto 8069 fuera
9addons_path = /usr/lib/python3/dist-packages/odoo/addons,/opt/odoo/addons-propios
10data_dir = /var/lib/odoo
11logfile = /var/log/odoo/odoo-server.log
12workers = 5 ; procesos para atender peticiones
13max_cron_threads = 1
14limit_memory_soft = 671088640 ; 640 MB por worker
15limit_memory_hard = 805306368
16limit_time_real = 1201server {
2 server_name erp.empresa.es;
3 client_max_body_size 50M;
4 location / {
5 proxy_pass http://127.0.0.1:8069;
6 proxy_set_header Host $host;
7 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
8 proxy_set_header X-Forwarded-Proto $scheme;
9 }
10 location /websocket {
11 proxy_pass http://127.0.0.1:8072;
12 proxy_http_version 1.1;
13 proxy_set_header Upgrade $http_upgrade;
14 proxy_set_header Connection "upgrade";
15 }
16}
17# sudo certbot --nginx -d erp.empresa.es → HTTPS con Let's Encrypt3. Configuración inicial
- Crear la base de datos (idioma español, país España: instala la localización contable) y el usuario administrador.
- Empresa: razón social, NIF, dirección, logotipo, moneda, formato de documentos.
- Módulos: instalar solo los necesarios desde Aplicaciones (Ventas, CRM, Inventario, Facturación…). Cada módulo instala sus dependencias.
- Contabilidad: plan general contable (PGC) de pymes, impuestos (IVA 21/10/4 %, recargo de equivalencia), ejercicios fiscales, diarios y cuentas bancarias.
- Datos maestros: categorías de producto, unidades de medida, almacenes y ubicaciones, tarifas, plazos de pago, formas de envío.
- Secuencias de documentos (F2025-0001), plantillas de correo y de informes.
- Usuarios y permisos (siguiente apartado).
Modo desarrollador
4. Usuarios, seguridad y copias de seguridad
| Mecanismo | En Odoo |
|---|---|
| Usuarios | Cada persona con su cuenta; tipos interno, portal (clientes/proveedores) y público |
| Grupos | Permisos por aplicación: Ventas → Usuario (solo sus documentos), Usuario (todos) o Administrador |
| Derechos de acceso | Por modelo: leer, escribir, crear, borrar (ir.model.access) |
| Reglas de registro | Filtros por fila: cada comercial ve sus clientes; cada empresa, sus datos |
| Multiempresa | Varias empresas en la misma base de datos con datos separados o compartidos |
| Autenticación | Doble factor (2FA), políticas de contraseñas, inicio de sesión con Google/Microsoft (OAuth), LDAP |
| Auditoría | Historial (chatter) en cada documento con quién cambió qué y cuándo |
1#!/bin/bash
2# Copia diaria de Odoo: base de datos + adjuntos (filestore), con 14 días de retención
3FECHA=$(date +%F); DEST=/backups/odoo; BD=empresa
4mkdir -p "$DEST"
5sudo -u odoo pg_dump -Fc "$BD" > "$DEST/$BD-$FECHA.dump"
6tar -czf "$DEST/filestore-$BD-$FECHA.tar.gz" -C /var/lib/odoo/filestore "$BD"
7find "$DEST" -mtime +14 -delete
8# Restaurar: createdb -O odoo empresa && pg_restore -d empresa empresa-AAAA-MM-DD.dump
9# y descomprimir el filestore en /var/lib/odoo/filestore/empresa
10# (También desde /web/database/manager → Backup, que incluye ambos en un .zip)5. Migración de datos, optimización y mantenimiento
Migrar los datos del sistema anterior
- Orden: configuración → maestros (clientes, proveedores, productos) → saldos contables y deudas pendientes → stock inicial → documentos abiertos.
- Importación con CSV/Excel desde cada listado, usando identificadores externos para poder repetirla sin duplicar.
- Grandes volúmenes o transformaciones complejas: scripts en Python con la API (XML-RPC / JSON-RPC) o herramientas ETL.
- Validar: número de registros, sumas de saldos y stock, revisión por muestreo con los usuarios.
Optimizar el sistema
| Área | Acción |
|---|---|
| Servidor Odoo | Ajustar workers y límites de memoria, separar el worker de cron, activar el modo multiproceso |
| PostgreSQL | shared_buffers (~25 % de la RAM), effective_cache_size, work_mem; VACUUM y ANALYZE automáticos; índices en campos muy filtrados |
| Red y cliente | Nginx con compresión gzip y caché de estáticos, HTTP/2 |
| Datos | Archivar registros antiguos, limitar los adjuntos, revisar acciones planificadas que se ejecutan demasiado |
| Monitorización | Registro de peticiones lentas (log_level, --log-handler), métricas del servidor (htop, pg_stat_statements) |
Mantenimiento
- Actualizaciones de seguridad del sistema y de Odoo (misma versión) probadas antes en el entorno de pruebas.
- Migraciones de versión mayor (17 → 18) con la herramienta de Odoo o OpenUpgrade, en una copia.
- Documentar la instalación, la configuración y los procedimientos (altas de usuarios, copias y restauración).
6. Ejercicios
Plan de implantación
Redacta el plan de implantación de Odoo en una empresa de reformas de 15 personas (ventas, compras, almacén, proyectos y facturación): fases con su duración, equipo del proyecto, estrategia de arranque, riesgos principales con sus medidas y criterios para dar por terminado el proyecto.
Instalación en producción
En una VM Ubuntu Server instala Odoo Community con PostgreSQL, configúralo como servicio con 3 workers, restringe el acceso a la lista de bases de datos, colócalo detrás de Nginx con un nombre (usa el fichero hosts si no tienes dominio), crea la base de datos de la empresa con localización española, instala Ventas, CRM, Inventario y Facturación, crea tres usuarios con permisos distintos y programa la copia de seguridad diaria. Documenta cada paso.