Apuntes DAM
    Tema 2 de 6SGE · 2º DAM

    Sistemas de Gestión Empresarial

    Implantación de un ERP-CRM

    Fases de la implantación y estrategias de arranque, instalación de Odoo en Ubuntu con PostgreSQL y Nginx, configuración inicial, usuarios y permisos, copias de seguridad, migración de datos y optimización.

    60 min lecturaIntermedio

    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 🏡

    📋
    Planificar
    Decidir qué se lleva, qué se tira y cómo se organiza la casa nueva (procesos y datos).
    🚚
    Mudarse
    Instalar, configurar y trasladar los datos sin perder nada por el camino.
    🧭
    Acostumbrarse
    Enseñar a todos dónde está cada cosa y resolver los problemas de los primeros días.
    1. Análisis de requisitos: entrevistas por departamento, procesos actuales (AS-IS) y deseados (TO-BE), informes necesarios.
    2. Selección de la solución y del socio implantador.
    3. Planificación: alcance, fases, calendario, equipo (jefe de proyecto, usuarios clave), riesgos y presupuesto.
    4. Instalación de los entornos: desarrollo, pruebas y producción.
    5. Parametrización: empresa, contabilidad, impuestos, almacenes, tarifas, flujos (sin programar).
    6. Personalización: desarrollos a medida solo donde el estándar no llega (RA4 y RA5).
    7. Migración de datos: limpieza e importación de clientes, productos, saldos y stock inicial.
    8. Pruebas con casos reales por parte de los usuarios clave.
    9. Formación de todos los usuarios por perfil.
    10. Arranque (go-live) y soporte intensivo las primeras semanas.
    Estrategia de arranqueCómoRiesgo
    Big bangToda la empresa pasa al nuevo sistema el mismo díaAlto: si algo falla, afecta a todo; pero es rápido
    Por fases / módulosPrimero ventas y facturación, después almacén, luego producción…Medio: más largo, con integraciones temporales
    En paraleloSe trabaja con el sistema viejo y el nuevo a la vez durante un tiempoBajo, pero duplica el trabajo
    PilotoPrimero una sede o departamentoBajo; 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.

    instalacion-ubuntu.sh
    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 servicio
    /etc/odoo/odoo.conf
    1[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 = 120
    /etc/nginx/sites-available/odoo
    1server {
    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 Encrypt
    Guía Completa para Instalar Odoo 17 Paso a Paso en Linux — CodigoBinario

    3. Configuración inicial

    1. Crear la base de datos (idioma español, país España: instala la localización contable) y el usuario administrador.
    2. Empresa: razón social, NIF, dirección, logotipo, moneda, formato de documentos.
    3. Módulos: instalar solo los necesarios desde Aplicaciones (Ventas, CRM, Inventario, Facturación…). Cada módulo instala sus dependencias.
    4. Contabilidad: plan general contable (PGC) de pymes, impuestos (IVA 21/10/4 %, recargo de equivalencia), ejercicios fiscales, diarios y cuentas bancarias.
    5. Datos maestros: categorías de producto, unidades de medida, almacenes y ubicaciones, tarifas, plazos de pago, formas de envío.
    6. Secuencias de documentos (F2025-0001), plantillas de correo y de informes.
    7. Usuarios y permisos (siguiente apartado).

    Modo desarrollador

    En Ajustes → Activar el modo desarrollador aparecen las opciones técnicas: menús técnicos, vistas, campos, acciones, reglas de acceso y el atributo técnico de cada campo al pasar el ratón. Se usa para configurar a fondo y para depurar, no en el día a día.

    4. Usuarios, seguridad y copias de seguridad

    MecanismoEn Odoo
    UsuariosCada persona con su cuenta; tipos interno, portal (clientes/proveedores) y público
    GruposPermisos por aplicación: Ventas → Usuario (solo sus documentos), Usuario (todos) o Administrador
    Derechos de accesoPor modelo: leer, escribir, crear, borrar (ir.model.access)
    Reglas de registroFiltros por fila: cada comercial ve sus clientes; cada empresa, sus datos
    MultiempresaVarias empresas en la misma base de datos con datos separados o compartidos
    AutenticaciónDoble factor (2FA), políticas de contraseñas, inicio de sesión con Google/Microsoft (OAuth), LDAP
    AuditoríaHistorial (chatter) en cada documento con quién cambió qué y cuándo
    copias.sh
    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

    ÁreaAcción
    Servidor OdooAjustar workers y límites de memoria, separar el worker de cron, activar el modo multiproceso
    PostgreSQLshared_buffers (~25 % de la RAM), effective_cache_size, work_mem; VACUUM y ANALYZE automáticos; índices en campos muy filtrados
    Red y clienteNginx con compresión gzip y caché de estáticos, HTTP/2
    DatosArchivar registros antiguos, limitar los adjuntos, revisar acciones planificadas que se ejecutan demasiado
    MonitorizaciónRegistro 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

    Ejercicio Práctico
    Medio

    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.

    Ejercicio Práctico
    Difícil

    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.

    ¿Has terminado este tema?

    Crea una cuenta gratis para guardar qué temas has terminado, subir de nivel y ganar medallas.

    Guardar mi progreso