Se usará Ubuntu 16.04
como sistema base
sudo apt-get update
sudo apt-get install git python-dev libpq-dev python-pip python-virtualenv libsasl2-dev libldap2-dev libssl-dev \
gdebi-core node-clean-css node-less python-gevent libevent-dev gcc \
libxml2-dev libldap2-dev libssl-dev
Crear los directorios necesarios
# Para la instalción de Odoo
sudo mkdir /opt/odoo
sudo chown $USER:$USER /opt/odoo
# Para la carpeta de modulos de la aplicación a desplegar
sudo mkdir /opt/proyecto
sudo chown $USER:$USER /opt/proyecto
# Para los archivos de configuración de la aplicación
sudo mkdir /etc/odoo
sudo chown $USER:$USER /etc/odoo
# Para los archivos de log de la aplicación
sudo mkdir /var/log/odoo
sudo chown $USER:$USER /var/log/odoo
Clonar repositorio de Odoo
git clone https://github.com/odoo/odoo -b 10.0 --depth 1 /opt/odoo
Crear un entorno virtual para instalar los requerimientos de Odoo y activarlo
cd /opt/odoo
virtualenv env
source env/bin/activate
Instalar las dependencias de Odoo
cd /opt/odoo
pip install .
Crear un archivo de configuración para el proyecto en /etc/odoo/
llamado proyecto.conf
el cual contendrá la siguiente información:
[options]
addons_path = /opt/odoo/addons,path_to_project_modules
data_dir = /opt/proyecto
admin_passwd = super_secret_password
db_host = database_location
db_port = database_port
db_user = database_user_with_super_user_role
db_password = super_secret_db_password
dbfilter = regex_with_db_name_filter
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = info
logrotate = True
logfile = /var/log/odoo/proyecto.log
xmlrpc_port = 8069
Crear usuario en Postgres y darle permiso de super usuario para que pueda crear bases de datos
# Ingresar con el usuario postgres
sudo su - postgres
createuser odoo --pwprompt
# Ingresar contraseña 2 veces
psql
alter user odoo with superuser
Crear el siguiente archivo en /etc/systemd/system/odoo.service
con:
[Unit]
Description=Odoo nombre de la aplicación
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo
User=system_user
Group=system_user
ExecStart=/opt/odoo/env/bin/python /opt/odoo/odoo-bin -c /etc/odoo/proyecto.conf
WorkingDirectory=/opt/proyecto
[Install]
WantedBy=multi-user.target
No es necesario esperar a que se ejecute la unidad de postgres debido a que no existe.
[Unit]
Description=Odoo nombre de la aplicación
After=network.target
[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo
User=system_user
Group=system_user
ExecStart=/opt/odoo/env/bin/python /opt/odoo/odoo-bin -c /etc/odoo/proyecto.conf
WorkingDirectory=/opt/proyecto
[Install]
WantedBy=multi-user.target
Cuando se haga alguna modificación sobre una unidad de Systemd
se debe recargar el demonio con:
sudo systemctl daemon-reload
Iniciar el proceso con Systemd
sudo systemctl start odoo.service
Revisar el estado del proceso
sudo systemctl status odoo.service
Monitorear el log
tail -f /var/log/odoo/proyecto.log
Una vez validado el funcionamiento de la aplicación configurar el proceso como demonio para que inicie junto al sistema.
sudo systemctl enable odoo.service