diff --git a/README.md b/README.md
index 1fbafc82..cdb259cf 100644
--- a/README.md
+++ b/README.md
@@ -16,13 +16,15 @@ sudo wget https://raw.githubusercontent.com/Yenthe666/InstallScript/17.0/odoo_in
##### 2. Modify the parameters as you wish.
There are a few things you can configure, this is the most used list:
```OE_USER``` will be the username for the system user.
-```GENERATE_RANDOM_PASSWORD``` if this is set to ```True``` the script will generate a random password, if set to ```False```we'll set the password that is configured in ```OE_SUPERADMIN```. By default the value is ```True``` and the script will generate a random and secure password.
```INSTALL_WKHTMLTOPDF``` set to ```False``` if you do not want to install Wkhtmltopdf, if you want to install it you should set it to ```True```.
```OE_PORT``` is the port where Odoo should run on, for example 8069.
```OE_VERSION``` is the Odoo version to install, for example ```17.0``` for Odoo V17.
```IS_ENTERPRISE``` will install the Enterprise version on top of ```17.0``` if you set it to ```True```, set it to ```False``` if you want the community version of Odoo 17.
-```OE_SUPERADMIN``` is the master password for this Odoo installation.
+```INSTALL_POSTRESQL_SIXTEEN``` is set to ```True``` by default for improved performance. Set to ```False``` if you want to install repository based PostgreSQL version.
+```REMOTE_POSTGRESQL``` is set to ```False``` by default. Set this to ```True``` if you have a dedicated PostgreSQL server running and do not need to install PostgreSQL. If ```True``` you must configure the ```OE_DB_HOST, OE_DB_USER, OE_DB_PORT, and OE_DB_PASS``` parameters.
```INSTALL_NGINX``` is set to ```False``` by default. Set this to ```True``` if you want to install Nginx.
+```OE_SUPERADMIN``` is the master password for this Odoo installation.
+```GENERATE_RANDOM_PASSWORD``` if this is set to ```True``` the script will generate a random password, if set to ```False```we'll set the password that is configured in ```OE_SUPERADMIN```. By default the value is ```True``` and the script will generate a random and secure password.
```WEBSITE_NAME``` Set the website name here for nginx configuration
```ENABLE_SSL``` Set this to ```True``` to install [certbot](https://github.com/certbot/certbot) and configure nginx with https using a free Let's Encrypted certificate
```ADMIN_EMAIL``` Email is needed to register for Let's Encrypt registration. Replace the default placeholder with an email of your organisation.
diff --git a/odoo_install.sh b/odoo_install.sh
index 9cf35ae0..5a6c4113 100644
--- a/odoo_install.sh
+++ b/odoo_install.sh
@@ -1,15 +1,15 @@
#!/bin/bash
################################################################################
-# Script for installing Odoo on Ubuntu 16.04, 18.04, 20.04 and 22.04 (could be used for other version too)
+# Script for installing Odoo on Ubuntu 20.04, 22.04 and 24.04 (could be used for other version too with adjustments)
# Author: Yenthe Van Ginneken
#-------------------------------------------------------------------------------
# This script will install Odoo on your Ubuntu server. It can install multiple Odoo instances
-# in one Ubuntu because of the different xmlrpc_ports
+# in one Ubuntu because of the different http_ports
#-------------------------------------------------------------------------------
# Make a new file:
-# sudo nano odoo-install.sh
+# sudo nano odoo_install.sh
# Place this content in it and then make the file executable:
-# sudo chmod +x odoo-install.sh
+# sudo chmod +x odoo_install.sh
# Execute the script to install Odoo:
# ./odoo-install
################################################################################
@@ -22,13 +22,20 @@ OE_HOME_EXT="/$OE_USER/${OE_USER}-server"
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: 16.0, 15.0, 14.0 or saas-22. When using 'master' the master version will be installed.
+# Choose the Odoo version which you want to install. For example: 17.0, 16.0, 15.0, or saas-22. When using 'master' the master version will be installed.
# IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 17.0
OE_VERSION="17.0"
# Set this to True if you want to install the Odoo enterprise version!
-IS_ENTERPRISE="False"
-# Installs postgreSQL V14 instead of defaults (e.g V12 for Ubuntu 20/22) - this improves performance
-INSTALL_POSTGRESQL_FOURTEEN="True"
+IS_ENTERPRISE="True"
+# Installs postgreSQL V16 instead of defaults (e.g V12 for Ubuntu 20/22) - this improves performance
+INSTALL_POSTGRESQL_SIXTEEN="True"
+# Set to True and provide the Database Parameters if using remote PostgresSQL Server
+REMOTE_POSTGRESQL="False"
+# Set the Database Parameters to be added to the Odoo config file
+OE_DB_HOST=""
+OE_DB_USER=""
+OE_DB_PORT=""
+OE_DB_PASS=""
# Set this to True if you want to install Nginx!
INSTALL_NGINX="False"
# Set the superadmin password - if GENERATE_RANDOM_PASSWORD is set to "True" we will automatically generate a random password, otherwise we use this one
@@ -41,58 +48,78 @@ WEBSITE_NAME="_"
# Set the default Odoo longpolling port (you still have to use -c /etc/odoo-server.conf for example to use this.)
LONGPOLLING_PORT="8072"
# Set to "True" to install certbot and have ssl enabled, "False" to use http
-ENABLE_SSL="True"
+ENABLE_SSL="False"
# Provide Email to register ssl certificate
ADMIN_EMAIL="odoo@example.com"
-##
-### WKHTMLTOPDF download links
-## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links,
-## 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/16.0/administration/install.html
-
-# Check if the operating system is Ubuntu 22.04
-if [[ $(lsb_release -r -s) == "22.04" ]]; then
- WKHTMLTOX_X64="https://packages.ubuntu.com/jammy/wkhtmltopdf"
- WKHTMLTOX_X32="https://packages.ubuntu.com/jammy/wkhtmltopdf"
- #No Same link works for both 64 and 32-bit on Ubuntu 22.04
-else
- # For older versions of Ubuntu
- WKHTMLTOX_X64="https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.$(lsb_release -c -s)_amd64.deb"
- WKHTMLTOX_X32="https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.$(lsb_release -c -s)_i386.deb"
-fi
+
+# Check Ubuntu version to adjust script as needed
+UBUNTU_VERSION=$(lsb_release -cs) # Get the codename of the Ubuntu version
+
+# Set the URL for WKHTMLTOPDF 0.12.6 needed for Ubuntu 20.04
+echo "Adding URL for WKHTMLTOPDF 0.12.6"
+WKHTMLTOX_X64="https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.6/wkhtmltox_0.12.6-1.$(lsb_release -c -s)_amd64.deb"
+WKHTMLTOX_X32="https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.6/wkhtmltox_0.12.6-1.$(lsb_release -c -s)_i386.deb"
#--------------------------------------------------
# Update Server
#--------------------------------------------------
echo -e "\n---- Update Server ----"
-# universe package is for Ubuntu 18.x
+sudo apt-get update
+sudo apt install software-properties-common -y
+
+# Add the universe repository, which is available across these Ubuntu versions and add main resposity specific to Ubuntu 20.04, 22.04, or 24.04
sudo add-apt-repository universe
-# libpng12-0 dependency for wkhtmltopdf for older Ubuntu versions
-sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main"
+
+case $UBUNTU_VERSION in
+ focal)
+ echo "Adding repository for Ubuntu 20.04 (Focal)"
+ sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ focal main"
+ ;;
+ jammy)
+ echo "Adding repository for Ubuntu 22.04 (Jammy)"
+ sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ jammy main"
+ ;;
+ noble)
+ echo "Adding repository for Ubuntu 24.04 (Noble)"
+ sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ noble main"
+ ;;
+ *)
+ echo "Current Ubuntu version is $UBUNTU_VERSION. No specific repository added for this version."
+ ;;
+esac
+
+# Update package lists and upgrade installed packages
sudo apt-get update
sudo apt-get upgrade -y
+
+# Install specific packages
sudo apt-get install libpq-dev
#--------------------------------------------------
# Install PostgreSQL Server
#--------------------------------------------------
echo -e "\n---- Install PostgreSQL Server ----"
-if [ $INSTALL_POSTGRESQL_FOURTEEN = "True" ]; then
- echo -e "\n---- Installing postgreSQL V14 due to the user it's choise ----"
- sudo curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- sudo apt-get update
- sudo apt-get install postgresql-16
+
+# Check if REMOTE_POSTGRESQL is set to True to skip installation
+if [ "$REMOTE_POSTGRESQL" = "True" ]; then
+ echo "PostgreSQL install skipped due to choice of the user!"
else
- echo -e "\n---- Installing the default postgreSQL version based on Linux version ----"
- sudo apt-get install postgresql postgresql-server-dev-all -y
+ # Proceed with installation if REMOTE_POSTGRES is not True
+ if [ "$INSTALL_POSTGRESQL_SIXTEEN" = "True" ]; then
+ echo -e "\n---- Installing postgreSQL V16 as per user's choice ----"
+ sudo curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+ sudo apt-get update
+ sudo apt-get install postgresql-16
+ else
+ echo -e "\n---- Installing the default postgreSQL version based on Linux version ----"
+ sudo apt-get install postgresql postgresql-server-dev-all -y
+ fi
+
+ echo -e "\n---- Creating the ODOO PostgreSQL User ----"
+ sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true
fi
-
-echo -e "\n---- Creating the ODOO PostgreSQL User ----"
-sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true
-
#--------------------------------------------------
# Install Dependencies
#--------------------------------------------------
@@ -103,6 +130,10 @@ sudo apt-get install git python3-cffi build-essential wget python3-dev python3-v
echo -e "\n---- Install python packages/requirements ----"
sudo -H pip3 install -r https://github.com/odoo/odoo/raw/${OE_VERSION}/requirements.txt
+echo -e "\n---- Fix pyOpenSSL Version Problems ----"
+sudo -H pip3 uninstall pyopenssl
+sudo -H pip install pyopenssl==22.1.0
+
echo -e "\n---- Installing nodeJS NPM and rtlcss for LTR support ----"
sudo apt-get install nodejs npm -y
sudo npm install -g rtlcss
@@ -110,29 +141,32 @@ sudo npm install -g rtlcss
#--------------------------------------------------
# Install Wkhtmltopdf if needed
#--------------------------------------------------
-if [ $INSTALL_WKHTMLTOPDF = "True" ]; then
- echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO 13 ----"
- #pick up correct one from x64 & x32 versions:
- if [ "`getconf LONG_BIT`" == "64" ];then
- _url=$WKHTMLTOX_X64
+if [ "$INSTALL_WKHTMLTOPDF" = "True" ]; then
+ echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO ${OE_VERSION} ----"
+
+ # Use apt install for Ubuntu 22.04 and 24.04 directly
+ UBUNTU_VERSION=$(lsb_release -r -s)
+ if [[ "$UBUNTU_VERSION" == "22.04" || "$UBUNTU_VERSION" == "24.04" ]]; then
+ # Ubuntu 22.04 LTS and 24.04 Noble Numbat
+ sudo apt install wkhtmltopdf -y
else
- _url=$WKHTMLTOX_X32
+ # Pick the correct one from x64 & x32 versions:
+ if [ "`getconf LONG_BIT`" == "64" ]; then
+ _url=$WKHTMLTOX_X64
+ else
+ _url=$WKHTMLTOX_X32
+ fi
+ sudo wget $_url
+
+ # Install using gdebi for older or other versions of Ubuntu not specified for direct apt install
+ sudo gdebi --n `basename $_url`
fi
- sudo wget $_url
-
- if [[ $(lsb_release -r -s) == "22.04" ]]; then
- # Ubuntu 22.04 LTS
- sudo apt install wkhtmltopdf -y
- else
- # For older versions of Ubuntu
- sudo gdebi --n `basename $_url`
- fi
-
- sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin
- sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin
+ # Ensure wkhtmltopdf and wkhtmltoimage are linked correctly for all scenarios
+ sudo ln -s /usr/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
+ sudo ln -s /usr/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
else
- echo "Wkhtmltopdf isn't installed due to the choice of the user!"
+ echo "Wkhtmltopdf install skipped due to the choice of the user!"
fi
echo -e "\n---- Create ODOO system user ----"
@@ -171,7 +205,7 @@ if [ $IS_ENTERPRISE = "True" ]; then
echo -e "\n---- Added Enterprise code under $OE_HOME/enterprise/addons ----"
echo -e "\n---- Installing Enterprise specific libraries ----"
- sudo -H pip3 install num2words ofxparse dbfread ebaysdk firebase_admin pyOpenSSL
+ sudo -H pip3 install num2words ofxparse dbfread ebaysdk firebase_admin
sudo npm install -g less
sudo npm install -g less-plugin-clean-css
fi
@@ -185,7 +219,6 @@ 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"
@@ -206,6 +239,14 @@ if [ $IS_ENTERPRISE = "True" ]; then
else
sudo su root -c "printf 'addons_path=${OE_HOME_EXT}/addons,${OE_HOME}/custom/addons\n' >> /etc/${OE_CONFIG}.conf"
fi
+if [ $REMOTE_POSTGRESQL = "True" ]; then
+ sudo su root -c "printf 'db_host = ${OE_DB_HOST}\n' >> /etc/${OE_CONFIG}.conf"
+ sudo su root -c "printf 'db_user = ${OE_DB_USER}\n' >> /etc/${OE_CONFIG}.conf"
+ sudo su root -c "printf 'db_port = ${OE_DB_PORT}\n' >> /etc/${OE_CONFIG}.conf"
+ sudo su root -c "printf 'db_password = ${OE_DB_PASS}\n' >> /etc/${OE_CONFIG}.conf"
+else
+ sudo su root -c "printf ';db_host = \n' >> /etc/${OE_CONFIG}.conf"
+fi
sudo chown $OE_USER:$OE_USER /etc/${OE_CONFIG}.conf
sudo chmod 640 /etc/${OE_CONFIG}.conf
@@ -415,7 +456,15 @@ echo "Port: $OE_PORT"
echo "User service: $OE_USER"
echo "Configuraton file location: /etc/${OE_CONFIG}.conf"
echo "Logfile location: /var/log/$OE_USER"
-echo "User PostgreSQL: $OE_USER"
+if [ $REMOTE_POSTGRESQL = "True" ]; then
+ echo "Remote PostgreSQL Specifications:"
+ echo "User PostgreSQL: $OE_DB_USER"
+ echo "Host PostgreSQL: $OE_DB_HOST"
+ echo "Port PostgreSQL: $OE_DB_PORT"
+ echo "Password PostgreSQL: $OE_DB_PASS"
+else
+ echo "User PostgreSQL: $OE_USER"
+fi
echo "Code location: $OE_USER"
echo "Addons folder: $OE_USER/$OE_CONFIG/addons/"
echo "Password superadmin (database): $OE_SUPERADMIN"
diff --git a/odoo_install_debian.sh b/odoo_install_debian.sh
deleted file mode 100644
index 425ad77e..00000000
--- a/odoo_install_debian.sh
+++ /dev/null
@@ -1,359 +0,0 @@
-#!/bin/bash
-################################################################################
-# Script for installing Odoo on Debian 10.0 (could be used for other version too)
-# Authors: Yenthe Van Ginneken, César Cordero Rodríguez
-# Maintainers: Yenthe Van Ginneken, César Cordero Rodríguez
-#-------------------------------------------------------------------------------
-# This script will install Odoo on your Debian 10.0 server. It can install multiple Odoo instances
-# in one Debian 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
-################################################################################
-
-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: 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
-OE_VERSION="14.0"
-# Set this to True if you want to install the Odoo enterprise version!
-IS_ENTERPRISE="False"
-# Set this to True if you want to install Nginx!
-INSTALL_NGINX="False"
-# Set the superadmin password - if GENERATE_RANDOM_PASSWORD is set to "True" we will automatically generate a random password, otherwise we use this one
-OE_SUPERADMIN="admin"
-# Set to "True" to generate a random password, "False" to use the variable in OE_SUPERADMIN
-GENERATE_RANDOM_PASSWORD="True"
-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.)
-LONGPOLLING_PORT="8072"
-
-##
-### WKHTMLTOPDF download links
-## === Debian Buster x64 & x32 === (for other distributions please replace these two links,
-## 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.buster_amd64.deb
-WKHTMLTOX_X32=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.buster_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 git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt1-dev -y
-sudo apt-get install libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less gdebi -y
-
-echo -e "\n---- Install python packages/requirements ----"
-sudo pip3 install -r https://github.com/odoo/odoo/raw/${OE_VERSION}/requirements.txt
-
-echo -e "\n---- Installing nodeJS NPM and rtlcss for LTR support ----"
-sudo apt-get install nodejs npm -y
-sudo npm install -g rtlcss
-
-#--------------------------------------------------
-# Install Wkhtmltopdf if needed
-#--------------------------------------------------
-if [ $INSTALL_WKHTMLTOPDF = "True" ]; then
- echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO 13 ----"
- #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 dbfread ebaysdk firebase_admin pyOpenSSL
- 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"
-if [ $GENERATE_RANDOM_PASSWORD = "True" ]; then
- echo -e "* Generating random admin password"
- 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
- 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"
-
-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/odoo-bin --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
-
-#--------------------------------------------------
-# 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 $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;
- }
- }
-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
- 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-available/odoo"
-else
- 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"
-echo "User service: $OE_USER"
-echo "User PostgreSQL: $OE_USER"
-echo "Code location: $OE_USER"
-echo "Addons folder: $OE_USER/$OE_CONFIG/addons/"
-echo "Password superadmin (database): $OE_SUPERADMIN"
-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 "-----------------------------------------------------------"