Odoo Tutorial - smangukiya/gitTest GitHub Wiki

apt update

apt install backup-manager certbot git libgeoip-dev libjpeg-dev libldap2-dev libsasl2-dev libxml2-dev libxslt1-dev nginx node-less npm poppler-utils postfix postgresql postgresql-server-dev-10 python-certbot-nginx python3-dev python-pip python-psycopg2 software-properties-common zlib1g-dev fontconfig xfonts-75dpi xfonts-base

Webkit

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb wkhtmltopdf -V

Add PostgreSQL user for Odoo

su - postgres createuser -s -d odoo psql \password odoo pass: odoo \q psql -h localhost -U odoo template1 \q exit

(as root) Add system user

adduser odoo pass: odoo

Download Odoo source code

cd /opt git clone https://github.com/ursais/template-project -b 11.0 odoo chown -R odoo:odoo odoo apt install python3-virtualenv su - odoo cd /opt/odoo vi .gitmodules # (replace [email protected]: by https://github.com/) git submodule sync git submodule update --init git status

python3 -m virtualenv -p /usr/bin/python3 env pip freeze . env/bin/activate pip freeze

pip install -r requirements.txt cd odoo python setup.py install cd ..

Start odoo

pip freeze odoo ls /home/odoo/.local/share/Odoo/

exit

(as root)

mkdir /etc/odoo vi /etc/odoo/odoo.conf [options] admin_passwd = admin addons_path = /opt/odoo/src/enterprise,/opt/odoo/odoo/addons,/opt/odoo/src/custom-addons db_host = localhost db_port = 5432 db_user = odoo db_password = odoo log_level = info logfile = /var/log/odoo/odoo.log max_cron_threads = 1 proxy_mode = True

workers = (2 x # of proc + 1)

workers = 3 xmlrpc_interface = 127.0.0.1

cp /etc/odoo/odoo.conf /etc/odoo/debug.conf vi /etc/odoo/debug.conf # comment the logfile to get the logs in stdout mkdir /var/log/odoo chown -R odoo:odoo /etc/odoo chown -R odoo:odoo /var/log/odoo

Start Odoo manually

su - odoo cd /opt/odoo . env/bin/activate odoo -c /etc/odoo/debug.conf

(as root) Start Odoo as a service

vi /etc/systemd/system/odoo.service [Unit] Description=Odoo

[Service] User=odoo Group=odoo WorkingDirectory=/opt/odoo ExecStart=/opt/odoo/env/bin/odoo -c /etc/odoo/odoo.conf Restart=always

[Install] WantedBy=multi-user.target

systemctl daemon-reload service odoo start tail -f /var/log/odoo/odoo.log systemctl status odoo systemctl enable odoo systemctl status odoo

Configure Nginx

vi /etc/nginx/sites-available/odoo

Odoo Backend

upstream odooerp { server 127.0.0.1:8069; }

upstream odooim { server 127.0.0.1:8072; }

https site##

server { listen 443 default_server; server_name 68.183.161.193; root /usr/share/nginx/html; index index.html index.htm; client_max_body_size 20M;

# log files
access_log  /var/log/nginx/odoo.access.log;
error_log   /var/log/nginx/odoo.error.log;

# ssl files
ssl on;
ssl_ciphers                 ALL:!ADH:!MD5:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM;
ssl_protocols               TLSv1.2;
ssl_prefer_server_ciphers   on;
ssl_certificate             /etc/nginx/ssl/odoo.crt;
ssl_certificate_key         /etc/nginx/ssl/odoo.key;

# proxy buffers
proxy_buffers 16 64k;
proxy_buffer_size 128k;

## odoo proxypass with https ##
location / {
    proxy_pass  http://odooerp;
    # force timeouts if the backend dies
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    proxy_redirect off;

    # set headers
    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 https;
}

location /longpolling {
    proxy_pass  http://odooim;
}

# cache some static data in memory for 60mins
location ~* /web/static/ {
    proxy_cache_valid 200 60m;
    proxy_buffering on;
    expires 864000;
    proxy_pass http://odooerp;
}

}

http redirects to https

server { listen 80; server_name 68.183.161.193;

# Strict Transport Security
add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$ https://$host$request_uri? permanent;

}

Generate the SSL certificate

mkdir /etc/nginx/ssl openssl req -x509 -nodes -days 365 -newkey rsa:2048
-subj "/C=US/ST=CA/L=Los Angeles/O=IT/CN=68.183.161.193"
-keyout /etc/nginx/ssl/odoo.key
-out /etc/nginx/ssl/odoo.crt

cd /etc/nginx/sites-enabled ln -s ../sites-available/odoo . nginx -t service nginx restart