Created
May 2, 2020 00:42
Revisions
-
akhdaniel renamed this gist
May 2, 2020 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
akhdaniel created this gist
May 2, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,275 @@ # Step 1 - Add the Odoo repository ``` yum install -y epel-release yum-config-manager --add-repo=https://nightly.odoo.com/10.0/nightly/rpm/odoo.repo yum update && yum install odoo ``` enable odoo services ``` systemctl enable odoo systemctl start odoo ``` If you are running a firewall, run the following commands to allow HTTP and HTTPS traffic: ``` sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload ``` enable SE linux for nginx localhost access later ``` setsebool -P httpd_can_network_connect 1 ``` # Step 2 - Configure a Linux user for Odoo ``` sudo adduser --system --home=/opt/odoo --group odoo mkdir -p /var/lib/odoo ``` # Step 3 - Install and Configure PostgreSQL ``` yum install postgresql-server fontconfig libpng libX11 libXext libXrender xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi wkhtmltopdf yum-utils postgresql-setup initdb su - postgres createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo ``` Enable PostgreSQL to start on boot and start the service using: ``` systemctl enable postgresql systemctl start postgresql ``` # Step 4 - Install dependencies needed ``` sudo apt-get install python-cups python-dateutil python-decorator python-docutils python-feedparser \ python-gdata python-geoip python-gevent python-imaging python-jinja2 python-ldap python-libxslt1 \ python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 \ python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests \ python-simplejson python-tz python-unicodecsv python-unittest2 python-vatnumber python-vobject \ python-werkzeug python-xlwt python-yaml wkhtmltopdf ``` # Step 5 - Install Odoo ``` sudo apt-get install odoo netstat -plntu ``` Make sure odoo instance is running on port 8069. Check from URL http://odoo.mysite.co:8069. Make sure that firewall is not blocking that port. ``` vim /etc/odoo/openerp-server.conf ``` Edit file content to: ``` xmlrpc_interface = 127.0.0.1 xmlrpc_port = 8069 ``` # Step 6 - Install and Configure Nginx If you have apache installed, let’s uninstall or disable it then install nginx to proceed ``` systemctl disable httpd systemctl stop httpd yum install nginx ``` Edit file content /etc/nginx/conf.d/yoursite.com.conf ``` ##Odoo Backend## upstream odooerp { server 127.0.0.1:8069; #server ip2:8069; #server ip3:8069; } upstream odooerp-im { server 127.0.0.1:8072 weight=1 fail_timeout=0; #server ip2:8072 weight=1 fail_timeout=0; #server ip3:8072 weight=1 fail_timeout=0; } ##https site## server { listen 443 default_server; server_name odoo.mysite.co; root /usr/share/nginx/html; index index.html index.htm; # 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 TLSv1.1 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; # timeouts proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; ## 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://odooerp-im; # 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; } # 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; } # gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; } ##http redirects to https ## server { listen 80; server_name odoo.mysite.co; # Strict Transport Security add_header Strict-Transport-Security max-age=2592000; rewrite ^/.*$ https://$host$request_uri? permanent; } ``` Change odoo.mysite.co to your actual domain name. Create SSL folder: ``` mkdir -p /etc/nginx/ssl cd /etc/nginx/ssl ``` Generate SSL Key: ``` openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/odoo.key -out /etc/nginx/ssl/odoo.crt chmod 600 odoo.key ``` Enable Odoo config on nginx: ``` ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo nginx -t systemctl restart nginx ``` # Step 7 - Configure Odoo Goto http://odoo.mysite.co Manage database from user interface # Step 8 - Install SSL Certificate ``` yum -y install yum-utils yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional sudo yum install certbot python2-certbot-nginx sudo certbot --nginx ``` # Step 9 - To Renew the Certificate ``` sudo certbot --nginx certonly ``` Done! You can start Odoo from http://odoo.mysite.co and Nginx will automatically redirect to HTTPS port 443 with the valid SSL certificate! # Optional Step: For unsupported Operating System ``` wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto sudo ./path/to/certbot-auto --nginx ``` To renew ``` $ sudo ./path/to/certbot-auto --nginx certonly ``` Automatic renew by CRON job ``` echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null ``` # Need More Info? Need Odoo customization, implementation, training, tuning performance service ? Contact us: vitraining.com