#!/bin/bash ################################################################################ # # # Installation of Odootools - Tools to help manage an Odoo installation # # # # # # # ################################################################################ echo "Performing basic prerequisite checks ..." echo "Setting download version..." VERSION = $1 # User odoo shouldn't exist or should have been created by the Odoo installation # procedures such as via the deb-package grep --quiet -E '/home/odoo:' /etc/passwd # Indication odoo user have been # created the wrong way. if [ $? -eq 0 ]; then echo "Warning! An odoo user seems to be present with the wrong home folder." echo "This user might conflict with the Odoo {$VERSION} installation process." echo "Exiting..." exit 1 fi # ---------------------------------------------------------------------------- # # Odoo echo "Installing Odoo" if [ ! -d /etc/odoo ]; then # Install Odoo (only one time) sudo add-apt-repository universe sudo wget -O - https://nightly.odoo.com/odoo.key | sudo apt-key add - echo "deb http://nightly.odoo.com/$VERSION/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list > /dev/null # echo "deb http://nightly.odoo.com/master/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list > /dev/null # Change to $VERSION as soon its completed sudo apt update sudo apt -y install odoo # Generate a good password sudo sed -i "s|^.*admin_passwd = .*|admin_passwd = $(openssl rand -base64 32)|g" /etc/odoo/odoo.conf sudo wget -O /etc/odoo/odoo.tools https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/odoo.tools # Move BAD l10n_se sudo mv /usr/lib/python3/dist-packages/odoo/addons/l10n_se /usr/lib/python3/dist-packages/odoo/addons/l10n_se-bad # Making odoo a more reqular user # It can be useful when doing some operations. echo "Enabling bash login for the odoo user..." sudo sed -i 's|/var/lib/odoo:/usr/sbin/nologin|/var/lib/odoo:/bin/bash|g' /etc/passwd if [ $? -eq 0 ]; then echo "Bash login enabled for user 'odoo'" else echo "Failed to enable Bash login for user 'odoo'" echo "Continuing installation." # Failure is not a dealbreaker for odootools fi # TODO: Add passwd or accept only sudo for switching user. fi if [ ! -d /usr/share/core-odoo ]; then sudo ln -s /usr/lib/python3/dist-packages/odoo/ /usr/share/core-odoo fi # Additional packages echo "Installing additional packages" sudo apt -y install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libjpeg-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libpq-dev # Python with dependencies echo "Installing Python modules" sudo -H pip3 install wheel wget -O /tmp/requirements.txt https://raw.githubusercontent.com/odoo/odoo/{$VERSION}/requirements.txt sudo -H pip3 install -r /tmp/requirements.txt # wkhtmltopdf sudo -H pip3 install openpyxl sudo apt -y install xfonts-base xfonts-75dpi wget -O /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo dpkg -i /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb sudo rm -f /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb # sudo su postgres createuser odoo -s # Odootools sudo wget -O /etc/profile.d/odootools.sh https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/odootools.sh sudo wget -O /etc/odoo/scaffold.tar.gz https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/scaffold.tar.gz sudo wget -O /etc/bash_completion.d/odoo https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/bash_completion.odoo sudo wget -O /usr/local/bin/odooextras.py https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/odooextras.py # Extra tools sudo wget -O /usr/local/bin/odoocheckdeps.py https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/scripts/odoocheckdeps.py sudo wget -O /usr/local/bin/odoocheckmanifests.py https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/scripts/odoocheckmanifests.py sudo wget -O /usr/local/bin/manifest_template.py https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/scripts/manifest_template.py sudo wget -O /usr/local/bin/enable_db https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/scripts/enable_db sudo wget -O /usr/local/bin/disable_db https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/scripts/disable_db # daily backup sudo wget -O /etc/cron.daily/db_backup https://raw.githubusercontent.com/vertelab/odootools/{$VERSION}/db_backup sudo chmod a+x /etc/cron.daily/db_backup . /etc/profile.d/odootools.sh . /etc/bash_completion