2015-09-14 17:12:17 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2016-07-05 15:22:12 +02:00
|
|
|
set -eu
|
|
|
|
|
|
|
|
app=$YNH_APP_INSTANCE_NAME
|
2015-09-14 17:12:17 +02:00
|
|
|
|
2016-07-05 15:22:12 +02:00
|
|
|
# Retrieve arguments
|
|
|
|
domain=$YNH_APP_ARG_DOMAIN
|
2016-12-14 12:14:06 +01:00
|
|
|
version=$YNH_APP_ARG_VERSION
|
|
|
|
oca=$YNH_APP_ARG_OCA
|
2016-07-05 15:22:12 +02:00
|
|
|
admin_password=$YNH_APP_ARG_ADMIN_PASSWORD
|
|
|
|
lang=$YNH_APP_ARG_LANG
|
2015-10-30 18:02:03 +01:00
|
|
|
|
2016-12-14 10:55:15 +01:00
|
|
|
# Load common variables
|
|
|
|
source ./_common.sh
|
|
|
|
|
2016-07-05 15:22:12 +02:00
|
|
|
# Source YunoHost helpers
|
|
|
|
. /usr/share/yunohost/helpers
|
2015-10-30 18:02:03 +01:00
|
|
|
|
2015-09-14 17:12:17 +02:00
|
|
|
# Check domain/path availability
|
|
|
|
domain=${domain}"/"
|
|
|
|
sudo yunohost app checkurl $domain -a $app \
|
2016-11-29 00:20:02 +01:00
|
|
|
|| (ynh_die "Path not available: $domain" 1)
|
2015-09-14 17:12:17 +02:00
|
|
|
|
|
|
|
# Remove trailing "/" for next commands
|
|
|
|
domain=${domain%/}
|
2016-12-14 11:23:57 +01:00
|
|
|
|
2016-12-14 11:46:00 +01:00
|
|
|
# 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")
|
2016-12-14 11:23:57 +01:00
|
|
|
|
2016-07-05 15:22:12 +02:00
|
|
|
ynh_app_setting_set "$app" domain "$domain"
|
2016-12-14 11:23:57 +01:00
|
|
|
ynh_app_setting_set "$app" lang "$lang"
|
2016-12-14 11:46:00 +01:00
|
|
|
ynh_app_setting_set "$app" psqlpwd "$dbpass"
|
2016-11-29 00:20:02 +01:00
|
|
|
|
|
|
|
|
2015-09-16 10:17:50 +02:00
|
|
|
if [ -f /usr/bin/openerp-server ]; then
|
|
|
|
echo "Odoo is already installed, switching to multi-instances"
|
2016-07-05 15:22:12 +02:00
|
|
|
ynh_app_setting_set "$app" instance "slave"
|
|
|
|
|
2015-09-16 10:17:50 +02:00
|
|
|
else
|
2016-11-29 00:20:02 +01:00
|
|
|
sudo yunohost app checkport 8069
|
|
|
|
if [[ ! $? -eq 0 ]]; then
|
2016-12-14 10:10:53 +01:00
|
|
|
ynh_die "Port 8069 unavailable" 1
|
2016-11-29 00:20:02 +01:00
|
|
|
fi
|
|
|
|
|
2016-12-14 11:23:57 +01:00
|
|
|
echo "Installing odoo"
|
|
|
|
|
|
|
|
|
2016-12-14 12:14:06 +01:00
|
|
|
ynh_app_setting_set "$app" version "$version"
|
2016-11-29 00:20:02 +01:00
|
|
|
ynh_app_setting_set "$app" instance "master"
|
2016-12-14 11:33:39 +01:00
|
|
|
|
2016-11-29 00:20:02 +01:00
|
|
|
# Install Odoo
|
|
|
|
# Prepare installation
|
|
|
|
ynh_package_install curl
|
|
|
|
|
|
|
|
# Install Odoo
|
|
|
|
sudo curl -sS https://nightly.odoo.com/odoo.key | sudo apt-key add -
|
2016-12-14 12:14:06 +01:00
|
|
|
sudo sh -c "echo 'deb http://nightly.odoo.com/${version}/nightly/deb/ ./' > /etc/apt/sources.list.d/odoo.list"
|
2016-11-29 00:20:02 +01:00
|
|
|
sudo apt-get update
|
|
|
|
|
|
|
|
# Initialize installation
|
2016-12-14 12:02:22 +01:00
|
|
|
ynh_package_install postgresql
|
|
|
|
|
|
|
|
ynh_package_install odoo
|
2016-07-05 15:22:12 +02:00
|
|
|
|
2016-11-29 00:20:02 +01:00
|
|
|
# Install wkhtmltopdf to print PDF reports
|
2016-12-14 10:55:15 +01:00
|
|
|
ynh_package_install xfonts-75dpi xfonts-base wkhtmltopdf
|
|
|
|
|
2016-12-14 11:23:57 +01:00
|
|
|
# The debian package has a bug so we deploy a more recent version
|
2016-12-14 11:46:00 +01:00
|
|
|
DESTDIR="/tmp/wkhtmltox/"
|
2016-12-14 12:17:11 +01:00
|
|
|
sudo mkdir -p $DESTDIR
|
|
|
|
sudo chown -R $APPNAME: /tmp/wkhtmltox
|
2016-12-14 11:50:30 +01:00
|
|
|
extract_sources $DESTDIR "$APPNAME"
|
2016-12-14 12:39:02 +01:00
|
|
|
sudo cp -R "$DESTDIR." /usr/
|
2016-12-14 12:17:11 +01:00
|
|
|
sudo rm -Rf $DESTDIR
|
2016-12-14 10:55:15 +01:00
|
|
|
|
2016-12-14 12:47:31 +01:00
|
|
|
ynh_psql_create_db $APPNAME $APPNAME "$dbpass"
|
2016-12-14 13:15:34 +01:00
|
|
|
ynh_psql_execute_as_root "ALTER USER $APPNAME WITH CREATEDB;"
|
2016-07-05 15:22:12 +02:00
|
|
|
|
2016-11-29 00:20:02 +01:00
|
|
|
# Set admin password
|
2016-12-14 10:10:53 +01:00
|
|
|
# TODO Support @ in password
|
2016-11-29 00:20:02 +01:00
|
|
|
sudo sed -i "s@ADMIN_PASSWORD@$admin_password@g" ../conf/openerp-server.conf
|
2016-12-14 11:23:57 +01:00
|
|
|
sudo sed -i "s@DATABASE_PASSWORD@$dbpass@g" ../conf/openerp-server.conf
|
2016-11-29 00:20:02 +01:00
|
|
|
sudo cp ../conf/openerp-server.conf /etc/odoo/openerp-server.conf
|
|
|
|
sudo chown odoo:odoo /etc/odoo/openerp-server.conf
|
2016-07-05 15:22:12 +02:00
|
|
|
|
2016-11-29 00:20:02 +01:00
|
|
|
# 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
|
2016-07-05 15:22:12 +02:00
|
|
|
|
2016-11-29 00:20:02 +01:00
|
|
|
# Install oerplib to manage databases
|
|
|
|
#sudo pip install oerplib
|
2016-07-05 15:22:12 +02:00
|
|
|
|
2016-11-29 00:20:02 +01:00
|
|
|
# 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
|
2015-09-16 10:17:50 +02:00
|
|
|
fi
|
|
|
|
|
2015-09-14 17:12:17 +02:00
|
|
|
# Configure Nginx and reload
|
2016-12-14 10:10:53 +01:00
|
|
|
sed -i "s@#YNH_APP_INSTANCE_NAME#@${YNH_APP_INSTANCE_NAME}@g" ../conf/nginx.conf
|
2016-07-05 15:22:12 +02:00
|
|
|
sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
|
2015-09-14 17:12:17 +02:00
|
|
|
|
2015-09-14 18:13:54 +02:00
|
|
|
# Make Odoo public
|
2016-11-29 00:55:39 +01:00
|
|
|
ynh_app_setting_set "$app" skipped_uris "/"
|
2015-09-14 17:12:17 +02:00
|
|
|
|
|
|
|
sudo service nginx reload
|
2016-07-05 15:22:12 +02:00
|
|
|
|
|
|
|
# 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
|
2016-12-14 11:23:57 +01:00
|
|
|
#sudo sed -i "s@DATABASE_PASSWORD@$dbpass@g" ../conf/install_database.py
|
2016-07-05 15:22:12 +02:00
|
|
|
#sudo python ../conf/install_database.py
|
2016-12-14 10:10:53 +01:00
|
|
|
sudo service odoo restart
|
2016-07-05 15:22:12 +02:00
|
|
|
# Setup LDAP: TO BE DONE
|