#!/usr/bin/env bash . ./env_var.sh EL_USER=${USER} #EL_INSTALL_WKHTMLTOPDF="True" ## ### WKHTMLTOPDF download links ## === Ubuntu Focal x64 === (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 ): # Ubuntu 20.04 UBUNTU_VERSION=$(lsb_release -rs) DEBIAN_VERSION=$(lsb_release -cs) OS=$(lsb_release -si) if [[ "${OS}" == "Ubuntu" ]]; then if [ "25.10" == "${UBUNTU_VERSION}" ] || [ "25.04" == "${UBUNTU_VERSION}" ] || [ "24.04" == "${UBUNTU_VERSION}" ] || [ "24.10" == "${UBUNTU_VERSION}" ] || [ "23.10" == "${UBUNTU_VERSION}" ] || [ "23.04" == "${UBUNTU_VERSION}" ] || [ "22.10" == "${UBUNTU_VERSION}" ] || [ "22.04" == "${UBUNTU_VERSION}" ]; then WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb elif [ "20.04" == "${UBUNTU_VERSION}" ]; then WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb elif [ "18.04" == "${UBUNTU_VERSION}" ]; then WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb fi elif [[ "${OS}" == "Linuxmint" ]]; then if [ "22.3" == "${UBUNTU_VERSION}" ]; then WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb fi elif [[ "${OS}" == "Debian" ]]; then if [ "bookworm" == "${DEBIAN_VERSION}" ]; then WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb else WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bullseye_amd64.deb fi elif [[ "${OS}" == *"Ubuntu"* ]]; then echo "Your version of Ubuntu is not supported, only support 18.04, 20.04 and 22.04" WKHTMLTOX_X64=https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb else echo "Your version of Ubuntu is not supported, only support 18.04, 20.04 and 22.04" exit 1 fi #-------------------------------------------------- # Mainframe 390x #-------------------------------------------------- if [ "$(uname -m)" = "s390x" ]; then echo "Arch s390x detected" sudo apt install rust-all libqpdf-dev libgeos-dev libproj-dev proj-bin proj-data libgeographiclib-dev freetds-dev freetds-bin libkrb5-dev libssl-dev pkg-config build-essential npm -y fi #-------------------------------------------------- # Update Server #-------------------------------------------------- echo -e "\n---- Update Server ----" if [ "18.04" == "${UBUNTU_VERSION}" ]; then # add-apt-repository can install add-apt-repository Ubuntu 18.x sudo apt-get install software-properties-common curl -y # universe package is for Ubuntu 18.x sudo add-apt-repository universe # libpng12-0 dependency for wkhtmltopdf sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main" sudo apt-get update sudo apt-get upgrade -y fi #-------------------------------------------------- # Install PostgreSQL Server #-------------------------------------------------- echo -e "\n---- Install PostgreSQL Server ----" sudo apt-get install postgresql libpq-dev postgis -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt-get install postgresql installation error." exit 1 fi echo -e "\n---- Creating the ERPLibre PostgreSQL User ----" sudo su - postgres -c "createuser -s ${EL_USER}" 2>/dev/null || true #-------------------------------------------------- # Install Dependencies #-------------------------------------------------- echo -e "\n--- Installing debian dependency --" sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig cmake portaudio19-dev libcups2-dev shfmt xmlsec1 -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt-get debian tool installation error." exit 1 fi sudo apt-get install libmariadbd-dev freetds-dev -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt-get libmariadb installation error." exit 1 fi if [ "18.04" == "${UBUNTU_VERSION}" ]; then sudo apt-get install libpng12-0 -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt-get libpng installation error." exit 1 fi fi # Dependencies for pyenv sudo apt-get install make libssl-dev zlib1g-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt-get pyenv dependencies installation error." exit 1 fi # Dependencies for selenium sudo apt-get install libcairo2-dev python3-dev pkg-config libxt-dev libgirepository1.0-dev -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt-get selenium dependencies installation error." exit 1 fi echo -e "\n---- Installing nodeJS NPM and rtlcss for LTR support ----" sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg if [ "18.04" == "${UBUNTU_VERSION}" ]; then sudo apt remove nodeJS npm NODE_MAJOR=16 else # Node 22+ required by @capacitor/cli v8.x (mobile app dependency) NODE_MAJOR=22 fi echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt-get update sudo apt-get install nodejs -y sudo npm install npm@latest -g retVal=$? if [[ $retVal -ne 0 ]]; then echo "npm install npm lastest installation error." exit 1 fi sudo npm install -g rtlcss retVal=$? if [[ $retVal -ne 0 ]]; then echo "npm install rtlcss installation error." exit 1 fi sudo npm install -g less retVal=$? if [[ $retVal -ne 0 ]]; then echo "npm install less installation error." exit 1 fi echo -e "\n---- Test tool ----" npm install retVal=$? if [[ $retVal -ne 0 ]]; then echo "npm install prettier + plugin-xml installation error." exit 1 fi sudo ln -fs /usr/local/bin/lessc /usr/bin/lessc if [ ${EL_INSTALL_NGINX} = "True" ]; then echo -e "\n---- Installing nginx ----" sudo apt install nginx -y retVal=$? if [[ $retVal -ne 0 ]]; then echo "apt install nginx installation error." exit 1 fi fi #-------------------------------------------------- # Install Wkhtmltopdf if needed #-------------------------------------------------- if [ ${EL_INSTALL_WKHTMLTOPDF} = "True" ]; then echo -e "\n---- Installing wkhtml ----" INSTALLED=$(dpkg -s wkhtmltox | grep installed) if [ "" == "${INSTALLED}" ]; then echo -e "\n---- Install wkhtml and place shortcuts on correct place ----" _url=${WKHTMLTOX_X64} sudo wget ${_url} sudo gdebi --n $(basename ${_url}) retVal=$? if [[ $retVal -ne 0 ]]; then echo "gdebi install wkhtmltopdf installation error." exit 1 fi sudo ln -fs /usr/local/bin/wkhtmltopdf /usr/bin sudo ln -fs /usr/local/bin/wkhtmltoimage /usr/bin else echo -e "\n---- Already installed wkhtml ----" fi else echo "Wkhtmltopdf isn't installed due to the choice of the user!" fi