#!/bin/bash set -eu app=$YNH_APP_INSTANCE_NAME # Retrieve arguments domain=$YNH_APP_ARG_DOMAIN odoo_version=$YNH_APP_ARG_ODOO_VERSION admin_password=$YNH_APP_ARG_ADMIN_PASSWORD lang=$YNH_APP_ARG_LANG # Load common variables source ./_common.sh # Source YunoHost helpers . /usr/share/yunohost/helpers # Check domain/path availability domain=${domain}"/" sudo yunohost app checkurl $domain -a $app \ || (ynh_die "Path not available: $domain" 1) # Remove trailing "/" for next commands domain=${domain%/} # Generate random password # Fix a bug on ynh_string_random https://github.com/YunoHost/yunohost/pull/205/commits/0d6cf499a0b858e7009245fd11a9210188047c13 dbpass=$(ynh_string_random | sed "s/\[/e/g" | sed "s/\]/e/g") ynh_app_setting_set "$app" domain "$domain" ynh_app_setting_set "$app" lang "$lang" ynh_app_setting_set "$app" psqlpwd "$dbpass" if [ -f /usr/bin/openerp-server ]; then echo "Odoo is already installed, switching to multi-instances" ynh_app_setting_set "$app" instance "slave" else sudo yunohost app checkport 8069 if [[ ! $? -eq 0 ]]; then ynh_die "Port 8069 unavailable" 1 fi echo "Installing odoo" ynh_app_setting_set "$app" version "$odoo_version" ynh_app_setting_set "$app" instance "master" # Install Odoo # Prepare installation ynh_package_install curl # Install Odoo sudo curl -sS https://nightly.odoo.com/odoo.key | sudo apt-key add - if [ "$odoo_version" = "8.0" ]; then sudo sh -c 'echo "deb http://nightly.odoo.com/8.0/nightly/deb/ ./" > /etc/apt/sources.list.d/odoo.list' else sudo sh -c 'echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" > /etc/apt/sources.list.d/odoo.list' fi sudo apt-get update # Initialize installation ynh_package_install postgresql odoo # Install wkhtmltopdf to print PDF reports ynh_package_install xfonts-75dpi xfonts-base wkhtmltopdf # The debian package has a bug so we deploy a more recent version DESTDIR="/tmp/wkhtmltox/" mkdir -p $DESTDIR extract_sources $DESTDIR "$app" mv "$DESTDIR." /usr/ # Set admin password # TODO Support @ in password sudo sed -i "s@ADMIN_PASSWORD@$admin_password@g" ../conf/openerp-server.conf sudo sed -i "s@DATABASE_PASSWORD@$dbpass@g" ../conf/openerp-server.conf sudo cp ../conf/openerp-server.conf /etc/odoo/openerp-server.conf sudo chown odoo:odoo /etc/odoo/openerp-server.conf # Autoinstall the LDAP auth module sudo sed -i "s@'auto_install': False@'auto_install': True@g" /usr/lib/python2.7/dist-packages/openerp/addons/auth_ldap/__openerp__.py # Install oerplib to manage databases #sudo pip install oerplib # Add services sudo yunohost service add postgresql sudo yunohost service add odoo --log /var/log/odoo/odoo-server.log sudo yunohost service stop odoo sudo yunohost service start odoo fi # Configure Nginx and reload sed -i "s@#YNH_APP_INSTANCE_NAME#@${YNH_APP_INSTANCE_NAME}@g" ../conf/nginx.conf sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf # Make Odoo public ynh_app_setting_set "$app" skipped_uris "/" sudo service nginx reload # Fix peer authentification issue sudo sed -i '/local\s*all\s*all\s*peer/i \ local all odoo password' /etc/postgresql/9.4/main/pg_hba.conf sudo service postgresql reload # Setup database: not working database=${domain//./-} sudo /usr/bin/openerp-server -c /etc/odoo/openerp-server.conf --stop-after-init -d $database #ynh_psql_create_db $database #sudo sed -i "s@ADMIN_PASSWORD@$admin_password@g" ../conf/install_database.py #sudo sed -i "s@DOMAIN_DATABASE@${domain//./-}@g" ../conf/install_database.py #sudo sed -i "s@DATABASE_LANG@$lang@g" ../conf/install_database.py #sudo sed -i "s@DATABASE_PASSWORD@$dbpass@g" ../conf/install_database.py #sudo python ../conf/install_database.py sudo service odoo restart # Setup LDAP: TO BE DONE