diff --git a/README.md b/README.md
index 758ebc7..f702d99 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@ There are a few things you can configure, this is the most used list:
```OE_PORT``` is the port where Odoo should run on, for example 8069.
```OE_VERSION``` is the Odoo version to install, for example ```11.0``` for Odoo V11.
```IS_ENTERPRISE``` will install the Enterprise version on top of ```11.0``` if you set it to ```True```, set it to ```False``` if you want the community version of Odoo 11.
+```INSTALL_NGINX``` set to ```False``` if you do not want to install Nginx, if you want to install it you should set it to ```True```.
```OE_SUPERADMIN``` is the master password for this Odoo installation.
#### 3. Make the script executable
diff --git a/odoo_install.sh b/odoo_install.sh
index c69c356..0ca3990 100644
--- a/odoo_install.sh
+++ b/odoo_install.sh
@@ -29,6 +29,8 @@ OE_PORT="8069"
OE_VERSION="11.0"
# Set this to True if you want to install Odoo 11 Enterprise!
IS_ENTERPRISE="False"
+# Set this to True if you want to install Nginx!
+INSTALL_NGINX="True"
#set the superadmin password
OE_SUPERADMIN="admin"
OE_CONFIG="${OE_USER}-server"
@@ -36,7 +38,7 @@ OE_CONFIG="${OE_USER}-server"
##
### 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
@@ -61,14 +63,14 @@ sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true
# Install Dependencies
#--------------------------------------------------
echo -e "\n--- Installing Python 3 + pip3 --"
-sudo apt-get install python3 python3-pip
+sudo apt-get install python3 python3-pip -y
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 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
+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
echo -e "\n---- Install python libraries ----"
# This is for compatibility with Ubuntu 16.04. Will work on 14.04, 15.04 and 16.04
@@ -148,12 +150,15 @@ 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"
+sudo su root -c "printf 'proxy_mode = True\n' >> /etc/${OE_CONFIG}.conf"
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
@@ -248,6 +253,85 @@ 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 < ~/odoo
+ server {
+ listen 80;
+
+ # set proper server name after domain set
+ server_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;
+
+ # odoo log files
+ access_log /var/log/nginx/odoo-access.log;
+ error_log /var/log/nginx/odoo-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_max_body_size 0;
+
+ location / {
+ proxy_pass http://127.0.0.1:8069;
+ # 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:8069;
+ }
+ }
+EOF
+
+ 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
+
+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"
@@ -258,4 +342,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/odoo"
+fi
echo "-----------------------------------------------------------"
diff --git a/odoo_install_nginx.sh b/odoo_install_nginx.sh
deleted file mode 100644
index a8e34a7..0000000
--- a/odoo_install_nginx.sh
+++ /dev/null
@@ -1,335 +0,0 @@
-#!/bin/bash
-################################################################################
-# Script for installing Odoo on Ubuntu 14.04, 15.04, 16.04 and 18.04 (could be used for other version too)
-# Author: Yenthe Van Ginneken
-#-------------------------------------------------------------------------------
-# This script will install Odoo on your Ubuntu 16.04 server. It can install multiple Odoo instances
-# in one Ubuntu because of the different xmlrpc_ports
-#-------------------------------------------------------------------------------
-# Make a new file:
-# sudo nano odoo-install.sh
-# Place this content in it and then make the file executable:
-# sudo chmod +x odoo-install.sh
-# Execute the script to install Odoo:
-# ./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.
-INSTALL_WKHTMLTOPDF="True"
-#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: 11.0, 10.0, 9.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 11.0
-OE_VERSION="11.0"
-# Set this to True if you want to install Odoo 11 Enterprise!
-IS_ENTERPRISE="False"
-#set the superadmin password
-OE_SUPERADMIN="admin"
-OE_CONFIG="${OE_USER}-server"
-
-##
-### 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 ):
-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
-
-#--------------------------------------------------
-# Update Server
-#--------------------------------------------------
-echo -e "\n---- Update Server ----"
-sudo apt-get update
-sudo apt-get upgrade -y
-
-#--------------------------------------------------
-# Install PostgreSQL Server
-#--------------------------------------------------
-echo -e "\n---- Install PostgreSQL Server ----"
-sudo apt-get install postgresql -y
-
-echo -e "\n---- Creating the ODOO PostgreSQL User ----"
-sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true
-
-#--------------------------------------------------
-# Install Dependencies
-#--------------------------------------------------
-echo -e "\n--- Installing Python 3 + pip3 --"
-sudo apt-get install python3 python3-pip -y
-
-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 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
-
-echo -e "\n---- Install python libraries ----"
-# This is for compatibility with Ubuntu 16.04. Will work on 14.04, 15.04 and 16.04
-sudo apt-get install python3-suds
-
-echo -e "\n--- Install other required packages"
-sudo apt-get install node-clean-css -y
-sudo apt-get install node-less -y
-sudo apt-get install python-gevent -y
-
-#--------------------------------------------------
-# Install Wkhtmltopdf if needed
-#--------------------------------------------------
-if [ $INSTALL_WKHTMLTOPDF = "True" ]; then
- echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO 11 ----"
- #pick up correct one from x64 & x32 versions:
- if [ "`getconf LONG_BIT`" == "64" ];then
- _url=$WKHTMLTOX_X64
- else
- _url=$WKHTMLTOX_X32
- fi
- sudo wget $_url
- sudo gdebi --n `basename $_url`
- 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!"
-fi
-
-echo -e "\n---- Create ODOO system user ----"
-sudo adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER
-#The user should also be added to the sudo'ers group.
-sudo adduser $OE_USER sudo
-
-echo -e "\n---- Create Log directory ----"
-sudo mkdir /var/log/$OE_USER
-sudo chown $OE_USER:$OE_USER /var/log/$OE_USER
-
-#--------------------------------------------------
-# Install ODOO
-#--------------------------------------------------
-echo -e "\n==== Installing ODOO Server ===="
-sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/
-
-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"
-
- 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
- echo "------------------------WARNING------------------------------"
- echo "Your authentication with Github has failed! Please try again."
- printf "In order to clone and install the Odoo enterprise version you \nneed to be an offical Odoo partner and you need access to\nhttp://github.com/odoo/enterprise.\n"
- echo "TIP: Press ctrl+c to stop this script."
- echo "-------------------------------------------------------------"
- echo " "
- GITHUB_RESPONSE=$(sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/enterprise "$OE_HOME/enterprise/addons" 2>&1)
- done
-
- echo -e "\n---- Added Enterprise code under $OE_HOME/enterprise/addons ----"
- echo -e "\n---- Installing Enterprise specific libraries ----"
- sudo pip3 install num2words ofxparse
- sudo apt-get install nodejs npm
- sudo npm install -g less
- sudo npm install -g less-plugin-clean-css
-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"
-
-echo -e "\n---- Setting permissions on home folder ----"
-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"
-sudo su root -c "printf 'proxy_mode = True\n' >> /etc/${OE_CONFIG}.conf"
-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
- sudo su root -c "printf 'addons_path=${OE_HOME_EXT}/addons,${OE_HOME}/custom/addons\n' >> /etc/${OE_CONFIG}.conf"
-fi
-sudo chown $OE_USER:$OE_USER /etc/${OE_CONFIG}.conf
-sudo chmod 640 /etc/${OE_CONFIG}.conf
-
-echo -e "* Create startup file"
-sudo su root -c "echo '#!/bin/sh' >> $OE_HOME_EXT/start.sh"
-sudo su root -c "echo 'sudo -u $OE_USER $OE_HOME_EXT/openerp-server --config=/etc/${OE_CONFIG}.conf' >> $OE_HOME_EXT/start.sh"
-sudo chmod 755 $OE_HOME_EXT/start.sh
-
-#--------------------------------------------------
-# Adding ODOO as a deamon (initscript)
-#--------------------------------------------------
-
-echo -e "* Create init file"
-cat < ~/$OE_CONFIG
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides: $OE_CONFIG
-# Required-Start: \$remote_fs \$syslog
-# Required-Stop: \$remote_fs \$syslog
-# Should-Start: \$network
-# Should-Stop: \$network
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Enterprise Business Applications
-# Description: ODOO Business Applications
-### END INIT INFO
-PATH=/bin:/sbin:/usr/bin
-DAEMON=$OE_HOME_EXT/odoo-bin
-NAME=$OE_CONFIG
-DESC=$OE_CONFIG
-# Specify the user name (Default: odoo).
-USER=$OE_USER
-# Specify an alternate config file (Default: /etc/openerp-server.conf).
-CONFIGFILE="/etc/${OE_CONFIG}.conf"
-# pidfile
-PIDFILE=/var/run/\${NAME}.pid
-# Additional options that are passed to the Daemon.
-DAEMON_OPTS="-c \$CONFIGFILE"
-[ -x \$DAEMON ] || exit 0
-[ -f \$CONFIGFILE ] || exit 0
-checkpid() {
-[ -f \$PIDFILE ] || return 1
-pid=\`cat \$PIDFILE\`
-[ -d /proc/\$pid ] && return 0
-return 1
-}
-case "\${1}" in
-start)
-echo -n "Starting \${DESC}: "
-start-stop-daemon --start --quiet --pidfile \$PIDFILE \
---chuid \$USER --background --make-pidfile \
---exec \$DAEMON -- \$DAEMON_OPTS
-echo "\${NAME}."
-;;
-stop)
-echo -n "Stopping \${DESC}: "
-start-stop-daemon --stop --quiet --pidfile \$PIDFILE \
---oknodo
-echo "\${NAME}."
-;;
-restart|force-reload)
-echo -n "Restarting \${DESC}: "
-start-stop-daemon --stop --quiet --pidfile \$PIDFILE \
---oknodo
-sleep 1
-start-stop-daemon --start --quiet --pidfile \$PIDFILE \
---chuid \$USER --background --make-pidfile \
---exec \$DAEMON -- \$DAEMON_OPTS
-echo "\${NAME}."
-;;
-*)
-N=/etc/init.d/\$NAME
-echo "Usage: \$NAME {start|stop|restart|force-reload}" >&2
-exit 1
-;;
-esac
-exit 0
-EOF
-
-echo -e "* Security Init File"
-sudo mv ~/$OE_CONFIG /etc/init.d/$OE_CONFIG
-sudo chmod 755 /etc/init.d/$OE_CONFIG
-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"
-echo "*installing and setting up nginx"
-sudo apt install nginx -y
-cat < ~/odoo
-server {
- listen 80;
-
- # set proper server name after domain set
- server_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;
-
- # odoo log files
- access_log /var/log/nginx/odoo-access.log;
- error_log /var/log/nginx/odoo-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_max_body_size 0;
-
- location / {
- proxy_pass http://127.0.0.1:8069;
- # 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:8069;
- }
-}
-EOF
-
-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
-
-echo "-----------------------------------------------------------"
-echo "Done! The Odoo server is up and running. Specifications:"
-echo "Port: $OE_PORT"
-echo "User service: $OE_USER"
-echo "User PostgreSQL: $OE_USER"
-echo "Code location: $OE_USER"
-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"
-echo "Done! The Nginx server is up and running. Configuration can be found at /etc/nginx/sites-available/odoo"
-echo "-----------------------------------------------------------"
-