Last active
May 15, 2023 20:42
-
-
Save jjackofall/74a90e78e5c3aacf8361838d315171d3 to your computer and use it in GitHub Desktop.
Install Odoo In Server
This file contains 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 | |
# Variables | |
OE_USER="odoo" | |
OE_HOME="/$OE_USER" | |
OE_HOME_EXT="/$OE_USER/${OE_USER}-server" | |
INSTALL_WKHTMLTOPDF="True" | |
OE_PORT="8069" | |
OE_VERSION="15.0" | |
OE_SUPERADMIN="admin" | |
OE_CONFIG="${OE_USER}-server" | |
WKHTMLTOX_X64="https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.$(lsb_release -c -s)_amd64.deb" | |
_url=$WKHTMLTOX_X64 | |
# Update Server | |
sudo add-apt-repository universe | |
sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main" | |
sudo apt-get update | |
sudo apt-get upgrade -y | |
# PostgreSQL Server | |
sudo apt-get install postgresql postgresql-server-dev-all -y | |
sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true | |
# Dependencies | |
sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libpng12-0 libjpeg-dev gdebi -y | |
sudo -H pip3 install -r https://github.com/odoo/odoo/raw/${OE_VERSION}/requirements.txt | |
sudo apt-get install nodejs npm -y | |
sudo npm install -g rtlcss | |
# Install Wkhtmltopdf | |
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 | |
# Create ODOO system user | |
sudo adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER | |
sudo adduser $OE_USER sudo | |
# Create Log directory | |
sudo mkdir /var/log/$OE_USER | |
sudo chown $OE_USER:$OE_USER /var/log/$OE_USER | |
# Install ODOO | |
sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/ | |
# Create custom module directory: | |
sudo su $OE_USER -c "mkdir $OE_HOME/custom" | |
sudo su $OE_USER -c "mkdir $OE_HOME/custom/addons" | |
sudo chown -R $OE_USER:$OE_USER $OE_HOME/* | |
# Create server config file: | |
sudo touch /etc/${OE_CONFIG}.conf | |
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" | |
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" | |
sudo su root -c "printf 'addons_path=${OE_HOME_EXT}/addons,${OE_HOME}/custom/addons\n' >> /etc/${OE_CONFIG}.conf" | |
sudo chown $OE_USER:$OE_USER /etc/${OE_CONFIG}.conf | |
sudo chmod 640 /etc/${OE_CONFIG}.conf | |
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) | |
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 | |
sudo update-rc.d $OE_CONFIG defaults | |
# Starting ODOO | |
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" | |
echo "-----------------------------------------------------------" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment