1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/searx_ynh.git synced 2024-09-03 20:16:30 +02:00
searx_ynh/scripts/install
Laurent Peuch c97648e410 Allow virtualenv to use system wide packages
This fix the installation on some architecture by avoiding to compile lxml and also on architecture with low available ram (like the internet cube).
2015-09-10 21:51:14 +02:00

96 lines
2.5 KiB
Bash

#!/bin/bash
# Retrieve arguments
domain=$1
path=$2
is_public=$3
# Check domain/path availability
sudo yunohost app checkurl $domain$path -a searx
if [[ ! $? -eq 0 ]]; then
exit 1
fi
# Save specific settings
sudo yunohost app setting searx is_public -v $is_public
# Check depends installation
sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv python-pybabel zlib1g-dev uwsgi uwsgi-plugin-python python-lxml -y
# Check Swap
if [ $(sudo swapon -s | wc -l) = 1 ];
then
# It is NOT possible to setup a swap file on a tmpfs filesystem
mount | grep /tmp | grep tmpfs > /dev/null 2>&1
if [ $? = 1 ];
then
tmp_swap_file=/tmp/searx_swapfile
else
tmp_swap_file=/var/cache/searx_swapfile
fi
sudo dd if=/dev/zero of=$tmp_swap_file bs=1M count=256
sudo chmod 600 $tmp_swap_file
sudo mkswap $tmp_swap_file
sudo swapon $tmp_swap_file
fi
final_path=/opt/yunohost/searx
# Init virtualenv
if [ ! -d $final_path ];
then
sudo mkdir -p $final_path
fi
sudo cp -r ../sources/* $final_path
sudo virtualenv --system-site-packages $final_path
sudo bash -c "source $final_path/bin/activate && pip install -r $final_path/requirements.txt"
# Disable swapfile
if [[ -v "$tmp_swap_file" ]];
then
sudo swapoff $tmp_swap_file
sudo rm -f $tmp_swap_file
fi
#Configuration Searx
sudo cp ../conf/settings.yml $final_path/searx/
sudo sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" $final_path/searx/settings.yml
if [ "$path" != "/" ];
then
sudo sed -i -e "s@ynhbaseurl@https://$domain$path/@g" $final_path/searx/settings.yml
else
sudo sed -i -e "s@ynhbaseurl@False@g" $final_path/searx/settings.yml
fi
# Set permissions to searx directory
sudo useradd searx -d $final_path
sudo chown searx:searx -R $final_path
# Copy uwsgi config
sudo cp ../conf/searx.ini /etc/uwsgi/apps-available/
sudo ln -s /etc/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-enabled/
# Modify Nginx configuration file and copy it to Nginx conf directory
sudo sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf*
if [ "$path" != "/" ];
then
sudo cp ../conf/nginx.conf-noroot /etc/nginx/conf.d/$domain.d/searx.conf
else
sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/searx.conf
fi
# Fix permission
#sudo find $final_path/ -type d -exec chmod 2755 {} \;
#sudo find $final_path/ -type f -exec chmod g+r,o+r {} \;
## Reload Nginx and regenerate SSOwat conf
sudo service nginx reload
sudo service uwsgi restart
sudo yunohost service add uwsgi -l /var/log/uwsgi/app/searx.log
if [ "$is_public" = "Yes" ];
then
sudo yunohost app setting searx unprotected_uris -v "/"
fi
sudo yunohost app ssowatconf