Saltar al contenido
Infrastructure 2026-09-06 20 min de lectura

Cómo instalar Odoo en un VPS

Odoo es el ERP de código abierto más adoptado por pymes. Instalar Odoo Community en tu propio VPS elimina el costo por usuario de Odoo.sh o de servicios gestionados, y te da control total sobre los datos de tu empresa.

Cómo instalar Odoo en un VPS
#Odoo#ERP#VPS#Ubuntu#Python#PostgreSQL
T
Equipo Terranode
Editorial

Requisitos del servidor

Usa Ubuntu 22.04 LTS de 64 bits. Los mínimos reales para producción son 2 vCPU, 4 GB RAM y 40 GB de disco SSD; para equipos de más de 5 usuarios simultáneos o módulos contables complejos, planifica 8 GB RAM. Un VPS de Terranode con esas especificaciones cubre el rango de una empresa mediana.

Verifica la RAM disponible antes de empezar:

bash
free -h

Actualizar el sistema e instalar dependencias

bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip python3-dev python3-venv \
  build-essential libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
  libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \
  libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev \
  libxcb1-dev libpq-dev node-less git curl

Instala wkhtmltopdf (necesario para generar PDFs):

bash
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -f -y

Instalar y configurar PostgreSQL

bash
sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable postgresql --now

Crea el usuario de base de datos para Odoo:

bash
sudo -u postgres createuser -s odoo

Crear el usuario del sistema y clonar Odoo

bash
sudo adduser --system --home /opt/odoo --group odoo
sudo su - odoo -s /bin/bash
git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo/odoo
python3 -m venv /opt/odoo/venv
source /opt/odoo/venv/bin/activate
pip install -r /opt/odoo/odoo/requirements.txt
deactivate
exit

Configurar Odoo

Crea el directorio de datos y el archivo de configuración:

bash
sudo mkdir -p /opt/odoo/data/filestore /var/log/odoo
sudo chown -R odoo:odoo /opt/odoo /var/log/odoo

Crea /etc/odoo.conf:

ini
[options]
admin_passwd = CambiaMeAhora
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons
data_dir = /opt/odoo/data
logfile = /var/log/odoo/odoo.log
log_level = warn
xmlrpc_port = 8069
workers = 2

Protege el archivo:

bash
sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.conf

Crear el servicio systemd

Crea /etc/systemd/system/odoo.service:

ini
[Unit]
Description=Odoo
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Activa e inicia el servicio:

bash
sudo systemctl daemon-reload
sudo systemctl enable odoo --now
sudo systemctl status odoo

Configurar Nginx como proxy inverso

bash
sudo apt install -y nginx

Crea /etc/nginx/sites-available/odoo:

nginx
upstream odoo {
    server 127.0.0.1:8069;
}
upstream odoo-chat {
    server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name erp.tudominio.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    location /longpolling {
        proxy_pass http://odoo-chat;
        proxy_set_header Host $host;
    }

    location / {
        proxy_pass http://odoo;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }

    gzip on;
    gzip_types text/css text/javascript application/json application/javascript;
}
bash
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Obtener SSL con Certbot

bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d erp.tudominio.com

Certbot modifica el bloque de Nginx automáticamente y programa la renovación automática del certificado.

Primera instalación de la base de datos

Abre https://erp.tudominio.com/web/database/manager en el navegador. Completa el formulario con el nombre de la base, tu correo, la contraseña maestra (la definida en admin_passwd) y el idioma. Instala los módulos base y espera a que Odoo inicialice el esquema.

Seguridad básica

Bloquea el acceso directo a los puertos de Odoo desde internet:

bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable

Después de crear la base de datos, bloquea /web/database/manager en Nginx añadiendo una restricción por IP o configurando list_db = False en odoo.conf.

Actualizaciones y mantenimiento

Para actualizar Odoo:

bash
sudo systemctl stop odoo
sudo su - odoo -s /bin/bash
cd /opt/odoo/odoo && git pull
source /opt/odoo/venv/bin/activate
pip install -r requirements.txt --upgrade
deactivate
exit
sudo systemctl start odoo

Actualiza los módulos instalados desde la interfaz en Configuración → Actualizar módulos, o con:

bash
sudo -u odoo /opt/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin \
  -c /etc/odoo.conf -d nombre_base -u all --stop-after-init

Odoo Community en un VPS propio te da el ERP completo sin costo por usuario. El stack es Ubuntu + PostgreSQL + Python + Nginx; el mayor trabajo está en dimensionar bien la RAM y en configurar los backups antes de cargar datos reales de producción.

Si buscas un VPS con la potencia necesaria para Odoo, Terranode ofrece planes desde $6/mes en Ecuador con KVM, NVMe y soporte local. Un plan de 4 GB RAM es el punto de partida recomendado para una empresa pequeña.

¿Listo para llevar tu sitio al siguiente nivel?

Hosting con LiteSpeed, NVMe y soporte 24/7 desde $3/mes.

Ver planes de hosting

Preguntas frecuentes