Last active
March 22, 2025 22:46
-
-
Save tejastank/03881dfa06fd4aefd157d5082240a913 to your computer and use it in GitHub Desktop.
Once install community odoo 16, then you can run this to install enterprise edition
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 characters
#!/bin/bash | |
################################################################################ | |
# Author: Tejaskumar Tank | |
#------------------------------------------------------------------------------- | |
# This script will install Odoo on your Ubuntu 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 | |
# Script for installing Odoo on Ubuntu 16.04, 18.04, 20.04 and 22.04 (could be used for other version too) | |
################################################################################ | |
OE_USER="odoo" | |
OE_HOME="/$OE_USER" | |
OE_HOME_EXT="/$OE_USER/${OE_USER}-enterprise-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="8169" | |
# 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. | |
# IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 16.0 | |
OE_VERSION="16.0" | |
# Set this to True if you want to install the Odoo enterprise version! | |
IS_ENTERPRISE="True" | |
# Installs postgreSQL V14 instead of defaults (e.g V12 for Ubuntu 20/22) - this improves performance | |
INSTALL_POSTGRESQL_FOURTEEN="True" | |
# 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}-enterprise-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="8172" | |
# Set to "True" to install certbot and have ssl enabled, "False" to use http | |
ENABLE_SSL="True" | |
# Provide Email to register ssl certificate | |
ADMIN_EMAIL="[email protected]" | |
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 > "11.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 "cp $OE_HOME_EXT/setup/odoo odoo-bin" | |
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 <<EOF > ~/$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=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/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 "-----------------------------------------------------------" | |
echo "Done! The Odoo server is up and running. Specifications:" | |
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" | |
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" | |
if [ $INSTALL_NGINX = "True" ]; then | |
echo "Nginx configuration file: /etc/nginx/sites-available/$WEBSITE_NAME" | |
fi | |
echo "-----------------------------------------------------------" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
will this work on 17 and/or 18?
I would like to use 18 in a test environment, enterprise edition.