SearX
Before we start, you will need a Debian 10+ VPS (you can get one on digitalocean for example), if you prefer to use your own self hosted server, make sure that port 80 and 443 are correctly port forwarded so that the public ip points to the server and not the router. Once that's done, go and ssh into your debian 10 server.
You can use DuckDNS to get a free domain name:
[ 192.168.100.1/24 ] [ /dev/pts/13 ] [~/Nextcloud/blog/Conf]
→ ssh root@ech4.duckdns.org
The authenticity of host 'ech4.duckdns.org (178.128.46.38)' can't be established.
ECDSA key fingerprint is SHA256:z2HAncB99pfbAUfj9tJY7vlo8EGUzCIUxWBAnjAflcA.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ech4.duckdns.org,178.128.46.38' (ECDSA) to the list of known hosts.
Linux debian-s-1vcpu-1gb-lon1-01 4.19.0-10-cloud-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@debian-s-1vcpu-1gb-lon1-01:~#
1
apt update -y && apt upgrade -y
useradd --shell /bin/bash --system \
--home-dir "/usr/local/searx" \
searx
mkdir /usr/local/searx
chown -R "searx:searx" "/usr/local/searx"
usermod -aG sudo searx
passwd searx
su searx
cd ~
git clone https://github.com/searx/searx.git searx
cd searx
sudo -H ./utils/searx.sh install all
sudo -H ./utils/filtron.sh nginx install
sudo -H ./utils/morty.sh nginx install
sudo apt install nginx -y
sudo -H ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
# https://example.org/searx
location /searx {
proxy_pass http://127.0.0.1:4004/;
proxy_set_header Host $http_host;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Script-Name /searx;
}
location /searx/static {
alias /usr/local/searx/searx-src/searx/static;
}
Configure reverse proxy for morty, listening on localhost 3000:
# https://example.org/morty
location /morty {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $http_host;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
}
apt update -y && apt upgrade -y
apt install git sudo curl -y
apt install -y \
virtualenv python3-dev python3-babel python3-venv \
uwsgi uwsgi-plugin-python3 \
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev \
shellcheck
useradd --shell /bin/bash --system \
--home-dir "/usr/local/searx" \
--comment 'Privacy-respecting metasearch engine' searx
mkdir "/usr/local/searx"
chown -R "searx:searx" "/usr/local/searx"
su searx
git clone "https://github.com/searx/searx.git" "/usr/local/searx/searx-src"
python3 -m venv "/usr/local/searx/searx-pyenv"
echo ". /usr/local/searx/searx-pyenv/bin/activate" >> "/usr/local/searx/.profile"
command -v python && python --version
pip install -U pip
pip install -U setuptools
pip install -U wheel
cd "/usr/local/searx/searx-src"
pip install -e .
sudo -H mkdir -p "/etc/searx"
sudo -H cp "/usr/local/searx/searx-src/searx/settings.yml" "/etc/searx/settings.yml"
sudo -H sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" "/etc/searx/settings.yml"
sudo -H sed -i -e "s/{instance_name}/searx@$(uname -n)/g" "/etc/searx/settings.yml"
su searx
mkdir ~/Downloads
cd ~/Downloads
git clone https://github.com/searx/searx searx
cd searx
./utils/searx.sh install all
./utils/filtron.sh install all
./utils/morty.sh install all
apt install nginx -y
ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/searx
wget https://raw.githubusercontent.com/searx/searx/master/utils/filtron.sh
chmod +x filtron.sh
./filtron.sh
useradd --shell /bin/bash --system \
--home-dir "/usr/local/filtron" \
--comment "Privacy-respecting metasearch engine" filtron
mkdir "/usr/local/filtron"
chown -R "filtron:filtron" "/usr/local/filtron"
cat > "/usr/local/filtron/.go_env" <> ~/.profile
(filtron) $ mkdir /usr/local/filtron/local
(filtron) $ wget --progress=bar -O "go1.13.5.linux-amd64.tar.gz" \
"https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz"
(filtron) $ tar -C /usr/local/filtron/local -xzf "go1.13.5.linux-amd64.tar.gz"
(filtron) $ which go
/usr/local/filtron/local/go/bin/go
sudo -i -u "filtron"
(filtron) $ go get -v -u github.com/asciimoo/filtron
get the systemd service from here https://searx.github.io/searx/utils/filtron.sh.html#filtron-sh
filtron.sh --help
then nginx config
Nihilist
8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o
7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8 Donate XMR to Nihilist: