Post Install of searx, Local Links to searx Instance Not Working
Setup -- Ubuntu 20.04.2 LTS, with wireguard, pi-hole, and dnscrypt-proxy on a Raspberry Pi 4 Model B - 2GB RAM. Server is local, i.e., no public domain name, and it will not be public facing for the time being.
Context -- At the end of the install, searx runs .config.sh with the following results:
sourced .config.sh :
PUBLIC_URL : http://alpha/searx
SEARX_URL_PATH : /searx
SEARX_INSTANCE_NAME : searx@alpha
SEARX_INTERNAL_HTTP : 127.0.0.1:8888
Problem -- searx instance unreachable
Issue 01: When I try to open http://192.168.0.73/searx (static local IP) with my browser after install, I receive a pi-hole message asking me if I want to go to the admin console.
pihole screenshot 01
Issue 02: When I try to open http://alpha/searx with my browser after install, I receive pi-hole's website-blocked message directing me to the administrator to have site whitelisted. Whitelisting does not seem to have an effect.
pihole screenshot 02
Looking at /var/log/uwsgi/app/searx.log
with debugging on, I don't see any issues other than this:
WARNING:searx.engines:yggtorrent engine: Fail to initialize // HTTP error 403, suspended_time=86400
WARNING:searx.engines:yggtorrent engine: Fail to initialize // HTTP error 403, suspended_time=86400
I read through the searx wiki, but I am new to sysadmin/networking, so I used the installation scripts.
I would appreciate any advice, as I seem to be missing something.
Install log with debugging and searx.log available if needed.
Thanks!
I believe I found a solution, so I'll post it here in case someone else has a similar problem.
After install, I saw a warning message that I must have missed before:
WARN: Public service at http://alpha/searx is not available!
WARN: Check if public name is correct and routed or use the public IP from above.
Solution after install:
(1) Edit /etc/searx/settings.yml
sudo nano /etc/searx/settings.yml
(2) Change bind_address to the local IP of your host.
server:
port : 8888
#bind_address : "127.0.0.1" # address to listen on
bind_address : "192.168.0.73" # address to listen on
(3) Edit /etc/uwsgi/apps-available/searx.ini
sudo nano /etc/uwsgi/apps-available/searx.ini
(4) Set "http" to the local IP of your host.
#http = 127.0.0.1:8888
http = 192.168.0.73:8888
(5) Restart uwsgi.service.
sudo systemctl restart uwsgi.service
This allows access to the searx instance on my local network.
N.B.
During install, the script was unable to create the necessary directories for uwsgi configuration files. Here are the messages:
INFO: BUILD template /opt/searx/cache/etc/uwsgi/apps-available/searx.ini
mkdir: cannot create directory ‘/opt/searx/cache/etc’: Permission denied
./utils/lib.sh: line 436: /opt/searx/cache/etc/uwsgi/apps-available/searx.ini: No such file or directory
chown: cannot access '/opt/searx/cache/etc/uwsgi/apps-available/searx.ini': No such file or directory
INFO: install: /opt/searx/cache/etc/uwsgi/apps-available/searx.ini
install: cannot stat '/opt/searx/cache/etc/uwsgi/apps-available/searx.ini': No such file or directory
I created the directories manually and ran the install script again.