#!/bin/bash # # Retrieve arguments domain=$1 path=$2 admin=$3 password=$4 language=$5 ssoenabled=$6 port=$7 timezone=`cat /etc/timezone` # Check domain/path availability sudo yunohost app checkurl $domain$path -a movim if [[ ! $? -eq 0 ]]; then exit 1 fi # Check port availability sudo yunohost app checkport $port if [[ ! $? -eq 0 ]]; then exit 1 fi # Check user availability sudo yunohost user info $admin if [[ ! $? -eq 0 ]]; then exit 1 fi # Check password not empty if [[ -z "$password" ]]; then printf "Error empty admin password, installation aborted" exit 1 fi # Check timezone if [[ -z "$timezone" ]]; then printf "Could not detect Timezone, please check /etc/timezone. Installation aborted" exit 1 else printf "Detected Timezone $timezone \n" fi # Check path not empty if [[ -z "$path" ]]; then printf "Error path is empty, installation aborted" exit 1 fi # Save parameters sudo yunohost app setting movim admin -v $admin sudo yunohost app setting movim ssoenabled -v $ssoenabled sudo yunohost app setting movim port -v $port sudo yunohost app setting movim path -v $path # Generate random password db_pwd=$(dd if=/dev/urandom bs=1 count=30 2> /dev/null | tr -c -d '[[:alnum:]]') # Use 'movim' as database name and user db_user=movim # Initialize database and store mysql password for upgrade sudo yunohost app initdb $db_user -p $db_pwd sudo yunohost app setting movim mysqlpwd -v $db_pwd # Install packages sudo apt-get install php5-gd php5-curl php5-imagick php5-cli -y # Install Movim files final_path=/var/www/movim sudo mkdir -p $final_path sudo cp -a ../sources/* $final_path sudo cp $final_path/config/db.example.inc.php $final_path/config/db.inc.php # Create movim system user and set permissions sudo useradd -d /var/www/movim -s /bin/sh movim sudo chown -R movim:www-data $final_path sudo chmod -R 750 $final_path # Install PHP dependencies sudo su -c "curl -sS https://getcomposer.org/installer | php -- --install-dir=$final_path" movim sudo su -c "cd $final_path && php composer.phar config --global discard-changes true" movim # auto yes sudo su -c "cd $final_path && php composer.phar install -n" movim # install + quiet mode # Movim configuration sudo sed -i "s@'username' => 'username'@'username' => '$db_user'@g" $final_path/config/db.inc.php sudo sed -i "s@'password' => 'password'@'password' => '$db_pwd'@g" $final_path/config/db.inc.php sudo sed -i "s@/ws/@$path/ws/@g" $final_path/app/assets/js/movim_websocket.js sudo su -c "cd $final_path && php mud.php db set" movim sudo su -c "cd $final_path && php mud.php config --locale=$language" movim sudo su -c "cd $final_path && php mud.php config --loglevel=1" movim sudo su -c "cd $final_path && php mud.php config --timezone=$timezone" movim sudo su -c "cd $final_path && php mud.php config --username=$admin" movim sudo su -c "cd $final_path && php mud.php config --password=`echo -n $password | sha1sum | awk '{print $1}'`" movim # Copy init script or systemd service sudo sed -i "s@YHURL@$domain$path@g" ../conf/movim.{service,init} sudo sed -i "s@YHDIR@$final_path@g" ../conf/movim.{service,init} sudo sed -i "s@YHPORT@$port@g" ../conf/movim.{service,init} initcheck=`pgrep -ox systemd` if [ "$initcheck" = "1" ]; then sudo cp ../conf/movim.service /etc/systemd/system/ sudo systemctl enable movim.service sudo systemctl start movim.service else sudo cp ../conf/movim.init /etc/init.d/movim sudo chmod 755 /etc/init.d/movim sudo update-rc.d movim defaults sudo /etc/init.d/movim start fi # php-fpm configuration sed -i "s@YHTZ@$timezone@g" ../conf/php-fpm.conf sudo cp ../conf/php-fpm.conf /etc/php5/fpm/pool.d/movim.conf # Nginx configuration sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf sed -i "s@YHPORT@$port@g" ../conf/nginx.conf sed -i "s@//ws/@/ws/@g" ../conf/nginx.conf # Avoid duplicate / sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/movim.conf # SSOwat Configuration if [ $ssoenabled = "No" ]; then sudo yunohost app setting movim skipped_uris -v "/" sudo yunohost app ssowatconf sudo su -c "cd $final_path && php mud.php config --xmppwhitelist=$domain" movim else sudo yunohost app setting movim unprotected_uris -v "/" # Next line is to avoid SSO to auto-connect just after disconnect sudo sed -i "s@redirect('login')@redirect('')@g" $final_path/app/controllers/DisconnectController.php sudo yunohost app ssowatconf fi # Start Movim sudo service php5-fpm restart sudo service nginx reload