From b6b14ee4c91721cf6a014091d94114b2a3bf6281 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Wed, 26 Dec 2018 16:41:22 +0530 Subject: [PATCH 01/12] Fixed v12 with nginx --- odoo_install.sh | 113 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 104 insertions(+), 9 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index 6a9f96d..4022545 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -14,27 +14,32 @@ # ./odoo-install ################################################################################ +##fixed parameters +#odoo OE_USER="odoo" OE_HOME="/$OE_USER" OE_HOME_EXT="/$OE_USER/${OE_USER}-server" -# The default port where this Odoo instance will run under (provided you use the command -c in the terminal) -# Set to true if you want to install it, false if you don't need it or have it already installed. +#The default port where this Odoo instance will run under (provided you use the command -c in the terminal) +#Set to true if you want to install it, false if you don't need it or have it already installed. INSTALL_WKHTMLTOPDF="True" -# Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.) +#Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.) OE_PORT="8069" -# Choose the Odoo version which you want to install. For example: 12.0, 11.0, 10.0 or saas-18. When using 'master' the master version will be installed. -# IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 12.0 +#Choose the Odoo version which you want to install. For example: 12.0,11.0, 10.0 or saas-18. When using 'master' the master version will be installed. +#IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 12.0 OE_VERSION="12.0" -# Set this to True if you want to install the Odoo enterprise version! +# Set this to True if you want to install Odoo Enterprise version! IS_ENTERPRISE="False" -# set the superadmin password +# Set this to True if you want to install Nginx! +INSTALL_NGINX="False" +#set the superadmin password OE_SUPERADMIN="admin" OE_CONFIG="${OE_USER}-server" - +#set the website name +WEBSITE_NAME="_" ## ### WKHTMLTOPDF download links ## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links, -## in order to have correct version of wkhtmltox installed, for a danger note refer to +## in order to have correct version of wkhtmltox installed, for a danger note refer to ## https://www.odoo.com/documentation/8.0/setup/install.html#deb ): WKHTMLTOX_X64=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb WKHTMLTOX_X32=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-i386.deb @@ -150,12 +155,17 @@ sudo chown -R $OE_USER:$OE_USER $OE_HOME/* echo -e "* Create server config file" + sudo touch /etc/${OE_CONFIG}.conf echo -e "* Creating server config file" sudo su root -c "printf '[options] \n; This is the password that allows database operations:\n' >> /etc/${OE_CONFIG}.conf" sudo su root -c "printf 'admin_passwd = ${OE_SUPERADMIN}\n' >> /etc/${OE_CONFIG}.conf" sudo su root -c "printf 'xmlrpc_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf" +if [ $INSTALL_NGINX = "True" ]; then + sudo su root -c "printf 'proxy_mode = True\n' >> /etc/${OE_CONFIG}.conf" +fi sudo su root -c "printf 'logfile = /var/log/${OE_USER}/${OE_CONFIG}.log\n' >> /etc/${OE_CONFIG}.conf" + if [ $IS_ENTERPRISE = "True" ]; then sudo su root -c "printf 'addons_path=${OE_HOME}/enterprise/addons,${OE_HOME_EXT}/addons\n' >> /etc/${OE_CONFIG}.conf" else @@ -250,6 +260,88 @@ sudo update-rc.d $OE_CONFIG defaults echo -e "* Starting Odoo Service" sudo su root -c "/etc/init.d/$OE_CONFIG start" +#-------------------------------------------------- +# Install Nginx if needed +#-------------------------------------------------- +if [ $INSTALL_NGINX = "True" ]; then + echo -e "\n---- Installing and setting up Nginx ----" + sudo apt install nginx -y + cat < ~/$OE_USER + server { + listen 80; + + # set proper server name after domain set + server_name $WEBSITE_NAME; + + # Add Headers for odoo proxy mode + proxy_set_header X-Forwarded-Host \$host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto \$scheme; + proxy_set_header X-Real-IP \$remote_addr; + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-XSS-Protection "1; mode=block"; + + # odoo log files + access_log /var/log/nginx/$OE_USER-access.log; + error_log /var/log/nginx/$OE_USER-error.log; + + # increase proxy buffer size + proxy_buffers 16 64k; + proxy_buffer_size 128k; + + proxy_read_timeout 720s; + proxy_connect_timeout 720s; + proxy_send_timeout 720s; + + # force timeouts if the backend dies + proxy_next_upstream error timeout invalid_header http_500 http_502 + http_503; + + types { + text/less less; + } + + # enable data compression + gzip on; + gzip_min_length 1100; + gzip_buffers 4 32k; + gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript application/pdf image/jpeg image/png; + gzip_vary on; + client_header_buffer_size 4k; + large_client_header_buffers 4 64k; + client_max_body_size 0; + + location / { + proxy_pass http://127.0.0.1:$OE_PORT; + # by default, do not forward anything + proxy_redirect off; + } + + location /longpolling { + proxy_pass http://127.0.0.1:8072; + } + + # cache some static data in memory for 60mins. + location ~ /[a-zA-Z0-9_-]*/static/ { + proxy_cache_valid 200 302 60m; + proxy_cache_valid 404 1m; + proxy_buffering on; + expires 864000; + proxy_pass http://127.0.0.1:$OE_PORT; + } + } +EOF + + sudo mv ~/$OE_USER /etc/nginx/sites-available/ + sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/$OE_USER + sudo rm /etc/nginx/sites-enabled/default + sudo service nginx reload + +else + echo "Nginx isn't installed due to the choice of the user!" +fi + + echo "-----------------------------------------------------------" echo "Done! The Odoo server is up and running. Specifications:" echo "Port: $OE_PORT" @@ -260,4 +352,7 @@ echo "Addons folder: $OE_USER/$OE_CONFIG/addons/" echo "Start Odoo service: sudo service $OE_CONFIG start" echo "Stop Odoo service: sudo service $OE_CONFIG stop" echo "Restart Odoo service: sudo service $OE_CONFIG restart" +if [ $INSTALL_NGINX = "True" ]; then + echo "Done! The Nginx server is up and running. Configuration can be found at /etc/nginx/sites-available/$OE_USER" +fi echo "-----------------------------------------------------------" From 1dd88b59aa129d06ae6d4e4e9c5ec7b446daa2ea Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Wed, 26 Dec 2018 16:47:52 +0530 Subject: [PATCH 02/12] Parent directory fixes --- odoo_install.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index 4022545..21b435a 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -124,8 +124,7 @@ if [ $IS_ENTERPRISE = "True" ]; then # Odoo Enterprise install! echo -e "\n--- Create symlink for node" sudo ln -s /usr/bin/nodejs /usr/bin/node - sudo su $OE_USER -c "mkdir $OE_HOME/enterprise" - sudo su $OE_USER -c "mkdir $OE_HOME/enterprise/addons" + sudo su $OE_USER -c "mkdir -p $OE_HOME/enterprise/addons" GITHUB_RESPONSE=$(sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/enterprise "$OE_HOME/enterprise/addons" 2>&1) while [[ $GITHUB_RESPONSE == *"Authentication"* ]]; do @@ -147,8 +146,7 @@ if [ $IS_ENTERPRISE = "True" ]; then fi echo -e "\n---- Create custom module directory ----" -sudo su $OE_USER -c "mkdir $OE_HOME/custom" -sudo su $OE_USER -c "mkdir $OE_HOME/custom/addons" +sudo su $OE_USER -c "mkdir -p $OE_HOME/custom/addons" echo -e "\n---- Setting permissions on home folder ----" sudo chown -R $OE_USER:$OE_USER $OE_HOME/* From f1dfca1ddd4806ad9e5dc6d72e68729f867df820 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Wed, 26 Dec 2018 23:39:34 +0530 Subject: [PATCH 03/12] Readme changes --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index eec845a..2a4209d 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ There are a few things you can configure, this is the most used list:
```OE_VERSION``` is the Odoo version to install, for example ```12.0``` for Odoo V12.
```IS_ENTERPRISE``` will install the Enterprise version on top of ```12.0``` if you set it to ```True```, set it to ```False``` if you want the community version of Odoo 12.
```OE_SUPERADMIN``` is the master password for this Odoo installation.
+```INSTALL_NGINX``` is set to ```False``` Set this to ```True``` if you want to install Nginx.
+```WEBSITE_NAME``` Set the website name here for nginx configuration
#### 3. Make the script executable ``` From 6aa0c44361d8216fb59e856402bff806553101c8 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Thu, 27 Dec 2018 21:22:27 +0530 Subject: [PATCH 04/12] Fixes --- README.md | 2 +- odoo_install.sh | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2a4209d..f6e32c8 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ There are a few things you can configure, this is the most used list:
```OE_VERSION``` is the Odoo version to install, for example ```12.0``` for Odoo V12.
```IS_ENTERPRISE``` will install the Enterprise version on top of ```12.0``` if you set it to ```True```, set it to ```False``` if you want the community version of Odoo 12.
```OE_SUPERADMIN``` is the master password for this Odoo installation.
-```INSTALL_NGINX``` is set to ```False``` Set this to ```True``` if you want to install Nginx.
+```INSTALL_NGINX``` is set to ```False``` by default. Set this to ```True``` if you want to install Nginx.
```WEBSITE_NAME``` Set the website name here for nginx configuration
#### 3. Make the script executable diff --git a/odoo_install.sh b/odoo_install.sh index 21b435a..2f57125 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -14,8 +14,6 @@ # ./odoo-install ################################################################################ -##fixed parameters -#odoo OE_USER="odoo" OE_HOME="/$OE_USER" OE_HOME_EXT="/$OE_USER/${OE_USER}-server" @@ -31,11 +29,14 @@ OE_VERSION="12.0" IS_ENTERPRISE="False" # Set this to True if you want to install Nginx! INSTALL_NGINX="False" -#set the superadmin password +# Set the superadmin password OE_SUPERADMIN="admin" OE_CONFIG="${OE_USER}-server" -#set the website name +# Set the website name WEBSITE_NAME="_" +#Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.) +LONGPOLLING_PORT="8072" + ## ### WKHTMLTOPDF download links ## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links, @@ -297,6 +298,7 @@ if [ $INSTALL_NGINX = "True" ]; then types { text/less less; + text/scss scss; } # enable data compression @@ -316,7 +318,7 @@ if [ $INSTALL_NGINX = "True" ]; then } location /longpolling { - proxy_pass http://127.0.0.1:8072; + proxy_pass http://127.0.0.1:$LONGPOLLING_PORT; } # cache some static data in memory for 60mins. From 394b2c430051c8c7c23bad330374566a9bb9a148 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Thu, 27 Dec 2018 21:24:55 +0530 Subject: [PATCH 05/12] Longpolling comment fix --- odoo_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo_install.sh b/odoo_install.sh index 2f57125..f817edd 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -34,7 +34,7 @@ OE_SUPERADMIN="admin" OE_CONFIG="${OE_USER}-server" # Set the website name WEBSITE_NAME="_" -#Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.) +#Set the default Odoo longpolling port (you still have to use -c /etc/odoo-server.conf for example to use this.) LONGPOLLING_PORT="8072" ## From 7ff9799532d6ea38b6845c8a339b1975c1ec5833 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Fri, 28 Dec 2018 22:28:37 +0530 Subject: [PATCH 06/12] Whitespace --- odoo_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo_install.sh b/odoo_install.sh index f817edd..c3b665b 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -34,7 +34,7 @@ OE_SUPERADMIN="admin" OE_CONFIG="${OE_USER}-server" # Set the website name WEBSITE_NAME="_" -#Set the default Odoo longpolling port (you still have to use -c /etc/odoo-server.conf for example to use this.) +# Set the default Odoo longpolling port (you still have to use -c /etc/odoo-server.conf for example to use this.) LONGPOLLING_PORT="8072" ## From 2532fdbb33cda398ca803bbbdeed8e8e3463a024 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Mon, 14 Jan 2019 13:30:04 +0530 Subject: [PATCH 07/12] Testing for updated wkhtmltopdf change for odoo v12 onwards --- odoo_install.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index c3b665b..c1bd0e8 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -42,9 +42,16 @@ LONGPOLLING_PORT="8072" ## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links, ## in order to have correct version of wkhtmltox installed, for a danger note refer to ## https://www.odoo.com/documentation/8.0/setup/install.html#deb ): -WKHTMLTOX_X64=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb -WKHTMLTOX_X32=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-i386.deb +## For odoo version 12.0 onwards +## https://www.odoo.com/documentation/12.0/setup/install.html#debian-ubuntu +if [ $OE_VERSION == "12.0" ];then + WKHTMLTOX_X64=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb + WKHTMLTOX_X32=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_i386.deb + else + WKHTMLTOX_X64=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb + WKHTMLTOX_X32=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-i386.deb + fi #-------------------------------------------------- # Update Server #-------------------------------------------------- From 3d383175243c0642cf178763524597a1d9a635c7 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Mon, 14 Jan 2019 16:32:52 +0530 Subject: [PATCH 08/12] libpng12-0 --- odoo_install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/odoo_install.sh b/odoo_install.sh index c1bd0e8..cd36eab 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -58,6 +58,8 @@ if [ $OE_VERSION == "12.0" ];then echo -e "\n---- Update Server ----" # universe package is for Ubuntu 18.x sudo add-apt-repository universe +# libpng12-0 dependency for wkhtmltopdf +sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main" sudo apt-get update sudo apt-get upgrade -y @@ -80,7 +82,7 @@ echo -e "\n---- Install tool packages ----" sudo apt-get install wget git bzr python-pip gdebi-core -y echo -e "\n---- Install python packages ----" -sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev -y +sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev libpng12-0 -y sudo apt-get install libsasl2-dev libldap2-dev libssl-dev -y sudo apt-get install python-pypdf2 python-dateutil python-feedparser python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf python-decorator python-requests python-passlib python-pil -y sudo pip3 install pypdf2 Babel passlib Werkzeug decorator python-dateutil pyyaml psycopg2 psutil html2text docutils lxml pillow reportlab ninja2 requests gdata XlsxWriter vobject python-openid pyparsing pydot mock mako Jinja2 ebaysdk feedparser xlwt psycogreen suds-jurko pytz pyusb greenlet xlrd chardet libsass From e396a9ae0ff2e6470d4c9423d91fe6cfc58622fe Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Mon, 28 Jan 2019 20:46:37 +0530 Subject: [PATCH 09/12] Changes for odoo 12 and optimising nginx checks --- odoo_install.sh | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index cd36eab..7dde110 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -42,16 +42,10 @@ LONGPOLLING_PORT="8072" ## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links, ## in order to have correct version of wkhtmltox installed, for a danger note refer to ## https://www.odoo.com/documentation/8.0/setup/install.html#deb ): -## For odoo version 12.0 onwards ## https://www.odoo.com/documentation/12.0/setup/install.html#debian-ubuntu -if [ $OE_VERSION == "12.0" ];then - WKHTMLTOX_X64=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb - WKHTMLTOX_X32=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_i386.deb - else - WKHTMLTOX_X64=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb - WKHTMLTOX_X32=https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-i386.deb - fi +WKHTMLTOX_X64=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb +WKHTMLTOX_X32=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_i386.deb #-------------------------------------------------- # Update Server #-------------------------------------------------- @@ -112,7 +106,7 @@ if [ $INSTALL_WKHTMLTOPDF = "True" ]; then sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin else - echo "Wkhtmltopdf isn't installed due to the choice of the user!" + echo "Wkhtmltopdf isn't installed due to choice of the user!" fi echo -e "\n---- Create ODOO system user ----" @@ -168,9 +162,10 @@ sudo touch /etc/${OE_CONFIG}.conf echo -e "* Creating server config file" sudo su root -c "printf '[options] \n; This is the password that allows database operations:\n' >> /etc/${OE_CONFIG}.conf" sudo su root -c "printf 'admin_passwd = ${OE_SUPERADMIN}\n' >> /etc/${OE_CONFIG}.conf" -sudo su root -c "printf 'xmlrpc_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf" -if [ $INSTALL_NGINX = "True" ]; then - sudo su root -c "printf 'proxy_mode = True\n' >> /etc/${OE_CONFIG}.conf" +if [ $OE_VERSION == "12.0" ];then + sudo su root -c "printf 'http_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf" +else + sudo su root -c "printf 'xmlrpc_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf" fi sudo su root -c "printf 'logfile = /var/log/${OE_USER}/${OE_CONFIG}.log\n' >> /etc/${OE_CONFIG}.conf" @@ -266,8 +261,6 @@ sudo chown root: /etc/init.d/$OE_CONFIG echo -e "* Start ODOO on Startup" sudo update-rc.d $OE_CONFIG defaults -echo -e "* Starting Odoo Service" -sudo su root -c "/etc/init.d/$OE_CONFIG start" #-------------------------------------------------- # Install Nginx if needed #-------------------------------------------------- @@ -345,12 +338,13 @@ EOF sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/$OE_USER sudo rm /etc/nginx/sites-enabled/default sudo service nginx reload - + sudo su root -c "printf 'proxy_mode = True\n' >> /etc/${OE_CONFIG}.conf" + echo "Done! The Nginx server is up and running. Configuration can be found at /etc/nginx/sites-enabled/$OE_USER" else - echo "Nginx isn't installed due to the choice of the user!" + echo "Nginx isn't installed due to choice of the user!" fi - - +echo -e "* Starting Odoo Service" +sudo su root -c "/etc/init.d/$OE_CONFIG start" echo "-----------------------------------------------------------" echo "Done! The Odoo server is up and running. Specifications:" echo "Port: $OE_PORT" @@ -361,7 +355,4 @@ echo "Addons folder: $OE_USER/$OE_CONFIG/addons/" echo "Start Odoo service: sudo service $OE_CONFIG start" echo "Stop Odoo service: sudo service $OE_CONFIG stop" echo "Restart Odoo service: sudo service $OE_CONFIG restart" -if [ $INSTALL_NGINX = "True" ]; then - echo "Done! The Nginx server is up and running. Configuration can be found at /etc/nginx/sites-available/$OE_USER" -fi echo "-----------------------------------------------------------" From f89ae2e2e160b0e928536e799b8f7d65aea5ab7e Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Sun, 12 Jan 2020 21:50:54 +0530 Subject: [PATCH 10/12] changes --- odoo_install.sh | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index 6a106b8..39e60ca 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -42,8 +42,8 @@ LONGPOLLING_PORT="8072" ## ### WKHTMLTOPDF download links ## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links, -## in order to have correct version of wkhtmltox installed, for a danger note refer to -## https://www.odoo.com/documentation/8.0/setup/install.html#deb ): +## in order to have correct version of wkhtmltopdf installed, for a danger note refer to +## https://github.com/odoo/odoo/wiki/Wkhtmltopdf ): ## https://www.odoo.com/documentation/12.0/setup/install.html#debian-ubuntu WKHTMLTOX_X64=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb @@ -97,7 +97,7 @@ if [ $INSTALL_WKHTMLTOPDF = "True" ]; then sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin else - echo "Wkhtmltopdf isn't installed due to choice of the user!" + echo "Wkhtmltopdf isn't installed due to the choice of the user!" fi echo -e "\n---- Create ODOO system user ----" @@ -119,7 +119,8 @@ if [ $IS_ENTERPRISE = "True" ]; then # Odoo Enterprise install! echo -e "\n--- Create symlink for node" sudo ln -s /usr/bin/nodejs /usr/bin/node - sudo su $OE_USER -c "mkdir -p $OE_HOME/enterprise/addons" + sudo su $OE_USER -c "mkdir $OE_HOME/enterprise" + sudo su $OE_USER -c "mkdir $OE_HOME/enterprise/addons" GITHUB_RESPONSE=$(sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/enterprise "$OE_HOME/enterprise/addons" 2>&1) while [[ $GITHUB_RESPONSE == *"Authentication"* ]]; do @@ -140,7 +141,8 @@ if [ $IS_ENTERPRISE = "True" ]; then fi echo -e "\n---- Create custom module directory ----" -sudo su $OE_USER -c "mkdir -p $OE_HOME/custom/addons" +sudo su $OE_USER -c "mkdir $OE_HOME/custom" +sudo su $OE_USER -c "mkdir $OE_HOME/custom/addons" echo -e "\n---- Setting permissions on home folder ----" sudo chown -R $OE_USER:$OE_USER $OE_HOME/* @@ -156,7 +158,7 @@ if [ $GENERATE_RANDOM_PASSWORD = "True" ]; then OE_SUPERADMIN=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1) fi sudo su root -c "printf 'admin_passwd = ${OE_SUPERADMIN}\n' >> /etc/${OE_CONFIG}.conf" -if [ $OE_VERSION == "12.0" ];then +if [ $OE_VERSION >= "12.0" ];then sudo su root -c "printf 'http_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf" else sudo su root -c "printf 'xmlrpc_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf" @@ -275,6 +277,8 @@ if [ $INSTALL_NGINX = "True" ]; then proxy_set_header X-Real-IP \$remote_addr; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; + proxy_set_header X-Client-IP $remote_addr; + proxy_set_header HTTP_X_FORWARDED_HOST $remote_addr; # odoo log files access_log /var/log/nginx/$OE_USER-access.log; @@ -284,9 +288,9 @@ if [ $INSTALL_NGINX = "True" ]; then proxy_buffers 16 64k; proxy_buffer_size 128k; - proxy_read_timeout 720s; - proxy_connect_timeout 720s; - proxy_send_timeout 720s; + proxy_read_timeout 900s; + proxy_connect_timeout 900s; + proxy_send_timeout 900s; # force timeouts if the backend dies proxy_next_upstream error timeout invalid_header http_500 http_502 @@ -316,7 +320,11 @@ if [ $INSTALL_NGINX = "True" ]; then location /longpolling { proxy_pass http://127.0.0.1:$LONGPOLLING_PORT; } - + location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { + expires 2d; + proxy_pass http://127.0.0.1:$OE_PORT; + add_header Cache-Control "public, no-transform"; + } # cache some static data in memory for 60mins. location ~ /[a-zA-Z0-9_-]*/static/ { proxy_cache_valid 200 302 60m; From dcb72d7412f77e6bb5ac695a6bba798e1d80aa7a Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Mon, 13 Jan 2020 16:22:20 +0530 Subject: [PATCH 11/12] spacing --- odoo_install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index 39e60ca..2ce2f65 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -17,10 +17,10 @@ OE_USER="odoo" OE_HOME="/$OE_USER" OE_HOME_EXT="/$OE_USER/${OE_USER}-server" -#The default port where this Odoo instance will run under (provided you use the command -c in the terminal) -#Set to true if you want to install it, false if you don't need it or have it already installed. +# The default port where this Odoo instance will run under (provided you use the command -c in the terminal) +# Set to true if you want to install it, false if you don't need it or have it already installed. INSTALL_WKHTMLTOPDF="True" -#Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.) +# Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.) OE_PORT="8069" # Choose the Odoo version which you want to install. For example: 13.0, 12.0, 11.0 or saas-18. When using 'master' the master version will be installed. # IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 13.0 From 7a6c9d0d85a3680531323423cd78e3d3d2bc14d6 Mon Sep 17 00:00:00 2001 From: Tony Benoy Date: Sat, 1 Feb 2020 18:30:15 +0530 Subject: [PATCH 12/12] tabs to spaces,keeping nginx conf as odoo. --- odoo_install.sh | 138 ++++++++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/odoo_install.sh b/odoo_install.sh index 2ce2f65..1cb34c2 100644 --- a/odoo_install.sh +++ b/odoo_install.sh @@ -263,85 +263,85 @@ sudo update-rc.d $OE_CONFIG defaults if [ $INSTALL_NGINX = "True" ]; then echo -e "\n---- Installing and setting up Nginx ----" sudo apt install nginx -y - cat < ~/$OE_USER - server { - listen 80; - - # set proper server name after domain set - server_name $WEBSITE_NAME; - - # Add Headers for odoo proxy mode - proxy_set_header X-Forwarded-Host \$host; - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto \$scheme; - proxy_set_header X-Real-IP \$remote_addr; - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-XSS-Protection "1; mode=block"; - proxy_set_header X-Client-IP $remote_addr; - proxy_set_header HTTP_X_FORWARDED_HOST $remote_addr; - - # odoo log files - access_log /var/log/nginx/$OE_USER-access.log; - error_log /var/log/nginx/$OE_USER-error.log; - - # increase proxy buffer size - proxy_buffers 16 64k; - proxy_buffer_size 128k; - - proxy_read_timeout 900s; - proxy_connect_timeout 900s; - proxy_send_timeout 900s; - - # force timeouts if the backend dies - proxy_next_upstream error timeout invalid_header http_500 http_502 - http_503; - - types { - text/less less; - text/scss scss; - } - - # enable data compression - gzip on; - gzip_min_length 1100; - gzip_buffers 4 32k; - gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript application/pdf image/jpeg image/png; - gzip_vary on; - client_header_buffer_size 4k; - large_client_header_buffers 4 64k; - client_max_body_size 0; - - location / { - proxy_pass http://127.0.0.1:$OE_PORT; - # by default, do not forward anything - proxy_redirect off; - } - - location /longpolling { - proxy_pass http://127.0.0.1:$LONGPOLLING_PORT; - } + cat < ~/odoo + server { + listen 80; + + # set proper server name after domain set + server_name $WEBSITE_NAME; + + # Add Headers for odoo proxy mode + proxy_set_header X-Forwarded-Host \$host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto \$scheme; + proxy_set_header X-Real-IP \$remote_addr; + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-XSS-Protection "1; mode=block"; + proxy_set_header X-Client-IP $remote_addr; + proxy_set_header HTTP_X_FORWARDED_HOST $remote_addr; + + # odoo log files + access_log /var/log/nginx/$OE_USER-access.log; + error_log /var/log/nginx/$OE_USER-error.log; + + # increase proxy buffer size + proxy_buffers 16 64k; + proxy_buffer_size 128k; + + proxy_read_timeout 900s; + proxy_connect_timeout 900s; + proxy_send_timeout 900s; + + # force timeouts if the backend dies + proxy_next_upstream error timeout invalid_header http_500 http_502 + http_503; + + types { + text/less less; + text/scss scss; + } + + # enable data compression + gzip on; + gzip_min_length 1100; + gzip_buffers 4 32k; + gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript application/pdf image/jpeg image/png; + gzip_vary on; + client_header_buffer_size 4k; + large_client_header_buffers 4 64k; + client_max_body_size 0; + + location / { + proxy_pass http://127.0.0.1:$OE_PORT; + # by default, do not forward anything + proxy_redirect off; + } + + location /longpolling { + proxy_pass http://127.0.0.1:$LONGPOLLING_PORT; + } location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires 2d; proxy_pass http://127.0.0.1:$OE_PORT; add_header Cache-Control "public, no-transform"; } - # cache some static data in memory for 60mins. - location ~ /[a-zA-Z0-9_-]*/static/ { - proxy_cache_valid 200 302 60m; - proxy_cache_valid 404 1m; - proxy_buffering on; - expires 864000; - proxy_pass http://127.0.0.1:$OE_PORT; - } - } + # cache some static data in memory for 60mins. + location ~ /[a-zA-Z0-9_-]*/static/ { + proxy_cache_valid 200 302 60m; + proxy_cache_valid 404 1m; + proxy_buffering on; + expires 864000; + proxy_pass http://127.0.0.1:$OE_PORT; + } + } EOF - sudo mv ~/$OE_USER /etc/nginx/sites-available/ - sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/$OE_USER + sudo mv ~/odoo /etc/nginx/sites-available/ + sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo sudo rm /etc/nginx/sites-enabled/default sudo service nginx reload sudo su root -c "printf 'proxy_mode = True\n' >> /etc/${OE_CONFIG}.conf" - echo "Done! The Nginx server is up and running. Configuration can be found at /etc/nginx/sites-enabled/$OE_USER" + echo "Done! The Nginx server is up and running. Configuration can be found at /etc/nginx/sites-available/odoo" else echo "Nginx isn't installed due to choice of the user!" fi