mirror of
https://github.com/YunoHost-Apps/searx_ynh.git
synced 2024-09-03 20:16:30 +02:00
c97648e410
This fix the installation on some architecture by avoiding to compile lxml and also on architecture with low available ram (like the internet cube).
96 lines
2.5 KiB
Bash
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
|
|
|