Last active
October 5, 2015 11:47
-
-
Save Goodsmileduck/595c44323afa38e7d694 to your computer and use it in GitHub Desktop.
Odoo installation script for debian 8
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 | |
################################################################################ | |
# Script for Installation: ODOO server on Debian 8 | |
#------------------------------------------------------------------------------- | |
# | |
# This script will install ODOO Server on | |
# clean Debian 8 Server | |
#------------------------------------------------------------------------------- | |
# USAGE: | |
# | |
# odoo-install.sh | |
# | |
# EXAMPLE: | |
# ./odoo-install.sh | |
# | |
################################################################################ | |
#openerp | |
OE_USER="odoo" | |
OE_HOME="/opt/$OE_USER" | |
OE_HOME_EXT="/opt/$OE_USER/$OE_USER-server" | |
#Enter version for checkout "8.0" for version 8.0, "7.0 (version 7), saas-4, saas-5 (opendays version) and "master" for trunk | |
OE_VERSION="9.0" | |
#set the superadmin password | |
OE_SUPERADMIN="superadminpassword" | |
OE_CONFIG="$OE_USER-server" | |
#-------------------------------------------------- | |
# Update Server | |
#-------------------------------------------------- | |
echo -e "\n---- Update Server ----" | |
apt-get update | |
apt-get upgrade -y | |
#-------------------------------------------------- | |
# Install PostgreSQL Server | |
#-------------------------------------------------- | |
sudo dpkg-reconfigure locales | |
sudo locale-gen en_US.UTF-8 | |
sudo /usr/sbin/update-locale LANG=en_US.UTF-8 | |
echo -e "\n---- Set locales ----" | |
echo 'LC_ALL=en_US.UTF-8' >> /etc/environment | |
echo -e "\n---- Install PostgreSQL Server ----" | |
apt-get install postgresql -y | |
echo -e "\n---- PostgreSQL $PG_VERSION Settings ----" | |
sed -i s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/g /etc/postgresql/9.4/main/postgresql.conf | |
echo -e "\n---- Creating the ODOO PostgreSQL User ----" | |
su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true | |
#-------------------------------------------------- | |
# Install Dependencies | |
#-------------------------------------------------- | |
echo -e "\n---- Install tool packages ----" | |
apt-get install sudo wget subversion git bzr bzrtools python-pip -y | |
echo -e "\n---- Install python packages ----" | |
apt-get install python-dateutil python-dev python-imaging python-feedparser python-ldap python-libxslt1 libxslt-dev libxml2-dev 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 libjpeg-dev -y | |
echo -e "\n---- Create ODOO system user ----" | |
adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER | |
echo -e "\n---- Create Log directory ----" | |
mkdir /var/log/$OE_USER | |
chown $OE_USER:$OE_USER /var/log/$OE_USER | |
#-------------------------------------------------- | |
# Install ODOO | |
#-------------------------------------------------- | |
echo -e "\n==== Installing ODOO Server ====" | |
git clone --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/ | |
#-------------------------------------------------- | |
# Install Dependencies | |
#-------------------------------------------------- | |
echo -e "\n---- Install tool packages ----" | |
sudo pip install -r $OE_HOME_EXT/requirements.txt | |
#echo -e "\n---- Install python packages ----" | |
sudo easy_install pyPdf vatnumber pydot psycogreen suds ofxparse | |
echo -e "\n---- Create custom module directory ----" | |
su $OE_USER -c "mkdir $OE_HOME/custom" | |
su $OE_USER -c "mkdir $OE_HOME/custom/addons" | |
echo -e "\n---- Setting permissions on home folder ----" | |
chown -R $OE_USER:$OE_USER $OE_HOME/* | |
echo -e "* Create server config file" | |
cp $OE_HOME_EXT/debian/openerp-server.conf /etc/$OE_CONFIG.conf | |
chown $OE_USER:$OE_USER /etc/$OE_CONFIG.conf | |
chmod 640 /etc/$OE_CONFIG.conf | |
echo -e "* Change server config file" | |
echo -e "** Remove unwanted lines" | |
sudo sed -i "/db_user/d" /etc/$OE_CONFIG.conf | |
sudo sed -i "/admin_passwd/d" /etc/$OE_CONFIG.conf | |
sudo sed -i "/addons_path/d" /etc/$OE_CONFIG.conf | |
echo -e "** Add correct lines" | |
sudo su root -c "echo 'db_user = $OE_USER' >> /etc/$OE_CONFIG.conf" | |
sudo su root -c "echo 'admin_passwd = $OE_SUPERADMIN' >> /etc/$OE_CONFIG.conf" | |
sudo su root -c "echo 'logfile = /var/log/$OE_USER/$OE_CONFIG$1.log' >> /etc/$OE_CONFIG.conf" | |
sudo su root -c "echo 'addons_path=$OE_HOME_EXT/addons,$OE_HOME/custom/addons' >> /etc/$OE_CONFIG.conf" | |
echo -e "* Create startup file" | |
echo '#!/bin/sh' >> $OE_HOME_EXT/start.sh | |
echo '-u $OE_USER $OE_HOME_EXT/openerp-server --config=/etc/$OE_CONFIG.conf' >> $OE_HOME_EXT/start.sh | |
chmod 755 $OE_HOME_EXT/start.sh | |
#-------------------------------------------------- | |
# Adding ODOO as a deamon (initscript) | |
#-------------------------------------------------- | |
echo -e "* Create init file" | |
echo '#!/bin/sh' >> ~/$OE_CONFIG | |
echo '### BEGIN INIT INFO' >> ~/$OE_CONFIG | |
echo '# Provides: $OE_CONFIG' >> ~/$OE_CONFIG | |
echo '# Required-Start: $remote_fs $syslog' >> ~/$OE_CONFIG | |
echo '# Required-Stop: $remote_fs $syslog' >> ~/$OE_CONFIG | |
echo '# Should-Start: $network' >> ~/$OE_CONFIG | |
echo '# Should-Stop: $network' >> ~/$OE_CONFIG | |
echo '# Default-Start: 2 3 4 5' >> ~/$OE_CONFIG | |
echo '# Default-Stop: 0 1 6' >> ~/$OE_CONFIG | |
echo '# Short-Description: Enterprise Business Applications' >> ~/$OE_CONFIG | |
echo '# Description: ODOO Business Applications' >> ~/$OE_CONFIG | |
echo '### END INIT INFO' >> ~/$OE_CONFIG | |
echo 'PATH=/bin:/sbin:/usr/bin' >> ~/$OE_CONFIG | |
echo "DAEMON=$OE_HOME_EXT/openerp-server" >> ~/$OE_CONFIG | |
echo "NAME=$OE_CONFIG" >> ~/$OE_CONFIG | |
echo "DESC=$OE_CONFIG" >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo '# Specify the user name (Default: odoo).' >> ~/$OE_CONFIG | |
echo "USER=$OE_USER" >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo '# Specify an alternate config file (Default: /etc/openerp-server.conf).' >> ~/$OE_CONFIG | |
echo "CONFIGFILE=\"/etc/$OE_CONFIG.conf\"" >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo '# pidfile' >> ~/$OE_CONFIG | |
echo 'PIDFILE=/var/run/$NAME.pid' >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo '# Additional options that are passed to the Daemon.' >> ~/$OE_CONFIG | |
echo 'DAEMON_OPTS="-c $CONFIGFILE"' >> ~/$OE_CONFIG | |
echo '[ -x $DAEMON ] || exit 0' >> ~/$OE_CONFIG | |
echo '[ -f $CONFIGFILE ] || exit 0' >> ~/$OE_CONFIG | |
echo 'checkpid() {' >> ~/$OE_CONFIG | |
echo '[ -f $PIDFILE ] || return 1' >> ~/$OE_CONFIG | |
echo 'pid=`cat $PIDFILE`' >> ~/$OE_CONFIG | |
echo '[ -d /proc/$pid ] && return 0' >> ~/$OE_CONFIG | |
echo 'return 1' >> ~/$OE_CONFIG | |
echo '}' >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo 'case "${1}" in' >> ~/$OE_CONFIG | |
echo 'start)' >> ~/$OE_CONFIG | |
echo 'echo -n "Starting ${DESC}: "' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon --start --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '--chuid ${USER} --background --make-pidfile \' >> ~/$OE_CONFIG | |
echo '--exec ${DAEMON} -- ${DAEMON_OPTS}' >> ~/$OE_CONFIG | |
echo 'echo "${NAME}."' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo 'stop)' >> ~/$OE_CONFIG | |
echo 'echo -n "Stopping ${DESC}: "' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '--oknodo' >> ~/$OE_CONFIG | |
echo 'echo "${NAME}."' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo 'restart|force-reload)' >> ~/$OE_CONFIG | |
echo 'echo -n "Restarting ${DESC}: "' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '--oknodo' >> ~/$OE_CONFIG | |
echo 'sleep 1' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon --start --quiet --pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '--chuid ${USER} --background --make-pidfile \' >> ~/$OE_CONFIG | |
echo '--exec ${DAEMON} -- ${DAEMON_OPTS}' >> ~/$OE_CONFIG | |
echo 'echo "${NAME}."' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo '*)' >> ~/$OE_CONFIG | |
echo 'N=/etc/init.d/${NAME}' >> ~/$OE_CONFIG | |
echo 'echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2' >> ~/$OE_CONFIG | |
echo 'exit 1' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo '' >> ~/$OE_CONFIG | |
echo 'esac' >> ~/$OE_CONFIG | |
echo 'exit 0' >> ~/$OE_CONFIG | |
echo -e "* Security Init File" | |
mv ~/$OE_CONFIG /etc/init.d/$OE_CONFIG | |
chmod 755 /etc/init.d/$OE_CONFIG | |
chown root: /etc/init.d/$OE_CONFIG | |
echo -e "* Start ODOO on Startup" | |
update-rc.d $OE_CONFIG defaults | |
/etc/init.d/$OE_CONFIG restart | |
echo "Done! The ODOO server can be started with: service $OE_CONFIG start" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment